From 17a450657516c3b41cde7bd0fd83011eaac0e328 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Tue, 26 Mar 2019 10:27:29 +0300 Subject: [PATCH] Keyword completion: complete data class with parentheses #KT-30511 Fixed --- .../kotlin/idea/completion/KeywordCompletion.kt | 9 ++++++--- .../testData/keywords/AfterClasses_LangLevel10.kt | 2 +- .../testData/keywords/AfterClasses_LangLevel11.kt | 2 +- .../testData/keywords/GlobalPropertyAccessors.kt | 2 +- .../testData/keywords/InTopScopeAfterPackage.kt | 2 +- idea/idea-completion/testData/keywords/TopScope.kt | 2 +- 6 files changed, 11 insertions(+), 8 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 f654764ac1b..f972ed8d1b9 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 @@ -129,12 +129,15 @@ object KeywordCompletion { if (constructText != null && !applicableAsCompound) { val element = createKeywordConstructLookupElement(position.project, keyword, constructText) consumer(element) - } - else { + } else { if (listOf(CLASS_KEYWORD, OBJECT_KEYWORD, INTERFACE_KEYWORD).any { keyword.endsWith(it.value) }) { val topLevelClassName = getTopLevelClassName(position) if (topLevelClassName != null) { - consumer(createLookupElementBuilder("$keyword $topLevelClassName", position)) + if (keyword.startsWith(DATA_KEYWORD.value)) { + consumer(createKeywordConstructLookupElement(position.project, keyword, "$keyword $topLevelClassName(caret)")) + } else { + consumer(createLookupElementBuilder("$keyword $topLevelClassName", position)) + } } } consumer(createLookupElementBuilder(keyword, position)) diff --git a/idea/idea-completion/testData/keywords/AfterClasses_LangLevel10.kt b/idea/idea-completion/testData/keywords/AfterClasses_LangLevel10.kt index 4e06e21833b..0ff92d5bf34 100644 --- a/idea/idea-completion/testData/keywords/AfterClasses_LangLevel10.kt +++ b/idea/idea-completion/testData/keywords/AfterClasses_LangLevel10.kt @@ -34,7 +34,7 @@ class B { // EXIST: sealed class // EXIST: sealed class AfterClasses_LangLevel10 // EXIST: data class -// EXIST: data class AfterClasses_LangLevel10 +// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel10(...)", "attributes":"bold" } // EXIST: inline // EXIST: tailrec // EXIST: external diff --git a/idea/idea-completion/testData/keywords/AfterClasses_LangLevel11.kt b/idea/idea-completion/testData/keywords/AfterClasses_LangLevel11.kt index b9723eb0203..1ac3c9a9e14 100644 --- a/idea/idea-completion/testData/keywords/AfterClasses_LangLevel11.kt +++ b/idea/idea-completion/testData/keywords/AfterClasses_LangLevel11.kt @@ -34,7 +34,7 @@ class B { // EXIST: sealed class // EXIST: sealed class AfterClasses_LangLevel11 // EXIST: data class -// EXIST: data class AfterClasses_LangLevel11 +// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel11(...)", "attributes":"bold" } // EXIST: inline // EXIST: tailrec // EXIST: external diff --git a/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt b/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt index abfad46cc70..99e42ebf056 100644 --- a/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt +++ b/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt @@ -38,7 +38,7 @@ var a : Int // EXIST: sealed class // EXIST: sealed class GlobalPropertyAccessors // EXIST: data class -// EXIST: data class GlobalPropertyAccessors +// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" GlobalPropertyAccessors(...)", "attributes":"bold" } // EXIST: inline // EXIST: tailrec // EXIST: external diff --git a/idea/idea-completion/testData/keywords/InTopScopeAfterPackage.kt b/idea/idea-completion/testData/keywords/InTopScopeAfterPackage.kt index 69cdfe890ee..a3f0f55e980 100644 --- a/idea/idea-completion/testData/keywords/InTopScopeAfterPackage.kt +++ b/idea/idea-completion/testData/keywords/InTopScopeAfterPackage.kt @@ -25,7 +25,7 @@ package Test // EXIST: sealed class // EXIST: sealed class InTopScopeAfterPackage // EXIST: data class -// EXIST: data class InTopScopeAfterPackage +// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" InTopScopeAfterPackage(...)", "attributes":"bold" } // EXIST: inline // EXIST: tailrec // EXIST: external diff --git a/idea/idea-completion/testData/keywords/TopScope.kt b/idea/idea-completion/testData/keywords/TopScope.kt index bc3f48c807f..87f0717137f 100644 --- a/idea/idea-completion/testData/keywords/TopScope.kt +++ b/idea/idea-completion/testData/keywords/TopScope.kt @@ -24,7 +24,7 @@ // EXIST: sealed class // EXIST: sealed class TopScope // EXIST: data class -// EXIST: data class TopScope +// EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" TopScope(...)", "attributes":"bold" } // EXIST: inline // EXIST: tailrec // EXIST: external