diff --git a/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/base/codeInsight/KotlinPsiElementMemberChooserObject.kt b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/base/codeInsight/KotlinPsiElementMemberChooserObject.kt index 1cca948ce965..6eb253ffa507 100644 --- a/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/base/codeInsight/KotlinPsiElementMemberChooserObject.kt +++ b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/base/codeInsight/KotlinPsiElementMemberChooserObject.kt @@ -13,7 +13,7 @@ import com.intellij.util.concurrency.AppExecutorUtil import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource -import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererModifierFilter +import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererKeywordFilter import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol @@ -42,7 +42,7 @@ class KotlinPsiElementMemberChooserObject( companion object { private val renderer = KtDeclarationRendererForSource.WITH_SHORT_NAMES.with { modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.NONE + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.NONE } } } diff --git a/plugins/kotlin/code-insight/kotlin.code-insight.k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/structureView/KotlinFirStructureElementPresentation.kt b/plugins/kotlin/code-insight/kotlin.code-insight.k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/structureView/KotlinFirStructureElementPresentation.kt index 79861fd0ac9d..3f99dbb9eca4 100644 --- a/plugins/kotlin/code-insight/kotlin.code-insight.k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/structureView/KotlinFirStructureElementPresentation.kt +++ b/plugins/kotlin/code-insight/kotlin.code-insight.k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/structureView/KotlinFirStructureElementPresentation.kt @@ -12,12 +12,12 @@ import com.intellij.psi.PsiNamedElement import com.intellij.util.PsiIconUtil import com.intellij.util.ui.StartupUiUtil import org.jetbrains.kotlin.analysis.api.analyze -import org.jetbrains.kotlin.analysis.api.renderer.base.KtKeywordRenderer +import org.jetbrains.kotlin.analysis.api.renderer.base.KtKeywordsRenderer import org.jetbrains.kotlin.analysis.api.renderer.base.annotations.KtRendererAnnotationsFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtCallableReturnTypeFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.bodies.KtParameterDefaultValueRenderer import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource -import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererModifierFilter +import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererKeywordFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.KtTypeParametersRenderer import org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.callables.KtConstructorSymbolRenderer import org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.callables.KtFunctionSymbolRenderer @@ -49,14 +49,19 @@ internal class KotlinFirStructureElementPresentation( } modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.NONE + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.NONE } } superTypesFilter = KtSuperTypesFilter.NONE parameterDefaultValueRenderer = KtParameterDefaultValueRenderer.THREE_DOTS typeParametersRenderer = KtTypeParametersRenderer.NO_TYPE_PARAMETERS - keywordRender = - KtKeywordRenderer.AsWordWithFilter { keyword -> keyword == KtTokens.CONSTRUCTOR_KEYWORD || keyword == KtTokens.OBJECT_KEYWORD || keyword == KtTokens.COMPANION_KEYWORD } + keywordsRenderer = KtKeywordsRenderer.AS_WORD.with { + keywordFilter = KtRendererKeywordFilter.onlyWith( + KtTokens.CONSTRUCTOR_KEYWORD, + KtTokens.OBJECT_KEYWORD, + KtTokens.COMPANION_KEYWORD + ) + } returnTypeFilter = KtCallableReturnTypeFilter.ALWAYS classOrObjectRenderer = KtNamedClassOrObjectSymbolRenderer.AS_SOURCE_WITHOUT_PRIMARY_CONSTRUCTOR parameterDefaultValueRenderer = KtParameterDefaultValueRenderer.NO_DEFAULT_VALUE diff --git a/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtClassMember.kt b/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtClassMember.kt index 4d697e9fe8e2..bfd1637207d2 100644 --- a/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtClassMember.kt +++ b/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtClassMember.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.analysis.api.annotations.annotations import org.jetbrains.kotlin.analysis.api.renderer.base.annotations.KtRendererAnnotationsFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtDeclarationRenderer import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource -import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererModifierFilter +import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererKeywordFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererOtherModifiersProvider import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedSymbol @@ -119,7 +119,7 @@ fun KtAnalysisSession.generateMember( } modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.without(KtTokens.OPERATOR_KEYWORD) + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.without(KtTokens.OPERATOR_KEYWORD) } modalityProvider = modalityProvider.onlyIf { s -> s != symbol } @@ -298,21 +298,22 @@ private object RenderOptions { annotationFilter = KtRendererAnnotationsFilter.NONE } modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.onlyWith(KtTokens.OVERRIDE_KEYWORD) + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.onlyWith(KtTokens.OVERRIDE_KEYWORD) } } } val actualRenderOptions = overrideRenderOptions.with { modifiersRenderer = modifiersRenderer.with { - modifierFilter = modifierFilter or - KtRendererModifierFilter.onlyWith(KtTokens.INNER_KEYWORD) or - KtRendererModifierFilter.onlyWith(KtTokens.VISIBILITY_MODIFIERS) - KtRendererModifierFilter.onlyWith(KtTokens.MODALITY_MODIFIERS) + keywordsRenderer = keywordsRenderer.with { + keywordFilter = + keywordFilter or KtRendererKeywordFilter.onlyWith(KtTokens.INNER_KEYWORD) or KtRendererKeywordFilter.onlyWith(KtTokens.VISIBILITY_MODIFIERS) + KtRendererKeywordFilter.onlyWith(KtTokens.MODALITY_MODIFIERS) + } } } val expectRenderOptions = actualRenderOptions.with { modifiersRenderer = modifiersRenderer.with { - modifierFilter = modifierFilter or KtRendererModifierFilter.onlyWith(KtTokens.ACTUAL_KEYWORD) + keywordsRenderer = keywordsRenderer.with { keywordFilter = keywordFilter or KtRendererKeywordFilter.onlyWith(KtTokens.ACTUAL_KEYWORD) } } } } diff --git a/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtGenerateMembersHandler.kt b/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtGenerateMembersHandler.kt index d297db10b582..bdbe89571c82 100644 --- a/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtGenerateMembersHandler.kt +++ b/plugins/kotlin/code-insight/override-implement-k2/src/org/jetbrains/kotlin/idea/core/overrideImplement/KtGenerateMembersHandler.kt @@ -9,7 +9,6 @@ import com.intellij.openapi.util.TextRange import com.intellij.psi.PsiElement import com.intellij.psi.SmartPsiElementPointer import com.intellij.psi.codeStyle.CodeStyleManager -import com.intellij.psi.stubs.StubElement import org.jetbrains.annotations.ApiStatus import org.jetbrains.kotlin.analysis.api.KtAllowAnalysisOnEdt import org.jetbrains.kotlin.idea.core.insertMembersAfter @@ -19,7 +18,7 @@ import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.lifetime.allowAnalysisOnEdt import org.jetbrains.kotlin.analysis.api.renderer.base.annotations.KtRendererAnnotationsFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource -import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererModifierFilter +import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererKeywordFilter import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.idea.base.analysis.api.utils.invokeShortening import org.jetbrains.kotlin.lexer.KtTokens @@ -342,7 +341,7 @@ abstract class KtGenerateMembersHandler( annotationFilter = KtRendererAnnotationsFilter.NONE } modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.onlyWith(KtTokens.OVERRIDE_KEYWORD) + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.onlyWith(KtTokens.OVERRIDE_KEYWORD) } } } } diff --git a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/keywords/OverrideKeywordHandler.kt b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/keywords/OverrideKeywordHandler.kt index 0ad2df6d47b8..a70b0cb0a2f4 100644 --- a/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/keywords/OverrideKeywordHandler.kt +++ b/plugins/kotlin/completion/impl-k2/src/org/jetbrains/kotlin/idea/completion/impl/k2/contributors/keywords/OverrideKeywordHandler.kt @@ -13,10 +13,10 @@ import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.lifetime.allowAnalysisOnEdt import org.jetbrains.kotlin.analysis.api.renderer.base.annotations.KtRendererAnnotationsFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource -import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererModifierFilter import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtVariableSymbol +import org.jetbrains.kotlin.analysis.api.renderer.declarations.modifiers.renderers.KtRendererKeywordFilter import org.jetbrains.kotlin.analysis.api.symbols.markers.KtNamedSymbol import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithModality import org.jetbrains.kotlin.descriptors.Modality @@ -183,7 +183,7 @@ internal class OverrideKeywordHandler( annotationFilter = KtRendererAnnotationsFilter.NONE } modifiersRenderer = modifiersRenderer.with { - modifierFilter = KtRendererModifierFilter.onlyWith(KtTokens.TYPE_MODIFIER_KEYWORDS) + keywordsRenderer = keywordsRenderer.with { keywordFilter = KtRendererKeywordFilter.onlyWith(KtTokens.TYPE_MODIFIER_KEYWORDS) } } } } diff --git a/plugins/kotlin/idea/tests/testData/structureView/fileStructure/InheritedMembersOfEnum.fir.after b/plugins/kotlin/idea/tests/testData/structureView/fileStructure/InheritedMembersOfEnum.fir.after index 181edb4e398c..a54337caaaed 100644 --- a/plugins/kotlin/idea/tests/testData/structureView/fileStructure/InheritedMembersOfEnum.fir.after +++ b/plugins/kotlin/idea/tests/testData/structureView/fileStructure/InheritedMembersOfEnum.fir.after @@ -1,13 +1,13 @@ -InheritedMembersOfEnum.kt - -enum class Test + -Test + clone(): Any location=→Enum + compareTo(E): Int location=→Enum + equals(Any?): Boolean location=→Enum + finalize(): Unit location=→Enum FIRST - fun clone(): Any location=→Enum - fun compareTo(other: E): Int location=→Enum - fun equals(other: Any?): Boolean location=→Enum - fun finalize() location=→Enum - fun getDeclaringClass(): Class location=→Enum - fun hashCode(): Int location=→Enum - fun toString(): String location=→Enum + getDeclaringClass(): Class location=→Enum + hashCode(): Int location=→Enum + name: String location=→Enum + ordinal: Int location=→Enum SECOND - val name: String location=→Enum - val ordinal: Int location=→Enum \ No newline at end of file + toString(): String location=→Enum \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/structureView/fileStructure/Render.fir.after b/plugins/kotlin/idea/tests/testData/structureView/fileStructure/Render.fir.after index beac0c94c747..0b46bbfc316a 100644 --- a/plugins/kotlin/idea/tests/testData/structureView/fileStructure/Render.fir.after +++ b/plugins/kotlin/idea/tests/testData/structureView/fileStructure/Render.fir.after @@ -1,7 +1,4 @@ -Render.kt - - Enum1 - FIRST - SECOND A1 -A2 a: Int @@ -28,6 +25,9 @@ object Comparable.a: String Comparable.extension2(): Unit + -Enum1 + FIRST + SECOND Interface Interface1 String.extension1(): Unit diff --git a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/memberInfo/K2MemberInfoSupport.kt b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/memberInfo/K2MemberInfoSupport.kt index 96329202342e..739de81600d3 100644 --- a/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/memberInfo/K2MemberInfoSupport.kt +++ b/plugins/kotlin/refactorings/kotlin.refactorings.k2/src/org/jetbrains/kotlin/idea/k2/refactoring/memberInfo/K2MemberInfoSupport.kt @@ -2,7 +2,7 @@ package org.jetbrains.kotlin.idea.k2.refactoring.memberInfo import org.jetbrains.kotlin.analysis.api.analyze -import org.jetbrains.kotlin.analysis.api.renderer.base.KtKeywordRenderer +import org.jetbrains.kotlin.analysis.api.renderer.base.KtKeywordsRenderer import org.jetbrains.kotlin.analysis.api.renderer.base.annotations.KtRendererAnnotationsFilter import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForSource import org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.callables.KtPropertyAccessorsRenderer @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.psi.KtNamedDeclaration class K2MemberInfoSupport : KotlinMemberInfoSupport { private val renderer = KtDeclarationRendererForSource.WITH_SHORT_NAMES.with { annotationRenderer = annotationRenderer.with { - keywordRender = KtKeywordRenderer.NONE + keywordsRenderer = KtKeywordsRenderer.NONE annotationFilter = KtRendererAnnotationsFilter.NONE superTypesFilter = KtSuperTypesFilter.NONE propertyAccessorsRenderer = KtPropertyAccessorsRenderer.NONE