我像这样为我的 IntelliJ 插件添加自动完成功能:
String completionString = "myFunction(err, data){if(err){}else{}}";
return LookupElementBuilder
.create(completionString)
.withBoldness(true)
.withIcon(SailsJSIcons.SailsJS)
.withPresentableText("myFunction()")
.withCaseSensitivity(true)
.withTypeText(type)
.withTailText(" (" + item + ")", true)
.withAutoCompletionPolicy(AutoCompletionPolicy.GIVE_CHANCE_TO_OVERWRITE);
如何格式化我将放在编辑器上的新方法?我不想要自定义格式,只想要 IntelliJ 的默认格式
您可以将 InsertHandler 添加到 LookupElement 并在其 handleInsert
方法中执行CodeStyleManager.reformat(psiElement)
。
但是,我根本不明白您为什么要通过完成贡献者提供此功能。这看起来像一个实时模板,您的插件可以贡献实时模板,而工作量远低于自定义完成。实时模板会自动显示在完成列表中,并支持自动重新格式化。