在《IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题》中简单的介绍了为什么要使用Live Template,以及Live Template可以给我们带来怎样的好处,这篇博客将会介绍如何使用Live Template中的一些进阶功能。
学习Live Template:iter
回到第一篇博客的例子,java中的foreach语句:
这里的items这几个字是由IntelliJ自动帮你填入的,而不是手动敲进去的。咦?IntelliJ这么聪明。是的,而且,它让你先敲的是items,而不是item,这就越发显得聪明。
在制造一个自己的更智能的Live Template之前,我们非常有必要先学习一下foreach这个template是怎么实现的。
打开foreach对应的缩写iter,如下图所示:
第一个问题,如何调整编辑顺序。
打开IntelliJ中iter这个Live Template的定义,我们这里看到iter中有三个模板变量(template variables):ELEMENT_TYPE, VAR和ITERABLE_TYPE。那IntelliJ是怎么知道先让我们敲ITERABLE_TYPE的呢?
点击右边的“Edit Variables”按钮:
这个时候,我们可以看到,出现在第一个的是ITERABLE_TYPE,第二个是ELEMENT_TYPE,最后是VAR,这里的顺序就决定了他们的编辑顺序。左下角的箭头就可以调整他们的顺序。
第二个问题,IntelliJ如何智能的知道“items”?
也许暴露的太早了,这些“智能的工作”都是在“Edit Template Variables”这个Dialog中。看到Expression这一列,这就是用来自动生成代码的指令,它可以调用IntelliJ提供的一些列Functions,如suggestVariableName()这个就是IntelliJ根据上下文分析以后,提示的输入。这也就是为什么我们为什么会智能的得到“items”这个东西。因为IntellIj中提供给Expression使用的方法很多。这里就不挨个介绍了,可以查看文档:http://www.jetbrains.com/idea/webhelp/edit-template-variables-dialog.html#functions
我们看到还有Default value和Skip if defined这两个column,就不再做介绍了,可以自己学习一下。