本专题主要介绍如何打造一个统一的基于eclipse的java开发环境,之所以说统一,主要是保证各个项目组成员都可以使用,并且可以最大程度上保证一致性。
其中第一篇介绍了IDE的基本搭建,包括插件的安装方式等;
第二篇介绍了基本的配置包括插件的配置以及如何保证配置信息共享给所有成员;
本次为第三篇也是近期的最后一篇,主要介绍Code Template的配置和使用。
不知道什么是Code Template?没有关系,举一个简单的例子就很容易了解了。
新建一个java文件,然后在类的内部,任何函数的外面,输入字符串"main",然后按Content Assist的快捷键,就会弹出一个如下图所示的框,直接点击第一个选项,eclipse就自动帮你生成了如下代码,不但很正规,而且格式都是正确的。
这次应该可以理解什么是Code Template了吧。其实很简单,就是你经常会写的一些重复代码,无论是谁都不愿意Copy来Copy去的,那么通过Code Template的方式,让eclipse帮你保管这些重复性的代码,使用的时候只需要敲几下键盘就可以了,根本就不需要Copy来Copy去的。
使用Code Template,我总结有以下两个好处。
一,提高了编码的效率。无论是手敲还是Copy,效率都不会比直接敲几下键盘来的快。
二,降低了出bug的概率。编过码的人都应该有经验,偶尔敲错代码的几率还是有的。但是直接使用工具生成代码就不会出错了,除非你定制的Template本身有错误。
到什么地方定制Template呢?
简单,Windows -> Preferences,然后在Filter处输入字符串“template”,你马上就可以看到有哪些地方可以设置Code Template。
其实,所有的Code Template都是由eclipse中安装的编辑器支持的,看上图就可以知道。
从上图中可以看的出来,我的eclipse上同时有JSEclipse和Teniga支持javascript文件的编辑,并且都有Template的设置,那么如果你是常用JSEclipse的话,就要设置JSEclipse下的Template,否则就应该设置Teniga下面的。
具体怎么定制呢?
下面这个窗口就是新建一个新的template的通用窗口,基本上所有的template定制窗口都是这个样子,只有Context的选项和"Insert Variable..."处可以插入的变量不一样以外,其余部分都是一样的。
名字是必须的,也就是类似于上面讲到的“main"。Description可以为空,只是在使用的时候给你一个提示。Pattern必须有内容。然后点击OK保存,一个新的Code Template就出来了。可以直接在编辑文件的时候使用。
举个例子,我们最开始学习java程序的时候,如果不使用调试器的话,一般就是用“System.out.println();”来调试,而每次都手动输入这么多文字的话,也挺烦的。eclipse的JDT默认提供了一个template,“sysout”。也就是说,你只要选中某一个词,前后有空格或者其他标点隔开的,然后按Alt+/,就可以弹出一个选择窗口,你可以选择sysout或者syserr来显示你要看的内容。
但是这个template功能太弱了,所以我就写了一个加强版的”syslog“。
Pattern为:System.out.println("${enclosing_type}.${enclosing_method}() " + "${cursor}");
这样的话,每次输出的时候就会直接包含类名和方法名,然后再加上我想要显示的内容。在分析log的时候,就可以很清楚的看到是哪一个类的哪一个方法出了问题。
这里只是提几个简单的应用,还有很多的用处的,可以到到搜索引擎去搜索“Eclipse Template用法探讨”,“Eclipse Template与模式”,这两篇是我在网络上发现的关于这方面知识的两篇最好的中文方面的文章。
对于模板中提供的两个variable,word_selection和line_selection的使用,我当时产生了一点疑惑,后来搞清楚了,也顺便说一下。如果你的Pattern里面有word_selection,那么在使用的时候,就需要首先把一个词汇(前后有空格或者其他标点符号隔开的)选中,然后按快捷键。而line_selection就是要首先把某一行选中,然后按快捷键。
当然,这里只是用java举了个小例子,其实除了java的Code Template之外,你还可以定制HTML,JSP,XML,CSS等各种类型的文件,只要你所有的文本编辑器插件提供这一项设置,就可以使用。
另外需要了解的是,如果觉得插件本身提供的规则不够,你还可以自己扩展。具体的方法可以到网上搜索一下,我只记得看到一篇文章,介绍作者因为date类型的显示格式不符合他的要求,就把date类型重新进行了变更。
参考:
eclipse代码模板入门 IBM developworks 提供的教程
----------------------------------------------------------------------------------------------------------------------------------
本系列当前的三篇文档:
----------------------------------------------------------------------------------------------------------------------------------