mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] New Inspection API: Fix forgotten renames
GitOrigin-RevId: 145e158aeb19ea65d749f25e9c64bf51519363b1
This commit is contained in:
committed by
intellij-monorepo-bot
parent
15d17b0ae1
commit
e9e761caf3
+2
-1
@@ -11,7 +11,8 @@ import org.jetbrains.kotlin.analysis.api.lifetime.allowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
/**
|
||||
* A common base interface for [KotlinApplicableIntention] and [KotlinApplicableInspection].
|
||||
* A common base interface for [org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.AbstractKotlinApplicableIntention] and
|
||||
* [org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspection].
|
||||
*/
|
||||
interface KotlinApplicableTool<ELEMENT : KtElement> : KotlinApplicableToolBase<ELEMENT> {
|
||||
/**
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@ import org.jetbrains.kotlin.idea.codeinsight.api.applicators.KotlinApplicability
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
/**
|
||||
* A common base interface for [KotlinApplicableIntentionBase] and [KotlinApplicableInspectionBase].
|
||||
* A common base interface for [org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.AbstractKotlinApplicableIntentionBase] and
|
||||
* [org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionBase].
|
||||
*/
|
||||
interface KotlinApplicableToolBase<ELEMENT : KtElement> {
|
||||
/**
|
||||
|
||||
+4
@@ -12,6 +12,10 @@ import org.jetbrains.kotlin.analysis.api.lifetime.allowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
|
||||
/**
|
||||
* A common base interface for [org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.AbstractKotlinApplicableIntentionWithContext]
|
||||
* and [org.jetbrains.kotlin.idea.codeinsight.api.applicable.inspections.AbstractKotlinApplicableInspectionWithContext].
|
||||
*/
|
||||
interface KotlinApplicableToolWithContext<ELEMENT : KtElement, CONTEXT> : KotlinApplicableToolBase<ELEMENT> {
|
||||
/**
|
||||
* The text to be shown in the list of available fixes.
|
||||
|
||||
+2
-1
@@ -9,7 +9,8 @@ import org.jetbrains.kotlin.idea.codeinsight.api.classic.quickfixes.KotlinQuickF
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
/**
|
||||
* A [KotlinQuickFixAction] providing a similar API for quick fixes as [KotlinApplicableIntention] provides for intentions.
|
||||
* A [KotlinQuickFixAction] providing a similar API for quick fixes as
|
||||
* [org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.AbstractKotlinApplicableIntention] provides for intentions.
|
||||
*/
|
||||
abstract class AbstractKotlinApplicableQuickFix<ELEMENT : PsiElement>(target: ELEMENT) : KotlinQuickFixAction<ELEMENT>(target) {
|
||||
open fun getActionName(element: ELEMENT): @IntentionName String = familyName
|
||||
|
||||
+2
-2
@@ -11,11 +11,11 @@ import kotlin.reflect.KClass
|
||||
*/
|
||||
abstract class AbstractKotlinApplicableDiagnosticInspection<ELEMENT : KtElement, DIAGNOSTIC : KtDiagnosticWithPsi<ELEMENT>>(
|
||||
elementType: KClass<ELEMENT>,
|
||||
) : AbstractKotlinApplicableInspection<ELEMENT>(elementType), KotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC> {
|
||||
) : AbstractKotlinApplicableInspection<ELEMENT>(elementType), AbstractKotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC> {
|
||||
/**
|
||||
* Whether this inspection is applicable to [element] given a [diagnostic].
|
||||
*
|
||||
* @see KotlinApplicableTool.isApplicableByAnalyze
|
||||
* @see org.jetbrains.kotlin.idea.codeinsight.api.applicable.KotlinApplicableTool.isApplicableByAnalyze
|
||||
*/
|
||||
context(KtAnalysisSession)
|
||||
abstract fun isApplicableByDiagnostic(element: ELEMENT, diagnostic: DIAGNOSTIC): Boolean
|
||||
|
||||
+3
-3
@@ -9,12 +9,12 @@ import org.jetbrains.kotlin.psi.KtElement
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* [KotlinApplicableDiagnosticInspectionBase] is a base interface for [AbstractKotlinApplicableDiagnosticInspection] and
|
||||
* [AbstractKotlinApplicableDiagnosticInspectionBase] is a base interface for [AbstractKotlinApplicableDiagnosticInspection] and
|
||||
* [AbstractKotlinApplicableDiagnosticInspectionWithContext].
|
||||
*
|
||||
* TODO: Consider supporting multiple diagnostics.
|
||||
*/
|
||||
interface KotlinApplicableDiagnosticInspectionBase<
|
||||
interface AbstractKotlinApplicableDiagnosticInspectionBase<
|
||||
ELEMENT : KtElement,
|
||||
DIAGNOSTIC : KtDiagnosticWithPsi<ELEMENT>
|
||||
> : KotlinApplicableToolBase<ELEMENT> {
|
||||
@@ -30,7 +30,7 @@ context(KtAnalysisSession)
|
||||
internal fun <
|
||||
ELEMENT : KtElement,
|
||||
DIAGNOSTIC : KtDiagnosticWithPsi<ELEMENT>
|
||||
> KotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC>.getDiagnostic(element: ELEMENT): DIAGNOSTIC? {
|
||||
> AbstractKotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC>.getDiagnostic(element: ELEMENT): DIAGNOSTIC? {
|
||||
val diagnostics = element.getDiagnostics(KtDiagnosticCheckerFilter.ONLY_EXTENDED_CHECKERS)
|
||||
val suitableDiagnostics = diagnostics.filterIsInstance(getDiagnosticType().java)
|
||||
return suitableDiagnostics.firstOrNull()
|
||||
|
||||
+2
-2
@@ -11,11 +11,11 @@ import kotlin.reflect.KClass
|
||||
*/
|
||||
abstract class AbstractKotlinApplicableDiagnosticInspectionWithContext<ELEMENT : KtElement, DIAGNOSTIC : KtDiagnosticWithPsi<ELEMENT>, CONTEXT>(
|
||||
elementType: KClass<ELEMENT>,
|
||||
) : AbstractKotlinApplicableInspectionWithContext<ELEMENT, CONTEXT>(elementType), KotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC> {
|
||||
) : AbstractKotlinApplicableInspectionWithContext<ELEMENT, CONTEXT>(elementType), AbstractKotlinApplicableDiagnosticInspectionBase<ELEMENT, DIAGNOSTIC> {
|
||||
/**
|
||||
* Provides some context for [apply] given some [element] and [diagnostic].
|
||||
*
|
||||
* @see KotlinApplicableToolWithContext.prepareContext
|
||||
* @see org.jetbrains.kotlin.idea.codeinsight.api.applicable.KotlinApplicableToolWithContext.prepareContext
|
||||
*/
|
||||
context(KtAnalysisSession)
|
||||
abstract fun prepareContextByDiagnostic(element: ELEMENT, diagnostic: DIAGNOSTIC): CONTEXT?
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import kotlin.reflect.KClass
|
||||
*/
|
||||
abstract class AbstractKotlinApplicableInspection<ELEMENT : KtElement>(
|
||||
elementType: KClass<ELEMENT>,
|
||||
) : KotlinApplicableInspectionBase<ELEMENT>(elementType), KotlinApplicableTool<ELEMENT> {
|
||||
) : AbstractKotlinApplicableInspectionBase<ELEMENT>(elementType), KotlinApplicableTool<ELEMENT> {
|
||||
/**
|
||||
* [getProblemDescription] must be lightweight: it should not perform expensive computations so that it doesn't cause performance
|
||||
* issues.
|
||||
@@ -40,7 +40,7 @@ abstract class AbstractKotlinApplicableInspection<ELEMENT : KtElement>(
|
||||
if (!isApplicable) return null
|
||||
|
||||
val elementPointer = element.createSmartPointer()
|
||||
val quickFix = object : KotlinApplicableInspectionQuickFix<ELEMENT>() {
|
||||
val quickFix = object : AbstractKotlinApplicableInspectionQuickFix<ELEMENT>() {
|
||||
override fun applyTo(element: ELEMENT) {
|
||||
apply(element, element.project, element.findExistingEditor())
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,10 +15,10 @@ import org.jetbrains.kotlin.psi.KtElement
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* [KotlinApplicableInspectionBase] is a base implementation for [AbstractKotlinApplicableInspection] and
|
||||
* [AbstractKotlinApplicableInspectionBase] is a base implementation for [AbstractKotlinApplicableInspection] and
|
||||
* [AbstractKotlinApplicableInspectionWithContext].
|
||||
*/
|
||||
sealed class KotlinApplicableInspectionBase<ELEMENT : KtElement>(
|
||||
sealed class AbstractKotlinApplicableInspectionBase<ELEMENT : KtElement>(
|
||||
elementType: KClass<ELEMENT>,
|
||||
) : KotlinSingleElementInspection<ELEMENT>(elementType), KotlinApplicableToolBase<ELEMENT> {
|
||||
/**
|
||||
@@ -62,7 +62,7 @@ sealed class KotlinApplicableInspectionBase<ELEMENT : KtElement>(
|
||||
}
|
||||
}
|
||||
|
||||
internal abstract class KotlinApplicableInspectionQuickFix<ELEMENT : KtElement> : LocalQuickFix {
|
||||
internal abstract class AbstractKotlinApplicableInspectionQuickFix<ELEMENT : KtElement> : LocalQuickFix {
|
||||
abstract fun applyTo(element: ELEMENT)
|
||||
|
||||
abstract override fun getName(): String
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import kotlin.reflect.KClass
|
||||
*/
|
||||
abstract class AbstractKotlinApplicableInspectionWithContext<ELEMENT : KtElement, CONTEXT>(
|
||||
elementType: KClass<ELEMENT>,
|
||||
) : KotlinApplicableInspectionBase<ELEMENT>(elementType), KotlinApplicableToolWithContext<ELEMENT, CONTEXT> {
|
||||
) : AbstractKotlinApplicableInspectionBase<ELEMENT>(elementType), KotlinApplicableToolWithContext<ELEMENT, CONTEXT> {
|
||||
/**
|
||||
* [getProblemDescription] must be lightweight: it should not perform expensive computations so that it doesn't cause performance
|
||||
* issues.
|
||||
@@ -40,7 +40,7 @@ abstract class AbstractKotlinApplicableInspectionWithContext<ELEMENT : KtElement
|
||||
val context = prepareContextWithAnalyze(element, needsReadAction = true) ?: return null
|
||||
|
||||
val elementPointer = element.createSmartPointer()
|
||||
val quickFix = object : KotlinApplicableInspectionQuickFix<ELEMENT>() {
|
||||
val quickFix = object : AbstractKotlinApplicableInspectionQuickFix<ELEMENT>() {
|
||||
override fun applyTo(element: ELEMENT) {
|
||||
apply(element, context, element.project, element.findExistingEditor())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user