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)

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