免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9606 | 回复: 0
打印 上一主题 下一主题

代码格式化插件jalopy Jalopy在Eclipse下的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-14 08:43 |只看该作者 |倒序浏览
本帖最后由 surpass_li 于 2010-07-14 08:45 编辑

Jalopy 是为Java编程语言提供的一个源代码格式化/美化/漂亮的开源项目,它旨在提供一个功能完整的,而且是免费的可以取代著名的Jindent的产品。并为 Ant, Eclipse, IDEA, JBuilder, JDeveloper, jEdit, NetBeans提供了插件



Table of Contents

2. 使用
3. 配置
4. 配置方法

    4.1. 大括号
    4.2. 空格
    4.3. 缩进
    4.4. 每行的折叠
    4.5. 空白行
    4.6. 注释
    4.7. import
    4.8. 环境变量
    4.9. javadoc
    4.10. 文件头
    4.11. 文件尾
    4.12. 对成员排序
    4.13. 杂项

5. 代码检查功能
6. 显示消息的级别
参考书目

Jalopy是一款代码美化工具。它可以把胡乱无章的代码重新排版,变的好看整洁。使用简单。虽然目前停止了更新,推出了商业化的版本, 但Jalopy仍然是免费的。

Jalopy包含多种插件, Ant 的,Eclipse的,JBuilder的等等。本文介绍的只是Eclipse下的插件。您可以在 Jalopy主页找到所有相关的资源。
1. 下载和安装Eclipse plugin v 0.1-1.5rc1

截止到2008-03-06,可以在这里下载:

安装很简单,可以参考这篇文章: Eclipse基础--使用links方式安装Eclipse插件。

运行Eclipse之后,打开任意一个java文件,右键菜单中如果出现"Format with Jalopy"选项,说明安装成功。 如Figure 1, “安装成功后编辑器中的右键菜单”所示。
安装成功后编辑器中的右键菜单

Figure 1. 安装成功后编辑器中的右键菜单
2. 使用3. 配置Figure 2, “Jalopy的属性配置按钮”所示。

可以格式化一个文件,一个文件夹,或者整个项目。

    *

      格式化一个文件:在任何打开的java文件中点右键,在弹出的菜单中,选择"Format with Jalopy"。
    *

      格式化一个文件夹:在任何java文件夹(package)点右键,在弹出的菜单中,选择"Format Folder"或"Format Package"。
    *

      格式化一个项目:在任何java项目点右键,在弹出的菜单中,选择"Format Project"。

在Eclipse中进行Jalopy配置也很容易,先用左键点"package Explorer"或"Navigator",然后点最上面那一行的"Window"->"Jalopy Preferences..." 如
Jalopy的属性配置按钮

Figure 2. Jalopy的属性配置按钮
Figure 3, “"rojects"的内容”所示。图中,自定义了一个新的项目:"my_own",并将它激活。
[Caution]         注意

一定要先点一下"Navigator"或者"ackage Explorer",否则在java编辑器中,"Window"菜单中不会出现"Jalopy Preferences..."

在Jalopy中,每个配置文件都是以一个"project"来命名的。打开Jalopy控制面板后,在左边选项列表中选择"rojects",就可以看到当前 拥有的Project列表。可以使用"Add..." , "Remove" 来增加或删除项目。想使用哪个项目(也就是使用哪个配置),就选中它,然后点"Activate"按钮。如
&quotrojects"的内容

Figure 3. "rojects"的内容
Figure 4, “"General"的内容”所示。

然后进入到"General"窗口,修改您要为该项目起的名字和描述。这里的名字跟Project中的名字不同,它是可以变的。如
"General"的内容

Figure 4. "General"的内容
Figure 4, “"General"的内容”中,有"import"和"export"两个按钮,前者是将已经存在的配置导入进来,后者是将现在的这个配置导出成配置文件。 对于配置文件的切换与保存,都很方便。

完成上面两步,就可以进行自己的配置了。 :)



在导出成功后没有提示。也许是个小瑕疵。
4. 配置方法4.1. 大括号

4.2. 空格
4.3. 缩进
4.4. 每行的折叠
4.5. 空白行
4.6. 注释
4.7. import
4.8. 环境变量
4.9. javadoc
4.10. 文件头
4.11. 文件尾
4.12. 对成员排序
4.13. 杂项

这些配置都在Jalopy配置窗口中左侧的"rinter"下面。
4.1. 大括号Figure 5, “大括号的杂项的配置图解”所示。

也就是"{"和"}"。在"Braces"的General中,选择"Sun Java style"就可以了。

对于"Misc"的说明, 如
大括号的杂项的配置图解

Figure 5. 大括号的杂项的配置图解
4.2. 空格Figure 6, “空格的配置图解”所示。

本节的具体配置如 如
空格的配置图解

Figure 6. 空格的配置图解
4.3. 缩进Figure 7, “缩进的主要配置图解”所示。

分成主要配置和杂项两种。

