多语言命令行源代码格式化程序

时间:2009-11-13 19:29:16

标签: code-formatting

是否有一个命令行Unix工具可以格式化/缩进/美化不同语言的源代码?我对Java,JavaScript,PHP和XML特别感兴趣,但理想情况下它会处理其他人。

(我不是在寻找能够生成语法高亮标记的东西;我已经知道有一些工具可以做到这一点。)

7 个答案:

答案 0 :(得分:5)

答案 1 :(得分:3)

如果您在Eclipse中将自动格式化选项设置为项目特定设置,则可以执行以下操作:

/opt/local/eclipse/eclipse -nosplash
-application org.eclipse.jdt.core.JavaCodeFormatter
-verbose
-config .settings/org.eclipse.jdt.core.prefs
src/ tests/ doc/examples/

这意味着,如果只是为了使用它的自动格式功能,无论您正常使用哪种编辑器,都可以实际安装和配置Eclipse。 :)

来源:http://blogs.operationaldynamics.com/andrew/software/java-gnome/eclipse-code-format-from-command-line

附加说明

在Mac OS X上:

/Applications/eclipse/java-oxygen/Eclipse.app/Contents/MacOS/eclipse  -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter -verbose -config ~/my-eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs MyClass.java

答案 2 :(得分:2)

我总是发现Vim的代码格式化程序是一个很好的选择。它知道许多语言,可以合理定制。

您可以将相关命令传递给vim,如下所示:

vim MyClass.java <<< gg=G:wq

说明:

  • gg=G格式化文件
  • :wq保存文件并返回命令提示符

答案 3 :(得分:1)

结帐indentenscript

答案 4 :(得分:0)

Vim通常具有自动语法突出显示功能,并且在安装时可在大多数基于Unix的系统上使用。对于Vim中的格式化和缩进,我在启动时会自动使用:set autoindent:set tabstop=4。当您开始换行时,autoindent会保留您当前缩进的位置,而tabstop会设置当您按Tab键时缩进代码的数量(仅用于缩进,一般用于标签shiftwidth })。要在启动Vim时配置这些选项,请将它们放在~/.vimrc文件中。

答案 5 :(得分:0)

对于XML和HTML,我使用了htb

如果您是Eclipse用户,那么JTidy是另一种选择。

对于Java,有Jalopy

答案 6 :(得分:0)

因此,我提请您注意Style Revisor,带GUI和命令行界面的源代码格式化程序。它将支持不同的语言,包括JavaScript和PHP。如果您对命令行使用感兴趣 - 您可以将自己的格式样式定义为插件。当然,您也可以使用许多预定义的样式。例如:

./Style\ Revisor --lang=PHP --style=GNU --path=~/to-your-project-root-dir

目前,Style Revisor支持两种语言:C和Objective-C。欢迎:http://style-revisor.com/

此致。