From 15a316ff9090bff2bd9b29368c156c56fefb0f54 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 30 Jan 2019 00:51:29 +0300 Subject: [PATCH] Fix keyword completion for code fragments (KT-28680) --- .../idea/completion/KeywordCompletion.kt | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt index 26a992b166c..27a9ffae3e3 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt @@ -470,20 +470,18 @@ object KeywordCompletion { } } - private fun isModifierParentSupportedAtLanguageLevel( - keyword: KtKeywordToken, - target: KotlinTarget, - languageVersionSettings: LanguageVersionSettings - ): Boolean { - if (keyword == KtTokens.INNER_KEYWORD && target == ENUM_ENTRY) { - return languageVersionSettings.supportsFeature(LanguageFeature.InnerClassInEnumEntryClass) - } - return true - } - // builds text within scope (or from the start of the file) before position element excluding almost all declarations private fun buildReducedContextBefore(builder: StringBuilder, position: PsiElement, scope: PsiElement?) { if (position == scope) return + + if (position is KtCodeFragment) { + val ktContext = position.context as? KtElement ?: return + buildReducedContextBefore(builder, ktContext, scope) + return + } else if (position is PsiFile) { + return + } + val parent = position.parent ?: return buildReducedContextBefore(builder, parent, scope)