[ZT]C Java PHP Perl Python 的程序代码美化工具

php 美化在线版本http://www.bierkandt.org/beautify/beautify_php.php aa
下载 http://www.phpe.net/?n=ClassDownload&a=109   

C Java PHP Perl Python 的程序代码美化工具
(Pretty Print Program/Source Code Beautifier)使用

作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com

写于:2002/04 最后更新: <script language="JavaScript" type="text/javascript">document.write(document.lastModified)</script>10/26/2004 10:25:01

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.chedong.com/tech/indent_tools.html

关键词:pretty print indent perltidy pydent astyle htmltidy source code beautifier

内容摘要:
写本文的目的无非是2个:

  1. 如果前任程序员缩进非常不整齐的代码非常影响现任维护者的代码阅读速度。
  2. 新的项目代码(无论在什么编辑环境下编写)都能够非常好的适应公司的缩进规范,可以便于开发者之间的交流。

如果马上能从以下列表中找到你需要的就完全不必耐心的看到最后:相应工具包中的文档会有更详细的使用说明

c, c++ c# ==>    
 
工具名称适用语言简介安装/使用
c
indent就是代码美化工具的代名词indent是gcc附带的一个标准工具,
indent [options] [input-files]
indent [options] [single-input-file] [-o output-file]
perl
perltidy本身也是用perl写的下载后: perl Makefile.PL;make;make install
perltidy [ options ] file1 file2 file3 ...
(output goes to file1.tdy, file2.tdy, file3.tdy, ...)
perltidy [ options ] file1 -o outfile
perltidy [ options ] file1 -st >outfile
perltidy [ options ] <infile >outfile
c c++ java (php)
一个速度很快的C/C++/Java源代码美化工具。
astyle比indent好在有很多成套的的风格定义:ansi java linux...不必记住复杂的缩进具体选项。
下载源代码解包后,make, 生成astyle可执行文件
astyle [options] < Original > Beautified
astyle [options] Foo.cpp Bar.cpp [...]
astyle --style=ansi *.cpp
我尝试过用它来格式化PHP程序也很有效(当然是不合HTML代码混在一起的纯PHP代码)。
java
功能强大的JAVA代码格式化工具,除了标准界面外,命令行工具,还可作为ANT JBUILDER ECLIPSE JDEVELOPER等工具的插件使用,并提供API
python
下载源代码解包后:
Run "python setup.py build"
Run "python setup.py install"
html/xml
HTML代码的纠错工具,可以帮助你的HTML代码更好的符合W3C规范,现在被称作tidy,因为它不仅只使用于HTML,也现在也适用于XHTML XML的格式化。

但JSP不适合ASP PHP JSP等嵌入式脚本的代码美化

 

下载源代码后 make 生成tidy可执行文件:
tidy file1 file2 ...
注意:对于含有中文的页面要使用 -raw选项
tidy.exe -raw -imuq -wrap 132 -f %f.err %f
选项说明:
-raw: 不修改中文字符 (output values above 127 without conversion to entities)
-i indend 缺省HTML按2个空格缩进
-m 覆盖原文件
-u 强制所有HTML标记大写(这个可以不加)
-wrap 页面代码宽度大于132行强制换行
-f %f.err 将错误输出到“相应文件名.err”文件中
HTMLTIDY支持XML的格式美化:
tidy -xml -imq web.xml
tidy -xml -imq build.xml

其他工具介绍:

php代码美化工具
phpCB: php code beautifier 有命令行版本,也有图形界面的代码查看器。

我常用的Jalopy配置文件

使用:
Jalopy: 在代码编辑界面点右键的选单中除了原有的Format选项外,还多出了Format with Jalopy选项,而Eclipse自身带有的Source=>Orgenize Imports也是能够达到Imports Srubber同样的功效。
CheckStyle是一个非常复杂的代码风格检查过程:包括缩进,命名规范等,因此缺省是Disable的,启动针对一个项目的CheckStyle需要在点:项目的properties==>CheckStyle==>Enable。

而且以上这些工具都包含了针对ant的扩展,可以方便的加入到ant脚本中进行自动的代码整理/统计。


参考资料:

GNU Coding Standards
比如
for (i = 1; i<a; i++)
需要改成
for (i = 1; i < a; i++)
^ ^ "<"前后需要加空格,否则HTMLTIDY会把<a当成HTML标记

  • HTML属性中包含JSP标记:
    对于一般的JSP属性输出TIDY是可以认出来的

    比如: <input type=text size="9" name="alias" maxlength=20 value=<%=infoForm.getAlias()%> >
    但像这样的代码:
    <img border=0 src=/image/upload/content/<%=infoForm.getId()%><%=infoForm.getPhoto()%> width=120>
    由于属性的开头不是<%,因此会出现IMG没有结尾错误
    • HTMLTIDY缺省是将代码完全补齐的,而实际上很多HTML代码是在被包含文件中。而且HTMLTIDY对中文编码得识别还有一定问题(目前只支持BIG5)
    • 原因:

      为什么嵌入式代码很难维护?毕竟针对不规范的HTML语法检查器要比一个语言的解析器要复杂的多。举例来说,比如针对这样的代码:
      <?php echo "<table>";?>
      </table>

      这样形式的代码,美化工具必须同时懂得HTML语法和PHP语法才行,所以大部分格式工具都是针对一种语言,或者针对嵌入脚本的程序部分的格式化,或者只对针对纯HTML格式化。只有少数Virsual Age, Forte等大型开发工具里包含了JSP的代码美化,另外就是SLICKEDIT这种大型商业文本编辑器等。

      解决:对于包含程序的JSP ASP等文件的HTML部分的格式美化最好还是使用专门的HTML编辑工具Dreamweaver(≥4)和Frontpage(≥2000)中的格式化工具来实现。比如:对于FRONTPAGE从菜单的工具==>网页选项==>HTML源代码选单里选择“使用下面的规则重新格式化源代码”。

      总之,使用HTML和程序在一起的嵌入式脚本语言本身就是一件非常不好的开发习惯。从长远来开用XML/XSLT等技术实现数据/表现/逻辑的分离是一种更适合大规模开发的模式。

      为了目前大量的ASP PHP JSP应用我还是通过Google上找到一些工具,相信HOMESITE等。其实前面提到的VBSBeautifier其实也是调用Perl 5.8在Windows上的

      一个用于ASP的代码美化工具:VbsBeaut

    <<返回
  • <script language="Javascript" src="referer.js" tppabs="http://www.chedong.com/referer.js" type="text/javascript"></script> http://gfgdfbc.vicp.net/zw/ASP-NET-c822/PHP-a2492223_1/  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值