Table of Contents
Jalopy是一款代码美化工具。它可以把胡乱无章的代码重新排版,变的好看整洁。使用简单。虽然目前停止了更新,推出了商业化的版本, 但Jalopy仍然是免费的。
Jalopy包含多种插件, Ant 的,Eclipse的,JBuilder的等等。本文介绍的只是Eclipse下的插件。您可以在 Jalopy主页找到所有相关的资源。
截止到2008-03-06,可以在这里下载:
安装很简单,可以参考这篇文章: Eclipse基础--使用links方式安装Eclipse插件。
运行Eclipse之后,打开任意一个java文件,右键菜单中如果出现"Format with Jalopy"选项,说明安装成功。 如Figure 1, “安装成功后编辑器中的右键菜单”所示。
可以格式化一个文件,一个文件夹,或者整个项目。
-
格式化一个文件:在任何打开的java文件中点右键,在弹出的菜单中,选择"Format with Jalopy"。
-
格式化一个文件夹:在任何java文件夹(package)点右键,在弹出的菜单中,选择"Format Folder"或"Format Package"。
-
格式化一个项目:在任何java项目点右键,在弹出的菜单中,选择"Format Project"。
在Eclipse中进行Jalopy配置也很容易,先用左键点"package Explorer"或"Navigator",然后点最上面那一行的"Window"->"Jalopy Preferences..." 如
注意 | |
---|---|
一定要先点一下"Navigator"或者"Package Explorer",否则在java编辑器中,"Window"菜单中不会出现"Jalopy Preferences..." |
在Jalopy中,每个配置文件都是以一个"project"来命名的。打开Jalopy控制面板后,在左边选项列表中选择"Projects",就可以看到当前 拥有的Project列表。可以使用"Add..." , "Remove" 来增加或删除项目。 想使用哪个项目(也就是使用哪个配置),就选中它,然后点"Activate"按钮。如
然后进入到"General"窗口,修改您要为该项目起的名字和描述。这里的名字跟Project中的名字不同,它是可以变的。如
Figure 4. "General"的内容
Figure 4, “"General"的内容”中,有"import"和"export"两个按钮,前者是将已经存在的配置导入进来,后者是将现在的这个配置导出成配置文件。 对于配置文件的切换与保存,都很方便。完成上面两步,就可以进行自己的配置了。 :)
在
在导出成功后没有提示。也许是个小瑕疵。
这些配置都在Jalopy配置窗口中左侧的"Printer"下面。
也就是"{"和"}"。在"Braces"的General中,选择"Sun Java style"就可以了。
对于"Misc"的说明, 如
分成主要配置和杂项两种。
主要配置 如
杂项配置 如
主要配置使用默认的就可以了。由于内容过于罗嗦,有需要的朋友去看英文文档吧。基本每个不同的元素都空一行。 如
杂项配置这里使用默认的就可以了。 如
对于注释相关的配置这里使用默认的就可以了。 如
Figure 12. 空白行的注释相关配置图解
Figure 12, “空白行的注释相关配置图解”的窗口高度拉大一些,还能看到窗口下面的 "Fill Character",可以按照你的喜好来选择,是使用"-","=", "*", "/" 等不同的填充符号。如果开启了"Add separator comments",那么你的代码会被格式化成这样:
//~ Static fields ------------------------------------------------------------ public static final String HELLO ="hello"; //~ Instance fields ---------------------------------------------------------- private int someVariable; //~ Methods ------------------------------------------------------------------ public String getMethod(){ ...... }
如果把
如同我们在很多开源项目中看到的这样。但是在国内用起来是否合适还不得而知。默认是不格式化。
可以删掉(增加注释在。。。)或格式化特定的注释。建议不要使用。如
可以对import进行排序,组合成*号的风格,或者拆分成独立的多个import风格。 其中排序时的深度可以指定。如
排序深度指的是,package从左到右第几个"."前的名字。如深度是1的排序:
import java.awt.Color; import java.awt.Component; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List;
深度是2的排序:
import java.awt.Color; import java.awt.Component; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List;
深度是3的排序:
import java.awt.Color; import java.awt.Component; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List;
可以增加Jalopy能识别的环境变量,然后在"format"的时候将它赋值。,如
该作用用处不太大。建议使用Eclipse,我一般在它的代码模板定义变量。
"System"标签中的变量是系统变量,改不了。
另外,Jalopy也有内置变量,它们是在程序运行时自动获得, 如
Table 1. Jalopy的内置变量列表
名称 | 说明 | 例子 |
---|---|---|
file | 文件的完整文件名 | /usr/projects/test/MyFile.java |
fileName | 文件名 | MyFile.java |
fileFormat | 文件的内容格式,跟操作系统相关 | UNIX 或DOS |
package | 文件的package名 | com.foo.package |
convention | 当前使用的代码风格,在General中定义的。 | my_own |
tabSize | tab键的长度 | 4 |
objectType | 类或接口的名称,只能在javadoc中使用。 | MyClass |
paramType | 参数的名称,只能在javadoc中使用。 | somePara |
exceptionType | 异常的名称,只能在javadoc中使用。 | NullPointerException |
包括概要配置,模板配置和自定义标签配置。
概要配置,如
模板配置可以对class, interface, method等内容进行设置。其中$paramType$ 和 $exceptionType$ 是Jalopy内置变量,不要改动。改"DOCUMENT ME!"那里就可以。,如
自定义标签配置基本没必要用。
可以对文件头(header)进行格式化,并且根据需要决定是否增加文件头。,如
在"Text"页签中,可以加入Header的具体内容,也可以使用各种变量。
用法跟
没见过使用文件尾的项目。-_-! 貌似没意义。。。
可以对类的成员进行排序,根据声明或关键字。两者都很相似,下面以按声明来排序为例子,,如
在"Modifier"页签中,与"Declarations"的使用方法一样。
是否需要排序见人见智,请根据需要来使用。
都是比较杂的选项,,如
"Insert expression parenthesises" : 为稍微复杂的表达式增加圆括号。看情况用吧。因为有的公司约定不要使用必要的大括号,会被checkstyle检查出来。 建议程序员自己控制。
"Insert serial verstion UID" : 继承了java.io.Serializable的类,都需要声明个uid, 可以这样自动生成。我一般使用Eclipse来生成。
"Insert logging conditional" : 为log的输出增加条件。这一点很有用。专业的log前面都需要加个条件, 如:if(logger.isDebugEnabled()){ ... } 这样可以提高效率,尤其是当log中输出的对象.toString()方法比较耗资源的时候。
在控制面板的"Code Inspector"中可以进行配置。其中在Tip 一栏中有19个提示,分别对应官方文档中引用《Effective Java》的19条建议。 如
不建议使用 | |
---|---|
原因有:
|
在配置面板的"Messages"中可以进行配置。
使用默认的就好了。不要修改它。建议都是WARN。
[1] Jalopy User Manual. http://jalopy.sourceforge.net.