我正在创建一个IntelliJ插件来支持nodeJS框架。 我尝试实现自动完成功能,但不知道如何在列表顶部设置自动完成位置。首先,我有其他自动完成功能(mozilla等)。
这是我的代码:
LookupElementBuilder
.create(completionString)
.withBoldness(true)
.withCaseSensitivity(false)
.withIcon(SailsJSIcons.SailsJS)
.withPresentableText("\t\t\t" + item)
.withAutoCompletionPolicy(AutoCompletionPolicy.GIVE_CHANCE_TO_OVERWRITE);
我认为handleInsert
可以帮助我,但无法找到如何使用它
答案 0 :(得分:0)
您可以尝试通过PrioritizedLookupElement #withPriority为查找元素指定显式高优先级。
答案 1 :(得分:0)
您可以在order="first"
的{{1}}上设置completion.contributor
。看起来它会让您的贡献者在其他来源的贡献者之前被称为,从而导致您的建议成为第一:
plugin.xml
首先调用您的贡献者时,您还可以编写代码来决定如何定位以下建议或使用<extensions defaultExtensionNs="com.intellij">
<completion.contributor order="first" language="PHP" implementationClass="org.klesun.deep_assoc_completion.entry.DeepKeysCbtr"/>
和@ peter-gromov建议的CompletionResultSet::runRemainingContributes()
完全排除其中一些建议:
PrioritizedLookupElement::withPriority()