Intellij Idea 如何在Intellij中为Live模板添加自定义表达式函数

yuvru6vn  于 2023-03-17  发布在  其他
关注(0)|答案(2)|浏览(161)

如何在Idea Intellij中为Live模板添加新的自定义功能。
例如,我需要一个自定义函数,可以转换活模板变量从 Camel 的情况下,以空格。即在活模板变量必须插入在多个地方与没有空格。
例如,“MyVar”和“My Var”。因此,我想插入一个表达式来将“MyVar”转换为“My Var”。
默认情况下没有可用的表达式可用于此操作。
谢谢。

yacmzcpb

yacmzcpb1#

有OpenAPI提供活模板功能。你可以创建IntelliJ IDEA插件,将增加更多的功能。
参见Macro抽象类,插件需要定义扩展点,如下所示:

<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.CapitalizeMacro"/>

IntelliJ IDEA Community代码库中搜索示例实现。

ttvkxqim

ttvkxqim2#

谢谢@CrazyCoder的回答,我将展示我的代码如何将自定义表达式添加到活动模板中。
1.创建插件Gradle项目https://plugins.jetbrains.com/docs/intellij/creating-plugin-project.html
如果出现类似Could not resolve all files for configuration ':classpath'.的错误
您应该打开Preferences -> Build,Execution,Deployment -> Build Tools -> Gradle选择Gradle JVM以安装版本
1.像这样创建自己的类:

package com.xxxx.yourPackage;

import com.intellij.codeInsight.template.*;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class MyLiveTemplateExpression extends Macro {

    @Override
    public @NonNls String getName() {
        return "MyLiveTemplateExpression";
    }

    @Override
    public @Nullable Result calculateResult(Expression @NotNull [] params, ExpressionContext context) {
        return new TextResult("测试自己的宏");
    }
}

在此代码中,方法getName将返回一个字符串名称,该名称将显示在live-templates x1c 0d1x中
1.编辑plugin.xml将liveTemplateMacro标签添加到extensions标签中,如下所示:

<liveTemplateMacro implementation="com.xxxx.yourPackage.yourClass"/>

在我的示例中,实现值为com.xxxx.cusomLiveTemplate.MyLiveTemplateExpression
1.选择右侧边栏Gradle以构建jar

1.打开Perference -> plugins单击设置图标并选择install from disk来安装插件
1.现在可以使用此表达式
因为我是一个前端开发人员,我不知道如何写java代码...所以代码不强,我真的希望有java可以编辑这个答案或告诉我如何写得更好!
对不起,我的英语很差,希望有人可以编辑它,使它更容易理解

相关问题