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$表示建立模板後,光標最後停留的位置;

相關文章
相關標籤/搜索