idea-plugin / arrow.meta.ide.dsl.editor.inspection / InspectionSyntax

InspectionSyntax

interface InspectionSyntax : InspectionUtilitySyntax

Loosely speaking, Inspection's are easily recognized as “QuickFixes” when the user hit’s a KeyShortCut for missing imports. Interestingly enough, despite calling Inspection's proverbially “QuickFixes”, IntelliJ defines a QuickFix as an aggregation of multiple Intention's. Whereas Intention's analysis your code and users can decide whether they want to apply a suggested Fix, Inspection’s improve upon that very idea and are capable to block the user to compile code at the first place. Additionally, we can scope the Fix in applyTo locally, for each instance per file, or globally to the whole project, assuming it has a universal refactoring task. There are cases, where an universal Fix, might not be obvious, but that doesn’t stop plugin developer’s to notify and direct user’s to helpful resources about this problem.

See Also

addApplicableInspection

Functions

addApplicableInspection registers a Local ApplicableInspection and has KtPsiFactory in Scope to modify the element, project or editor at once within applyTo. The following example is a simplified purityPlugin, where every function that returns Unit has to be suspended. Otherwise the code can not be compiled.open fun <K : KtElement> IdeMetaPlugin.addApplicableInspection(defaultFixText: String, kClass: Class<K> = KtElement::class.java as Class<K>, highlightingRange: (element: K) -> TextRange? = Noop.nullable1(), inspectionText: (element: K) -> String, applyTo: KtPsiFactory.(element: K, project: Project, editor: Editor?) -> Unit, isApplicable: (element: K) -> Boolean, groupPath: Array<String>, inspectionHighlightType: (element: K) -> ProblemHighlightType = { _ -> ProblemHighlightType.GENERIC_ERROR_OR_WARNING }, level: HighlightDisplayLevel = HighlightDisplayLevel.WEAK_WARNING, enabledByDefault: Boolean = true): ExtensionPhase
addGlobalInspection registers a GlobalInspection. InspectionEP is once again a wrapper over the actual GlobalInspectionTool.open fun IdeMetaPlugin.addGlobalInspection(inspectionTool: GlobalInspectionTool, level: HighlightDisplayLevel, shortName: String, displayName: String, groupPath: Array<String>, groupDisplayName: String): ExtensionPhase
addInspectionSuppressor registers an InspectionSuppressor for the specified PsiElement.open fun IdeMetaPlugin.addInspectionSuppressor(suppressFor: (element: PsiElement, toolId: String) -> Boolean, suppressAction: (element: PsiElement?, toolId: String) -> List<SuppressQuickFix>): ExtensionPhase
addLocalInspection registers a LocalInspection. LocalInspectionEP is solely a wrapper over the generic InspectionProfileEntry, which is a Subtype of both GlobalInspectionTool and LocalInspectionTool.open fun IdeMetaPlugin.addLocalInspection(inspectionTool: LocalInspectionTool, level: HighlightDisplayLevel, shortName: String, displayName: String, groupPath: Array<String>, groupDisplayName: String): ExtensionPhase
applicableInspection open fun <K : KtElement> InspectionSyntax.applicableInspection(defaultFixText: String, kClass: Class<K> = KtElement::class.java as Class<K>, highlightingRange: (element: K) -> TextRange? = Noop.nullable1(), inspectionText: (element: K) -> String, applyTo: KtPsiFactory.(element: K, project: Project, editor: Editor?) -> Unit, isApplicable: (element: K) -> Boolean, inspectionHighlightType: (element: K) -> ProblemHighlightType = { _: K -> ProblemHighlightType.GENERIC_ERROR_OR_WARNING }, enabledByDefault: Boolean = true): AbstractApplicabilityBasedInspection<K>
inspection open fun InspectionSyntax.inspection(inspectionTool: GlobalInspectionTool, level: HighlightDisplayLevel, shortName: String, displayName: String, groupPath: Array<String>, groupDisplayName: String): InspectionEP
inspectionSuppressor open fun InspectionSyntax.inspectionSuppressor(suppressFor: (element: PsiElement, toolId: String) -> Boolean, suppressAction: (element: PsiElement?, toolId: String) -> List<SuppressQuickFix>): InspectionSuppressor
localInspection open fun InspectionSyntax.localInspection(inspectionTool: LocalInspectionTool, level: HighlightDisplayLevel, shortName: String, displayName: String, groupPath: Array<String>, groupDisplayName: String): LocalInspectionEP
suppressQuickFix open fun InspectionSyntax.suppressQuickFix(name: String, familyName: String, applyFix: (project: Project, descriptor: ProblemDescriptor) -> Unit, isAvailable: (project: Project, context: PsiElement) -> Boolean, isSuppressAll: Boolean): SuppressQuickFix

Inheritors

IdeSyntax interface IdeSyntax : IntentionSyntax, IconProviderSyntax, SyntaxHighlighterSyntax, InspectionSyntax, AnActionSyntax, ColorSettingsSyntax, HintingSyntax, LanguageSyntax, LineMarkerSyntax, LiveTemplateSyntax, NavigationSyntax, SearchSyntax, StructureViewSyntax, UsageSyntax, ExtensionProviderSyntax, DocumentationSyntax, KotlinExtensionSyntax, DialogSyntax, PopupSyntax, NotificationSyntax, ToolWindowSyntax, GotoRelatedSyntax, AnnotatorSyntax, ParserSyntax, ApplicationSyntax

Do you like Arrow?

Arrow Org
<