主要配置 如
缩进的主要配置图解

Figure 7. 缩进的主要配置图解
Figure 8, “缩进的杂项配置图解”所示。

杂项配置 如
缩进的杂项配置图解

Figure 8. 缩进的杂项配置图解
4.4. 每行的折叠Figure 9, “每行的折叠配置图解”所示。

这里使用默认的就可以了。由于内容过于罗嗦,有需要的朋友去看英文文档吧。 如
每行的折叠配置图解

Figure 9. 每行的折叠配置图解
4.5. 空白行Figure 10, “空白行的主要配置图解”所示。

主要配置使用默认的就可以了。由于内容过于罗嗦,有需要的朋友去看英文文档吧。基本每个不同的元素都空一行。 如
空白行的主要配置图解

Figure 10. 空白行的主要配置图解
Figure 11, “空白行的杂项配置图解”所示。

杂项配置这里使用默认的就可以了。 如
空白行的杂项配置图解

Figure 11. 空白行的杂项配置图解
Figure 12, “空白行的注释相关配置图解”所示。

对于注释相关的配置这里使用默认的就可以了。 如
空白行的注释相关配置图解

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(){
......
}
                       

如果把

如同我们在很多开源项目中看到的这样。但是在国内用起来是否合适还不得而知。默认是不格式化。
4.6. 注释Figure 13, “注释的配置图解”所示。

可以删掉(增加注释在。。。)或格式化特定的注释。建议不要使用。如
注释的配置图解

Figure 13. 注释的配置图解
4.7. importFigure 14, “imports的配置图解”所示。

可以对import进行排序,组合成*号的风格,或者拆分成独立的多个import风格。 其中排序时的深度可以指定。如
imports的配置图解

Figure 14. imports的配置图解
4.8. 环境变量Figure 15, “定义环境变量”所示。

排序深度指的是,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"的时候将它赋值。,如
定义环境变量

Figure 15. 定义环境变量
Table 1, “Jalopy的内置变量列表”所示。

该作用用处不太大。建议使用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
4.9. javadocFigure 16, “javadoc主要配置图解”所示。只定义了对所有public型的类,方法等生成javadoc, 并且将javadoc和注释中的特殊符号转换成HTML脱离符。

包括概要配置,模板配置和自定义标签配置。

概要配置,如
javadoc主要配置图解

Figure 16. javadoc主要配置图解
Figure 17, “javadoc模板配置图解”所示。

模板配置可以对class, interface, method等内容进行设置。其中$paramType$ 和 $exceptionType$ 是Jalopy内置变量,不要改动。改"DOCUMENT ME!"那里就可以。,如
javadoc模板配置图解

Figure 17. javadoc模板配置图解
4.10. 文件头Figure 18, “header主要配置图解”所示。

自定义标签配置基本没必要用。

可以对文件头(header)进行格式化,并且根据需要决定是否增加文件头。,如
header主要配置图解

Figure 18. header主要配置图解
4.11. 文件尾Section 4.10, “文件头”完全一样。

在"Text"页签中,可以加入Header的具体内容,也可以使用各种变量。

用法跟

没见过使用文件尾的项目。-_-! 貌似没意义。。。
4.12. 对成员排序Figure 19, “按声明排序的配置图解”所示。

可以对类的成员进行排序,根据声明或关键字。两者都很相似,下面以按声明来排序为例子,,如
按声明排序的配置图解

Figure 19. 按声明排序的配置图解
4.13. 杂项Figure 20, “杂项的配置图解”所示。

在"Modifier"页签中,与"Declarations"的使用方法一样。

是否需要排序见人见智,请根据需要来使用。

都是比较杂的选项,,如
杂项的配置图解

Figure 20. 杂项的配置图解
5. 代码检查功能Figure 21, “不建议使用的功能”所示。

"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条建议。 如
不建议使用的功能

Figure 21. 不建议使用的功能
6. 显示消息的级别参考书目
[Caution]         不建议使用

原因有:

   1.

      它只能检查代码,而不能修改。

      没有实现重构的功能,也没有checkstyle的检查那么好。 它的检查结果只是在"roblems"窗口中以"Warning"的形式显示出来。容易被忽视。
   2.

      貌似不起作用。当我启用代码检查功能时(在Code Inspector窗口中的"Enable Code Inspector"前面打勾),却无法检查出对应的错误。包括:命名不合规则。另外19个Tips给出的错误与官方文档的不符。(如16跟17好象弄混了?而且官方的资料中这里应该有20个提示的选项……)
   3.

      有了eclipse的自动重构功能和checkstyle的检查功能,没必要用它。

      重构时修改函数名,变量名,需要一步一步的来,用代码格式化工具来实现重构,不太合适。虽然想法很好。



在配置面板的"Messages"中可以进行配置。

使用默认的就好了。不要修改它。建议都是WARN。

完整 的 说明文档在附件
jalopy_html.rar (1.14 MB, 下载次数: 293)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP