以编程方式格式化和缩进从 Java 自动生成的源代码

Posted

技术标签:

【中文标题】以编程方式格式化和缩进从 Java 自动生成的源代码【英文标题】:Programmatically format and indent automatically generated source from Java 【发布时间】:2011-07-11 00:00:11 【问题描述】:

我编写了代码生成器,它使用 Antlr 从自定义 IDL 创建 Java 和 C++ 源代码。除了 Java 代码格式外,它工作得很好。目前我使用 Gnu Indent,但它输出的格式很难阅读,并且让调试很痛苦。我很想使用与 NetBeans 相同的代码格式化程序(例如按 Alt+Shift+F)来格式化生成的文件。我不想要的是浏览每个文件并手动按 Alt+Shift+F。我尝试使用 NetBeans API,但要么我没有在正确的地方寻找,要么 Google 是个白痴,我找不到合适的工作示例来对未在编辑器中加载的文件执行此操作...

至少有人可以引导我朝着正确的方向前进吗?

【问题讨论】:

在 Eclipse 中,您可以在选择项目(或文件夹/包)时执行“格式化代码”快捷方式,并且其中的每个 Java 源代码都将被格式化。也许这也适用于 Netbeans。 我想从我的代码生成器中执行此操作,它也可以从命令行运行,它应该会输出格式良好的 Java。 ***.com/questions/996646/… 的可能重复项 对在我的源代码生成后调用的独立应用程序不感兴趣。我已经在使用 GNU Indent 来做这件事了,感觉很慢!在快速机器上大约需要 5 分钟才能遍历所有生成的源代码! 【参考方案1】:

Jalopy

【讨论】:

你有没有试过在你的代码中使用 Jalopy?开源版本已经6年没有活跃了……我不愿意为商业版本付费,NetBeans API已经可以做到,而且是免费的。【参考方案2】:

您可以使用以下插件http://plugins.netbeans.org/plugin/18365/format-files

【讨论】:

或者使用NB 7.2,当它出来时。 “Source/Format 操作应该适用于包、文件夹、源组和项目”详细信息netbeans.org/bugzilla/show_bug.cgi?id=67397#c3

以上是关于以编程方式格式化和缩进从 Java 自动生成的源代码的主要内容,如果未能解决你的问题,请参考以下文章

获取附加到 Eclipse 的源 jar 文件以获取 Maven 管理的依赖项

关于 JAVA 源代码生成 API 的编码问题

是否可以仅在内存中以编程方式编译 java 源代码?

如何将UltraEdit的输入格式设置成JAVA语言的格式 例如关键词的高亮、自动缩进等

创建 UINavigationBarButton 中的缩进外观 - 以编程方式

自动从 html 中删除缩进、不需要的空格(缩小)