IntelliJ 插件自动完成格式化
IntelliJ plugin autocomplete formatting
我像这样向我的 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)
。
但是,我完全不明白您为什么要通过完成贡献者提供它。这看起来像一个实时模板,您的插件可以比自定义完成更轻松地贡献实时模板。实时模板自动显示在完成列表中并支持自动重新格式化。
我像这样向我的 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)
。
但是,我完全不明白您为什么要通过完成贡献者提供它。这看起来像一个实时模板,您的插件可以比自定义完成更轻松地贡献实时模板。实时模板自动显示在完成列表中并支持自动重新格式化。