IDEA Live中Template如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
简单类型
简单类型就是固定的代码片段,当通过缩略词展开的时候,会在源代码中展开。如最简单和常用的pdvm展开就是main函数的定义。
参数类型
参数类型就是代码片段中带有参数的模板,参数用$界定,如参数MY,这位$MY$,参数类型非常有用,我们自定义的模板很多都会用到参数,等会再设置中在进行讲解。
环绕类型
环绕模板指的是那种包裹代码块的模板,比如try catch,还有下面演示的callable语句。
三种类型的演示如下:
如图中所示,iterations是idea自带的group,fori是缩略词,顾名思义这个组是针对迭代等操作的。
在使用时我们可以输入10.fori,list.fori或者直接输入fori然后按tab键(箭头7处)插入代码。idea会根据上下文生成不同的代码片段,如10.fori直接生成了“for (int i = 0; i < 10; i++) {”,而直接输入fori则是“for (int i = 0; i < ; i++) {”,注意此时10没有自动生成需要你手动输入。 我们可以点击2处新建自己的template,template的缩略词在同一group内不能重复,所以为了不和自带的键重复我们最好新建自己的一个group比如MY,不同的group中的缩略词可以重复。箭头5是描述用来助记的。
我们来自定义一个如下图:
我自定义了一个info(代码片段:"$CLASS$.$METHOD$ linenum:$LINE$, param:{$PARAM$} info:$MY$"$END$),输出了类名、方法名、行数和参数,这些信息在记录日志的时候非常有必要。其中$PARAM$变量就用到了脚本。
// methodParameters是预定义函数,其中双引号里的就是脚本,_1占位符只带methodParameters参数 groovyScript("_1.collect { it + ' = [\">
关于备份和分享:live template文件保存在“{user}{version}\config\templates”,user是指用户目录,version是idea目录,如我的目录就是C:\Users\chen.IntelliJIdea2017.3\config\templates,其中的文件名以group为名字。也可以在在File->Export Settings对话框中选中live template可以保存配置。
说明:在设置变量的值时有一列是Skip if define,这一列的意思是,如果有值了是否跳过(即光标是否停留),光标停留的位置是变量对话框中的顺序来定的,可以用右边的箭头排序。如果所有的变量填充完了便会跳到$END$变量的位置,如果没有定义$END$则跳到代码片段结尾。
win平台默认的快捷键主要是三个ctrl+j(insert live template)、ctrl+alt+j(sround with live template)和ctrl+alt+t(sround with)。
快捷键是live template中经常需要用到的,所以需要记住。由于每个平台不一样,也有可能有人修改了快捷键,所以我用括号注明了快捷键对应的名字,如果你的idea该快捷键不生效可以直接按图中搜索名字。
ctrl+j:插入普通的live template
ctrl+alt+j:插入包裹的live template
ctrl+alt+t:插入包裹的代码片段,这个包含了ctrl+alt+j但是又包含一些系统自带的语句块,比如if,while和for等等。
**这里就需要重点介绍下包裹的代码片段**,其实就是指的你用光标选中的代码。使用这种代码片段需要我们用光标去选择然后输入快捷键ctrl+alt+t或者ctrl+alt+j选中需要的使用的缩略词。在自定义的代码片段中有个自带的$SELECTION$指的就是你用光标选中的代码,在插入代码片段时,就会将你选中的代码插入到$SELECTION$。让我们在实现一个带包裹代码片段的sloge,设置如下:
我自定义了几个非常常用的代码片段,分别是
"info":输出调试信息
// 代码片段 "$CLASS$.$METHOD$ ~~~~ linenum:$LINE$, param:{$PARAM$} info:$MY$"$END$ // 变量定义 $CLASS$:className() $METHOD$:methodName() $LINE$:lineNumber() $PARAM$:groovyScript("_1.collect { it + ' = [\">
"fen":分割线的注释
// 代码片段 /* ---------------- $E$ -------------- */$END$
"log":定义日志常量
// 代码片段 private static final Logger logger= LoggerFactory.getLogger($CLASS$.class); // 变量定义 $CLASS$:className()
"zhushi":带名字和日期的注释
// 代码片段 // comment --$USER$-- $D$ ------>$ANNOTATION$ // 变量定义 $USER$:"chenfangzhi" $D$ :date("YYYY-MM-DD hh:mm:ss")
"todo":todo注释
// 代码片段 // todoBy$USER$ ---- $D$ ------>$TODO$ // 变量定义 $USER$:"chenfangzhi" $D$ :date("YYYY-MM-DD hh:mm:ss")
说明:todo的作用我就不讲解了,这里的第4和第5项可能很像,有很多地方需要标注是谁操作的,现在的项目很多都是多人开发,如果都是使用默认的todo,就会很混乱,这时候我们就需要自己来定义属于自己的todo注释,这时候就需要带上名字。代码片段可以自己定义,可以同时带上todo和名字,这样在查看todo列表的时候就可以进行筛选。如下图:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。