Keyword completion: complete data class with parentheses

#KT-30511 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-03-26 10:27:29 +03:00
committed by Nikolay Krasko
parent f1a31652b3
commit 17a4506575
6 changed files with 11 additions and 8 deletions
@@ -129,12 +129,15 @@ object KeywordCompletion {
if (constructText != null && !applicableAsCompound) { if (constructText != null && !applicableAsCompound) {
val element = createKeywordConstructLookupElement(position.project, keyword, constructText) val element = createKeywordConstructLookupElement(position.project, keyword, constructText)
consumer(element) consumer(element)
} } else {
else {
if (listOf(CLASS_KEYWORD, OBJECT_KEYWORD, INTERFACE_KEYWORD).any { keyword.endsWith(it.value) }) { if (listOf(CLASS_KEYWORD, OBJECT_KEYWORD, INTERFACE_KEYWORD).any { keyword.endsWith(it.value) }) {
val topLevelClassName = getTopLevelClassName(position) val topLevelClassName = getTopLevelClassName(position)
if (topLevelClassName != null) { 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)) consumer(createLookupElementBuilder(keyword, position))
@@ -34,7 +34,7 @@ class B {
// EXIST: sealed class // EXIST: sealed class
// EXIST: sealed class AfterClasses_LangLevel10 // EXIST: sealed class AfterClasses_LangLevel10
// EXIST: data class // EXIST: data class
// EXIST: data class AfterClasses_LangLevel10 // EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel10(...)", "attributes":"bold" }
// EXIST: inline // EXIST: inline
// EXIST: tailrec // EXIST: tailrec
// EXIST: external // EXIST: external
@@ -34,7 +34,7 @@ class B {
// EXIST: sealed class // EXIST: sealed class
// EXIST: sealed class AfterClasses_LangLevel11 // EXIST: sealed class AfterClasses_LangLevel11
// EXIST: data class // EXIST: data class
// EXIST: data class AfterClasses_LangLevel11 // EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" AfterClasses_LangLevel11(...)", "attributes":"bold" }
// EXIST: inline // EXIST: inline
// EXIST: tailrec // EXIST: tailrec
// EXIST: external // EXIST: external
@@ -38,7 +38,7 @@ var a : Int
// EXIST: sealed class // EXIST: sealed class
// EXIST: sealed class GlobalPropertyAccessors // EXIST: sealed class GlobalPropertyAccessors
// EXIST: data class // EXIST: data class
// EXIST: data class GlobalPropertyAccessors // EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" GlobalPropertyAccessors(...)", "attributes":"bold" }
// EXIST: inline // EXIST: inline
// EXIST: tailrec // EXIST: tailrec
// EXIST: external // EXIST: external
@@ -25,7 +25,7 @@ package Test
// EXIST: sealed class // EXIST: sealed class
// EXIST: sealed class InTopScopeAfterPackage // EXIST: sealed class InTopScopeAfterPackage
// EXIST: data class // EXIST: data class
// EXIST: data class InTopScopeAfterPackage // EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" InTopScopeAfterPackage(...)", "attributes":"bold" }
// EXIST: inline // EXIST: inline
// EXIST: tailrec // EXIST: tailrec
// EXIST: external // EXIST: external
+1 -1
View File
@@ -24,7 +24,7 @@
// EXIST: sealed class // EXIST: sealed class
// EXIST: sealed class TopScope // EXIST: sealed class TopScope
// EXIST: data class // EXIST: data class
// EXIST: data class TopScope // EXIST: { "lookupString":"data class", "itemText":"data class", "tailText":" TopScope(...)", "attributes":"bold" }
// EXIST: inline // EXIST: inline
// EXIST: tailrec // EXIST: tailrec
// EXIST: external // EXIST: external