[kotlin] k2 quick doc: show explicit abstract modifier

^KTIJ-29186 fixed

GitOrigin-RevId: 1475342d533dedec6574b224ee7e9c61a1d2157a
This commit is contained in:
Anna Kozlova
2024-03-22 19:11:22 +00:00
committed by intellij-monorepo-bot
parent 5ad93308b1
commit 237db3a9e8
5 changed files with 32 additions and 1 deletions
@@ -180,7 +180,7 @@ internal class KotlinIdeDeclarationRenderer(
symbol is KtClassOrObjectSymbol -> !(symbol.classKind == KtClassKind.INTERFACE && symbol.modality == Modality.ABSTRACT || symbol.classKind.isObject && symbol.modality == Modality.FINAL)
symbol is KtCallableSymbol -> {
symbol.modality == Modality.OPEN || symbol.getContainingSymbol() != null && symbol.modality == Modality.FINAL
symbol.modality == Modality.OPEN || symbol.getContainingSymbol() != null && symbol.modality == Modality.FINAL || symbol.modality == Modality.ABSTRACT
}
else -> false
@@ -23,6 +23,16 @@ public class FirQuickDocTestGenerated extends AbstractFirQuickDocTest {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
@TestMetadata("AbstractCallableInClass.kt")
public void testAbstractCallableInClass() throws Exception {
runTest("../../idea/tests/testData/editor/quickDoc/AbstractCallableInClass.kt");
}
@TestMetadata("AbstractCallableInInterface.kt")
public void testAbstractCallableInInterface() throws Exception {
runTest("../../idea/tests/testData/editor/quickDoc/AbstractCallableInInterface.kt");
}
@TestMetadata("AnonymousObjectLocalVariable.kt")
public void testAnonymousObjectLocalVariable() throws Exception {
runTest("../../idea/tests/testData/editor/quickDoc/AnonymousObjectLocalVariable.kt");
@@ -23,6 +23,16 @@ public class QuickDocProviderTestGenerated extends AbstractQuickDocProviderTest
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
@TestMetadata("AbstractCallableInClass.kt")
public void testAbstractCallableInClass() throws Exception {
runTest("testData/editor/quickDoc/AbstractCallableInClass.kt");
}
@TestMetadata("AbstractCallableInInterface.kt")
public void testAbstractCallableInInterface() throws Exception {
runTest("testData/editor/quickDoc/AbstractCallableInInterface.kt");
}
@TestMetadata("AnonymousObjectLocalVariable.kt")
public void testAnonymousObjectLocalVariable() throws Exception {
runTest("testData/editor/quickDoc/AnonymousObjectLocalVariable.kt");
@@ -0,0 +1,6 @@
abstract class Foo {
abstract fun ba<caret>r()
}
//K2_INFO: <div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">abstract</span> <span style="color:#000080;font-weight:bold;">fun</span> <span style="color:#000000;">bar</span>()<span style="">: </span><span style="color:#000000;">Unit</span></pre></div><div class='bottom'><icon src="/org/jetbrains/kotlin/idea/icons/classKotlin.svg"/>&nbsp;<a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a><br/></div>
//INFO: <div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">abstract</span> <span style="color:#000080;font-weight:bold;">fun</span> <span style="color:#000000;">bar</span>()<span style="">: </span><span style="color:#000000;">Unit</span></pre></div></pre></div><table class='sections'><p></table><div class='bottom'><icon src="/org/jetbrains/kotlin/idea/icons/classKotlin.svg"/>&nbsp;<a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a><br/></div>
@@ -0,0 +1,5 @@
interface Foo {
val ba<caret>r: String
}
//INFO: <div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">abstract</span> <span style="color:#000080;font-weight:bold;">val</span> <span style="color:#660e7a;font-weight:bold;">bar</span><span style="">: </span><span style="color:#000000;">String</span></pre></div><div class='bottom'><icon src="/org/jetbrains/kotlin/idea/icons/classKotlin.svg"/>&nbsp;<a href="psi_element://Foo"><code><span style="color:#000000;">Foo</span></code></a><br/></div>