mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Add annotator for missing constructor brackets
#KTIJ-29511 Fixed GitOrigin-RevId: b9db39d0fb2312439c30d3dcaa2e5ccfef146fad
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1010b6e381
commit
968182efdb
@@ -7,6 +7,7 @@
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<annotator language="kotlin" implementationClass="org.jetbrains.kotlin.idea.k2.codeinsight.fixes.MissingConstructorBracketsAnnotator"/>
|
||||
<codeInsight.unresolvedReferenceQuickFixProvider
|
||||
implementation="org.jetbrains.kotlin.idea.k2.codeinsight.fixes.KotlinFirUnresolvedReferenceQuickFixProvider"/>
|
||||
</extensions>
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.k2.codeinsight.fixes
|
||||
|
||||
import com.intellij.lang.annotation.AnnotationHolder
|
||||
import com.intellij.lang.annotation.Annotator
|
||||
import com.intellij.lang.annotation.HighlightSeverity
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
|
||||
class MissingConstructorBracketsAnnotator : Annotator {
|
||||
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
|
||||
if (element !is KtClass) return
|
||||
val primaryConstructor = element.primaryConstructor ?: return
|
||||
if (primaryConstructor.valueParameterList != null) return
|
||||
val startRange = primaryConstructor.getConstructorKeyword()?.textRange?.endOffset ?: return
|
||||
holder.newSilentAnnotation(HighlightSeverity.ERROR)
|
||||
.range(TextRange.create(startRange, startRange + 1))
|
||||
.withFix(MissingConstructorBracketsFix(primaryConstructor))
|
||||
.create()
|
||||
}
|
||||
}
|
||||
+17
@@ -8955,7 +8955,24 @@ public abstract class HighLevelQuickFixTestGenerated extends AbstractHighLevelQu
|
||||
}
|
||||
}
|
||||
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
@TestMetadata("../../../idea/tests/testData/quickfix/missingConstructorBrackets")
|
||||
public static class MissingConstructorBrackets extends AbstractHighLevelQuickFixTest {
|
||||
@java.lang.Override
|
||||
@org.jetbrains.annotations.NotNull
|
||||
public final KotlinPluginMode getPluginMode() {
|
||||
return KotlinPluginMode.K2;
|
||||
}
|
||||
|
||||
private void runTest(String testDataFilePath) throws Exception {
|
||||
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||
}
|
||||
|
||||
@TestMetadata("basic.kt")
|
||||
public void testBasic() throws Exception {
|
||||
runTest("../../../idea/tests/testData/quickfix/missingConstructorBrackets/basic.kt");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -34,4 +34,4 @@ class MissingConstructorKeywordFix(
|
||||
}
|
||||
return addAfter(constructor, modifierList)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
class Fruit private constructor<caret> {
|
||||
}
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
+2
-1
@@ -2,4 +2,5 @@
|
||||
|
||||
class Fruit private constructor(<caret>) {
|
||||
}
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
// FUS_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
// FUS_K2_QUICKFIX_NAME: org.jetbrains.kotlin.idea.quickfix.MissingConstructorBracketsFix
|
||||
+1
-1
@@ -138,7 +138,7 @@ internal fun MutableTWorkspace.generateK2FixTests() {
|
||||
model("$idea/quickfix/makeUpperBoundNonNullable", pattern = pattern, isIgnored = true)
|
||||
model("$idea/quickfix/memberVisibilityCanBePrivate", pattern = pattern, isIgnored = true)
|
||||
model("$idea/quickfix/migration/missingConstructorKeyword", pattern = pattern)
|
||||
model("$idea/quickfix/missingConstructorBrackets", pattern = pattern, isIgnored = true)
|
||||
model("$idea/quickfix/missingConstructorBrackets", pattern = pattern)
|
||||
model("$idea/quickfix/moveMemberToCompanionObject", pattern = pattern, isIgnored = true)
|
||||
model("$idea/quickfix/moveReceiverAnnotation", pattern = pattern, isIgnored = true)
|
||||
model("$idea/quickfix/moveToConstructorParameters", pattern = pattern, isIgnored = true)
|
||||
|
||||
Reference in New Issue
Block a user