Make it possible to get diagnostics factory was registered for

This commit is contained in:
Nikolay Krasko
2015-10-06 16:27:23 +03:00
committed by Nikolay Krasko
parent efaa1d9614
commit 013b257347
2 changed files with 5 additions and 2 deletions
@@ -48,6 +48,10 @@ public class QuickFixes {
return actions.get(diagnosticFactory)
}
public fun getDiagnostics(factory: JetIntentionActionsFactory): Collection<DiagnosticFactory<*>> {
return factories.keySet().filter { factory in factories.get(it) }
}
companion object {
public fun getInstance(): QuickFixes = ServiceManager.getService(javaClass<QuickFixes>())
}
@@ -29,7 +29,6 @@ import com.intellij.psi.util.PsiModificationTracker
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.idea.actions.KotlinAddImportAction
import org.jetbrains.kotlin.idea.caches.resolve.analyze
@@ -113,7 +112,7 @@ public class AutoImportFix(element: JetSimpleNameExpression) : JetHintAction<Jet
override fun isApplicableForCodeFragment() = true
private val ERRORS = setOf(Errors.UNRESOLVED_REFERENCE, Errors.UNRESOLVED_REFERENCE_WRONG_RECEIVER)
private val ERRORS by lazy(LazyThreadSafetyMode.PUBLICATION ) { QuickFixes.getInstance().getDiagnostics(this) }
public fun computeSuggestions(element: JetSimpleNameExpression): Collection<DeclarationDescriptor> {
if (!element.isValid()) return emptyList()