idea自定义模板:live template

设置生成代码模板,可以减少重复代码编写。

1、文件类型

在生成一个指定文件的时候,可以预设模板内容,设置自己的内容,能用的变量idea里也给出来了,下面贴出来。

<!--
time:$DATE $TIME
user:$USER
message:#[[$END$]]#
-->
<template>
</template>

<script>
export default {
name: "${COMPONENT_NAME}"
}
</script>

<style scoped>

</style>
预定义变量列表
${DATE}当前系统日期
${DAY}当前月份的日期
${DAY_NAME_SHORT}当前日期名称的前 3 个字母(例如,Mon、Tue 等)
${DAY_NAME_FULL}当前日期的全名(Monday、Tuesday 等)
${DIR_PATH}新文件的目录路径(相对于项目根目录)
${DS}美元符号 ($)。 此变量用于转义美元字符,因此不会将其视为模板变量的前缀。
${FILE_NAME}新文件名称
${HOUR}当前小时
${MINUTE}当前分钟
${SECOND}当前秒
${MONTH}当前月份
${MONTH_NAME_SHORT}当前月份名称的前 3 个字母(Jan、Feb 等)。
${MONTH_NAME_FULL}当前月份的全名(January、February 等)。
${NAME}新实体的名称(文件、类型、接口等)
${ORGANIZATION_NAME}在项目设置中指定的组织名称
${PRODUCT_NAME}IDE 名称
${PROJECT_NAME}当前项目名称
${TIME}当前系统时间
${USER}当前用户的系统登录名
${YEAR}当前年度

2、输入指定内容,生成自定义代码

这时候就不是在生成文件时后,而是输入自定义标题时,弹出提示,选中后即可生成代码。
1、实时模板,在选中的分类下建一个模板,若没都选中,自动生成user分类

2、模板组,新建一个分类

展开方式:默认(tab)、space、enter、无

定义/更改:勾选要出现提示的地方

比如我缩写,填test,描述略,模板文本1234567,在输入test后回出现提示,选中后,自动生成固定内容1234567

使用$key$插入变量,如:123456$END$7,则打印出来后,光标在67之间。若变量为自定义(或更改官方变量),在“编辑变量”中设置,如:

function $var0$($var1$){
    // $user$
    return $var1$;
}

 则自动出现

 $var0$ 和 $var1$ 可手动输入内容,tab键跳到下一个变量位置,且同名变量,输入一个其他也跟着改变。

idea中可用的表达式,详情见官网

 3、groovy脚本语言控制

idea可用groovy脚本语言设置模板,脚本语言的特点就是简单,兼容性强,简单的功能只要有编程基础就可以参考网上教程,就可使用循环/判断语句实现。

还是在编辑变量中设置表达式

groovyScript("Groovy",date(),time(),user());

其中Groovy可以直接编写groovyScript脚本语句,也可以写groovy文件路径。若内容较多,复用性强,建议引入文件。

示例:

//D:/Desktop/test/test.groovy
//groovyScript("D:/Desktop/test/test.groovy",date(),time(),user())
def date=_1;
def time=_2;
def name=_3;
def str="";
str+="/** \ntime:"+date+" "+ time+"\n*name:"+name+"*/\n";
for(i in 0..10){
    str+="<td>"+i+"</td>\n"
}
return str;

模板文本仅一个变量,上述代码第一行为文件路径,第二行为idea设置的变量表达式,则效果如下:

4、正则动态生成(未实现)

上一个例子里,包括idea在内的编辑器都可以输入td*10然后按下Tab键实现,我想要实现的就是如此效果,自定义一段内容,后面接固定符号(如*)再接数字,能遍历生成内容。

并没有找到如【td*10】的设置方法,以后若找到就补上该文。

若有前辈知道,请不吝赐教。


版权声明:本文为tang31415926原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。