[kotlin] k2 quick doc: show containing class for the companion object

^KTIJ-29182 fixed

GitOrigin-RevId: 60cd6975311c2b6dd83b8372ecf6c994f219b027
This commit is contained in:
Anna Kozlova
2024-03-22 19:11:27 +00:00
committed by intellij-monorepo-bot
parent 237db3a9e8
commit 87a9372ed2
4 changed files with 24 additions and 1 deletions
@@ -486,7 +486,14 @@ internal class KotlinIdeDeclarationRenderer(
return object : KtDeclarationNameRenderer {
context(KtAnalysisSession, KtDeclarationRenderer)
override fun renderName(name: Name, symbol: KtNamedSymbol?, printer: PrettyPrinter) {
if (symbol is KtClassOrObjectSymbol && symbol.classKind == KtClassKind.COMPANION_OBJECT && symbol.name == SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT) return
if (symbol is KtClassOrObjectSymbol && symbol.classKind == KtClassKind.COMPANION_OBJECT && symbol.name == SpecialNames.DEFAULT_NAME_FOR_COMPANION_OBJECT) {
val className = (symbol.getContainingSymbol() as? KtClassOrObjectSymbol)?.name
if (className != null) {
printer.append(highlight("of ") { asInfo } )
printer.append(highlight(className.renderName()) { asClassName } )
}
return
}
if (symbol is KtEnumEntrySymbol) {
printer.append(highlight("enum entry") { asKeyword })
printer.append(" ")
@@ -198,6 +198,11 @@ public class FirQuickDocTestGenerated extends AbstractFirQuickDocTest {
runTest("../../idea/tests/testData/editor/quickDoc/OnClassDeclarationWithNoPackage.kt");
}
@TestMetadata("OnCompanionObject.kt")
public void testOnCompanionObject() throws Exception {
runTest("../../idea/tests/testData/editor/quickDoc/OnCompanionObject.kt");
}
@TestMetadata("OnEmptySecondaryConstructor.kt")
public void testOnEmptySecondaryConstructor() throws Exception {
runTest("../../idea/tests/testData/editor/quickDoc/OnEmptySecondaryConstructor.kt");
@@ -198,6 +198,11 @@ public class QuickDocProviderTestGenerated extends AbstractQuickDocProviderTest
runTest("testData/editor/quickDoc/OnClassDeclarationWithNoPackage.kt");
}
@TestMetadata("OnCompanionObject.kt")
public void testOnCompanionObject() throws Exception {
runTest("testData/editor/quickDoc/OnCompanionObject.kt");
}
@TestMetadata("OnEmptySecondaryConstructor.kt")
public void testOnEmptySecondaryConstructor() throws Exception {
runTest("testData/editor/quickDoc/OnEmptySecondaryConstructor.kt");
@@ -0,0 +1,6 @@
class CompanionContainer {
companion obje<caret>ct
}
//K2_INFO: <div class='definition'><pre><span style="color:#000080;font-weight:bold;">public</span> <span style="color:#000080;font-weight:bold;">companion</span> <span style="color:#000080;font-weight:bold;">object</span> <span style="color:#808080;font-style:italic;">of </span><span style="color:#000000;">CompanionContainer</span></pre></div><div class='bottom'><icon src="/org/jetbrains/kotlin/idea/icons/classKotlin.svg"/>&nbsp;<a href="psi_element://CompanionContainer"><code><span style="color:#000000;">CompanionContainer</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;">companion object</span> <span style="color:#808080;font-style:italic;">of </span><span style="color:#000000;">CompanionContainer</span></pre></div><div class='bottom'><icon src="/org/jetbrains/kotlin/idea/icons/classKotlin.svg"/>&nbsp;<a href="psi_element://CompanionContainer"><code><span style="color:#000000;">CompanionContainer</span></code></a><br/></div>