Better presentation for use site targets in completion
This commit is contained in:
+4
@@ -307,6 +307,10 @@ class BasicCompletionSession(configuration: CompletionSessionConfiguration,
|
||||
}
|
||||
}
|
||||
|
||||
"get" -> {
|
||||
collector.addElement(lookupElement)
|
||||
}
|
||||
|
||||
else -> collector.addElement(lookupElement)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,21 +85,27 @@ object KeywordCompletion {
|
||||
|
||||
if (!parserFilter(keywordToken)) continue
|
||||
|
||||
val insertHandler = if (position.prevLeaf()?.node?.elementType == KtTokens.AT)
|
||||
var element = LookupElementBuilder.create(KeywordLookupObject(), keyword).bold()
|
||||
|
||||
val isUseSiteAnnotationTarget = position.prevLeaf()?.node?.elementType == KtTokens.AT
|
||||
|
||||
val insertHandler = if (isUseSiteAnnotationTarget)
|
||||
UseSiteAnnotationTargetInsertHandler
|
||||
else if (keywordToken !in FUNCTION_KEYWORDS)
|
||||
KotlinKeywordInsertHandler
|
||||
else
|
||||
KotlinFunctionInsertHandler.Normal(inputTypeArguments = false, inputValueArguments = false)
|
||||
element = element.withInsertHandler(insertHandler)
|
||||
|
||||
if (isUseSiteAnnotationTarget) {
|
||||
element = element.withPresentableText(keyword + ":")
|
||||
}
|
||||
|
||||
val element = LookupElementBuilder.create(KeywordLookupObject(), keyword)
|
||||
.bold()
|
||||
.withInsertHandler(insertHandler)
|
||||
consumer(element)
|
||||
}
|
||||
}
|
||||
|
||||
private val FUNCTION_KEYWORDS = listOf(GET_KEYWORD, SET_KEYWORD, CONSTRUCTOR_KEYWORD)
|
||||
private val FUNCTION_KEYWORDS = listOf(CONSTRUCTOR_KEYWORD)
|
||||
|
||||
private val GENERAL_FILTER = NotFilter(OrFilter(
|
||||
CommentFilter(),
|
||||
|
||||
+8
-8
@@ -1,11 +1,11 @@
|
||||
@<caret>[]
|
||||
|
||||
// EXIST: file
|
||||
// EXIST: field
|
||||
// EXIST: get
|
||||
// EXIST: set
|
||||
// EXIST: param
|
||||
// EXIST: setparam
|
||||
// EXIST: property
|
||||
// EXIST: receiver
|
||||
// EXIST: { itemText: "file:" }
|
||||
// EXIST: { itemText: "field:" }
|
||||
// EXIST: { itemText: "get:" }
|
||||
// EXIST: { itemText: "set:" }
|
||||
// EXIST: { itemText: "param:" }
|
||||
// EXIST: { itemText: "setparam:" }
|
||||
// EXIST: { itemText: "property:" }
|
||||
// EXIST: { itemText: "receiver:" }
|
||||
// NOTHING_ELSE
|
||||
|
||||
Reference in New Issue
Block a user