【问题标题】:IntelliJ Plugin - How to automatic generate Code Snippet [Java]IntelliJ 插件 - 如何自动生成代码片段 [Java]
【发布时间】:2020-09-30 02:16:18
【问题描述】:

我目前正在开发一个通过 IntelliJ 插件实现的项目。不幸的是,我找不到如何设置“自动代码生成”功能的示例/指南。

IntelliJ 的 getter/setter 方法就是一个例子。 (Alt + 插入)

我想使用“我的插件”在当前文件中构建一个小的 Java 方法。

如果有人能给我一个提示甚至是代码示例,那就太好了。

我知道一般结构 -(plugin.xml -> group-id="GenerateGroup" 等)

【问题讨论】:

    标签: java intellij-idea plugins generate


    【解决方案1】:

    好吧,我还没找到真正的教程……

    我的解决方案:

    1. 在您的 plugin.xml 中添加/更改 <depends>com.intellij.modules.java</depends>

    2. 当您使用 gradle 项目时,请在 build.gradle 中添加:intellij { plugins 'java'

    这只是我的新构造函数的版本

        public void actionPerformed(AnActionEvent e)
        {
    
            WriteCommandAction.runWriteCommandAction(null, new Runnable() {
                @Override
                public void run() {
                  Editor editor = e.getRequiredData(CommonDataKeys.EDITOR);
    
                    Project project = e.getData(CommonDataKeys.PROJECT);
                    PsiFile file = PsiUtilBase.getPsiFileInEditor(editor, project);
    
                    PsiJavaFile psiJavaFile = (PsiJavaFile)file;
                    PsiClass[] classes = psiJavaFile.getClasses();
    
                    PsiClass psiClass = classes[0];
    
                    PsiElementFactory factory = JavaPsiFacade.getInstance(project).getElementFactory();
                    PsiMethod newConstructor = factory.createMethodFromText("puplic " + psiClass.getName() + "() {//new Constructor }", psiClass);
                    final PsiMethod[] psiMethods = psiClass.getMethods();
                    PsiMethod firstMethod = (psiMethods.length == 0) ? null : psiMethods[0];
                    psiClass.addBefore(newConstructor, firstMethod);
                }
            });}
    

    也许有人可以看看它并提出改进建议

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2012-05-30
      • 2012-05-15
      • 2017-08-25
      • 2022-12-16
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多