IntelliJ Live Template进阶使用

来源:互联网 发布:微信支付js接口文档 编辑:程序博客网 时间:2024/05/12 08:42

在《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,就不再做介绍了,可以自己学习一下。




0 0