Better presentation for use site targets in completion

This commit is contained in:
Valentin Kipyatkov
2015-10-21 18:27:01 +03:00
parent b7809ed94a
commit 798223b0e4
3 changed files with 23 additions and 13 deletions
@@ -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
View File
@@ -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