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)
|
else -> collector.addElement(lookupElement)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,21 +85,27 @@ object KeywordCompletion {
|
|||||||
|
|
||||||
if (!parserFilter(keywordToken)) continue
|
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
|
UseSiteAnnotationTargetInsertHandler
|
||||||
else if (keywordToken !in FUNCTION_KEYWORDS)
|
else if (keywordToken !in FUNCTION_KEYWORDS)
|
||||||
KotlinKeywordInsertHandler
|
KotlinKeywordInsertHandler
|
||||||
else
|
else
|
||||||
KotlinFunctionInsertHandler.Normal(inputTypeArguments = false, inputValueArguments = false)
|
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)
|
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(
|
private val GENERAL_FILTER = NotFilter(OrFilter(
|
||||||
CommentFilter(),
|
CommentFilter(),
|
||||||
|
|||||||
+8
-8
@@ -1,11 +1,11 @@
|
|||||||
@<caret>[]
|
@<caret>[]
|
||||||
|
|
||||||
// EXIST: file
|
// EXIST: { itemText: "file:" }
|
||||||
// EXIST: field
|
// EXIST: { itemText: "field:" }
|
||||||
// EXIST: get
|
// EXIST: { itemText: "get:" }
|
||||||
// EXIST: set
|
// EXIST: { itemText: "set:" }
|
||||||
// EXIST: param
|
// EXIST: { itemText: "param:" }
|
||||||
// EXIST: setparam
|
// EXIST: { itemText: "setparam:" }
|
||||||
// EXIST: property
|
// EXIST: { itemText: "property:" }
|
||||||
// EXIST: receiver
|
// EXIST: { itemText: "receiver:" }
|
||||||
// NOTHING_ELSE
|
// NOTHING_ELSE
|
||||||
|
|||||||
Reference in New Issue
Block a user