intellij idea 插件开发---live template

注:建立plugin项目可参考本人以前的博客http://www.javashuo.com/article/p-xlnxjwdi-dk.html
一.最终效果

1.输入test出现快捷提示,回车便建立测试方法,效果以下图java

--->express

以此类推,你能够建立controller 方法,等等ide

二.实现步骤

1.建立testTemplate.xml文件,路径为:resources\liveTemplates\testTemplate.xml测试

编辑testTemplate.xml,代码以下:idea

<templateSet group="TEST">
    <template name="test" value="@Test&#10;public void $TEXT$Test() {&#10;  $END$&#10;}" description="create test method." toReformat="true" toShortenFQNames="true">
        <variable name="TEXT" expression="" defaultValue="" alwaysStopAt="true" />
        <context>
            <option name="JAVA" value="true" />
        </context>
    </template>
</templateSet>

name="test":表示咱们输入test的时候,idea将自动出现模板提示,value即是模板内容,配置内容反映在idea界面上:settings--->live templates,后面演示;spa

2.建立TestTemplateProvider类,实现DefaultLiveTemplatesProvider接口,以下所示:.net

public class TestTemplateProvider  implements DefaultLiveTemplatesProvider {

    @Override
    public String[] getDefaultLiveTemplateFiles() {
        //模板
        return new String[]{"liveTemplates/testTemplate"};
    }

    @Nullable
    @Override
    public String[] getHiddenLiveTemplateFiles() {
        return new String[0];
    }
}

3.建立TestContext类,继承TemplateContextType类,以下所示:插件

public class TestContext extends TemplateContextType {

    protected TestContext() {
        super("JAVA", "Java");
    }

    @Override
    public boolean isInContext(@NotNull PsiFile file, int offset) {
        return file.getName().endsWith(".java");
    }
}

其中,super("JAVA", "Java");约束了做用范围,记得须要在以前配置的xml文件添加对应的<context>orm

4.配置plugin.xml,将刚才建立的两个类配置到extensions中xml

<extensions defaultExtensionNs="com.intellij">
    <!-- Add your extensions here -->
    <defaultLiveTemplatesProvider implementation="TestTemplateProvider"/>
    <liveTemplateContext implementation="TestContext"/>
</extensions>

至此,插件已完成,能够编译安装到idea上使用了。

三.界面上配置live template

除了以上方法外,也能够在界面上配置或修改模板,以下图:

你能够直接在界面上增长模板,也能够修改。idea自己内置了一些经常使用的变量,

如:

$TEXT$表示建立完后,此处会变为红色框,可输入代码。

$END$表示建立模板后,光标最后停留的位置;

相关文章
相关标签/搜索