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 f2ba185b772..bc47fb1557d 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 @@ -114,7 +114,7 @@ object KeywordCompletion { val constructText = KEYWORD_CONSTRUCTS[keywordToken] if (constructText != null) { - val element = createKeywordConstructLookupElement(position.project, keyword, constructText, showConstructInLookup = false) + val element = createKeywordConstructLookupElement(position.project, keyword, constructText) consumer(element) } else { diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/handlerUtils.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/handlerUtils.kt index 28b58cf603f..a6c421d3b5d 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/handlerUtils.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/handlerUtils.kt @@ -74,8 +74,7 @@ fun createKeywordConstructLookupElement( project: Project, keyword: String, fileTextToReformat: String, - trimSpacesAroundCaret: Boolean = false, - showConstructInLookup: Boolean = true + trimSpacesAroundCaret: Boolean = false ): LookupElement { val file = KtPsiFactory(project).createFile(fileTextToReformat) CodeStyleManager.getInstance(project).reformat(file) @@ -103,8 +102,13 @@ fun createKeywordConstructLookupElement( tailBeforeCaret = tailBeforeCaret.unindent(indent) tailAfterCaret = tailAfterCaret.unindent(indent) - var lookupElementBuilder = LookupElementBuilder.create(KeywordLookupObject(), keyword) + val tailText = (if (tailBeforeCaret.contains('\n')) tailBeforeCaret.replace("\n", "").trimEnd() else tailBeforeCaret) + + "..." + + (if (tailAfterCaret.contains('\n')) tailAfterCaret.replace("\n", "").trimStart() else tailAfterCaret) + + return LookupElementBuilder.create(KeywordLookupObject(), keyword) .bold() + .withTailText(tailText) .withInsertHandler { insertionContext, lookupElement -> if (insertionContext.completionChar == Lookup.NORMAL_SELECT_CHAR || insertionContext.completionChar == Lookup.REPLACE_SELECT_CHAR) { val offset = insertionContext.tailOffset @@ -117,10 +121,6 @@ fun createKeywordConstructLookupElement( insertionContext.editor.moveCaret(offset + beforeCaret.length) } } - if (showConstructInLookup) { - lookupElementBuilder = lookupElementBuilder.withTailText(tailBeforeCaret + tailAfterCaret) - } - return lookupElementBuilder } private fun detectIndent(text: CharSequence, offset: Int): String { diff --git a/idea/idea-completion/testData/handlers/keywords/Getter1.kt b/idea/idea-completion/testData/handlers/keywords/Getter1.kt index 39dc825755c..aa9b114edf4 100644 --- a/idea/idea-completion/testData/handlers/keywords/Getter1.kt +++ b/idea/idea-completion/testData/handlers/keywords/Getter1.kt @@ -2,4 +2,4 @@ val v: Int g // ELEMENT: "get" -// TAIL_TEXT: "() = " \ No newline at end of file +// TAIL_TEXT: "() = ..." \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Getter1.kt.after b/idea/idea-completion/testData/handlers/keywords/Getter1.kt.after index 0e29891e5ed..5f241e3cb1c 100644 --- a/idea/idea-completion/testData/handlers/keywords/Getter1.kt.after +++ b/idea/idea-completion/testData/handlers/keywords/Getter1.kt.after @@ -2,4 +2,4 @@ val v: Int get() = // ELEMENT: "get" -// TAIL_TEXT: "() = " \ No newline at end of file +// TAIL_TEXT: "() = ..." \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Getter2.kt b/idea/idea-completion/testData/handlers/keywords/Getter2.kt index b14ece60988..c651989846f 100644 --- a/idea/idea-completion/testData/handlers/keywords/Getter2.kt +++ b/idea/idea-completion/testData/handlers/keywords/Getter2.kt @@ -2,4 +2,4 @@ val v: Int g // ELEMENT: "get" -// TAIL_TEXT: "() {}" \ No newline at end of file +// TAIL_TEXT: "() {...}" \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Getter2.kt.after b/idea/idea-completion/testData/handlers/keywords/Getter2.kt.after index 6867e0c8378..9d7b10a5b3e 100644 --- a/idea/idea-completion/testData/handlers/keywords/Getter2.kt.after +++ b/idea/idea-completion/testData/handlers/keywords/Getter2.kt.after @@ -2,4 +2,4 @@ val v: Int get() {} // ELEMENT: "get" -// TAIL_TEXT: "() {}" \ No newline at end of file +// TAIL_TEXT: "() {...}" \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Setter1.kt b/idea/idea-completion/testData/handlers/keywords/Setter1.kt index a2ec914eb75..2a168249066 100644 --- a/idea/idea-completion/testData/handlers/keywords/Setter1.kt +++ b/idea/idea-completion/testData/handlers/keywords/Setter1.kt @@ -3,4 +3,4 @@ var v: Int s // ELEMENT: "set" -// TAIL_TEXT: "(value) = " \ No newline at end of file +// TAIL_TEXT: "(value) = ..." \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Setter1.kt.after b/idea/idea-completion/testData/handlers/keywords/Setter1.kt.after index b5f1850d952..caa978d2c7c 100644 --- a/idea/idea-completion/testData/handlers/keywords/Setter1.kt.after +++ b/idea/idea-completion/testData/handlers/keywords/Setter1.kt.after @@ -3,4 +3,4 @@ var v: Int set(value) = // ELEMENT: "set" -// TAIL_TEXT: "(value) = " \ No newline at end of file +// TAIL_TEXT: "(value) = ..." \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Setter2.kt b/idea/idea-completion/testData/handlers/keywords/Setter2.kt index 89ad2f834b6..7cdcf27e315 100644 --- a/idea/idea-completion/testData/handlers/keywords/Setter2.kt +++ b/idea/idea-completion/testData/handlers/keywords/Setter2.kt @@ -3,4 +3,4 @@ var v: Int s // ELEMENT: "set" -// TAIL_TEXT: "(value) {}" \ No newline at end of file +// TAIL_TEXT: "(value) {...}" \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/keywords/Setter2.kt.after b/idea/idea-completion/testData/handlers/keywords/Setter2.kt.after index d481643c7f2..1d057fa94be 100644 --- a/idea/idea-completion/testData/handlers/keywords/Setter2.kt.after +++ b/idea/idea-completion/testData/handlers/keywords/Setter2.kt.after @@ -3,4 +3,4 @@ var v: Int set(value) {} // ELEMENT: "set" -// TAIL_TEXT: "(value) {}" \ No newline at end of file +// TAIL_TEXT: "(value) {...}" \ No newline at end of file diff --git a/idea/idea-completion/testData/keywords/AfterClassProperty.kt b/idea/idea-completion/testData/keywords/AfterClassProperty.kt index 59c7456e1dd..8ef1cc41281 100644 --- a/idea/idea-completion/testData/keywords/AfterClassProperty.kt +++ b/idea/idea-completion/testData/keywords/AfterClassProperty.kt @@ -11,8 +11,8 @@ class MouseMovedEventArgs // EXIST: final // EXIST: fun // EXIST: { itemText: "get", tailText: null } -// EXIST: { itemText: "get", tailText: "() = " } -// EXIST: { itemText: "get", tailText: "() {}" } +// EXIST: { itemText: "get", tailText: "() = ..." } +// EXIST: { itemText: "get", tailText: "() {...}" } // EXIST: inner // EXIST: internal // EXIST: object @@ -22,8 +22,8 @@ class MouseMovedEventArgs // EXIST: protected // EXIST: public // EXIST: { itemText: "set", tailText: null } -// EXIST: { itemText: "set", tailText: "(value) = " } -// EXIST: { itemText: "set", tailText: "(value) {}" } +// EXIST: { itemText: "set", tailText: "(value) = ..." } +// EXIST: { itemText: "set", tailText: "(value) {...}" } // EXIST: interface // EXIST: val // EXIST: var diff --git a/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt b/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt index 0b83a351d4d..1c3a43e3ba2 100644 --- a/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt +++ b/idea/idea-completion/testData/keywords/GlobalPropertyAccessors.kt @@ -16,16 +16,16 @@ var a : Int // EXIST: final // EXIST: fun // EXIST: { itemText: "get", tailText: null } -// EXIST: { itemText: "get", tailText: "() = " } -// EXIST: { itemText: "get", tailText: "() {}" } +// EXIST: { itemText: "get", tailText: "() = ..." } +// EXIST: { itemText: "get", tailText: "() {...}" } // EXIST: internal // EXIST: object // EXIST: open // EXIST: private // EXIST: public // EXIST: { itemText: "set", tailText: null } -// EXIST: { itemText: "set", tailText: "(value) = " } -// EXIST: { itemText: "set", tailText: "(value) {}" } +// EXIST: { itemText: "set", tailText: "(value) = ..." } +// EXIST: { itemText: "set", tailText: "(value) {...}" } // EXIST: interface // EXIST: val // EXIST: var diff --git a/idea/idea-completion/testData/keywords/PropertyAccessors.kt b/idea/idea-completion/testData/keywords/PropertyAccessors.kt index a008de23786..dc1721d1845 100644 --- a/idea/idea-completion/testData/keywords/PropertyAccessors.kt +++ b/idea/idea-completion/testData/keywords/PropertyAccessors.kt @@ -10,8 +10,8 @@ class Some { // EXIST: final // EXIST: fun // EXIST: { itemText: "get", tailText: null } -// EXIST: { itemText: "get", tailText: "() = " } -// EXIST: { itemText: "get", tailText: "() {}" } +// EXIST: { itemText: "get", tailText: "() = ..." } +// EXIST: { itemText: "get", tailText: "() {...}" } // EXIST: inner // EXIST: internal // EXIST: object @@ -21,8 +21,8 @@ class Some { // EXIST: protected // EXIST: public // EXIST: { itemText: "set", tailText: null } -// EXIST: { itemText: "set", tailText: "(value) = " } -// EXIST: { itemText: "set", tailText: "(value) {}" } +// EXIST: { itemText: "set", tailText: "(value) = ..." } +// EXIST: { itemText: "set", tailText: "(value) {...}" } // EXIST: interface // EXIST: val // EXIST: var diff --git a/idea/idea-completion/testData/keywords/PropertyAccessors2.kt b/idea/idea-completion/testData/keywords/PropertyAccessors2.kt index ea0e005e578..38bc31b70f3 100644 --- a/idea/idea-completion/testData/keywords/PropertyAccessors2.kt +++ b/idea/idea-completion/testData/keywords/PropertyAccessors2.kt @@ -10,8 +10,8 @@ class Some { // EXIST: final // EXIST: fun // EXIST: { itemText: "get", tailText: null } -// EXIST: { itemText: "get", tailText: "() = " } -// EXIST: { itemText: "get", tailText: "() {}" } +// EXIST: { itemText: "get", tailText: "() = ..." } +// EXIST: { itemText: "get", tailText: "() {...}" } // EXIST: inner // EXIST: internal // EXIST: object @@ -21,8 +21,8 @@ class Some { // EXIST: protected // EXIST: public // EXIST: { itemText: "set", tailText: null } -// EXIST: { itemText: "set", tailText: "(value) = " } -// EXIST: { itemText: "set", tailText: "(value) {}" } +// EXIST: { itemText: "set", tailText: "(value) = ..." } +// EXIST: { itemText: "set", tailText: "(value) {...}" } // EXIST: interface // EXIST: val // EXIST: var diff --git a/idea/idea-completion/testData/keywords/PropertySetter.kt b/idea/idea-completion/testData/keywords/PropertySetter.kt index 9605a8aba87..74be60183c6 100644 --- a/idea/idea-completion/testData/keywords/PropertySetter.kt +++ b/idea/idea-completion/testData/keywords/PropertySetter.kt @@ -19,8 +19,8 @@ class Some { // EXIST: protected // EXIST: public // EXIST: { itemText: "set", tailText: null } -// EXIST: { itemText: "set", tailText: "(value) = " } -// EXIST: { itemText: "set", tailText: "(value) {}" } +// EXIST: { itemText: "set", tailText: "(value) = ..." } +// EXIST: { itemText: "set", tailText: "(value) {...}" } // EXIST: interface // EXIST: val // EXIST: var