eclipse关闭java程序_如何关闭Java代码某些部分的Eclipse代码格式化程序?

我有一些Java代码,其中的SQL语句编写为Java字符串(请不要使用OR / M烈火,嵌入式SQL就是它-不是我的决定)。

为了简化维护,我将SQL语句在几行代码上从语义上分为了多个串联的字符串。 因此,而不是像这样:

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

我有类似的东西:

String query =

"SELECT FOO, BAR, BAZ" +

" FROM ABC " +

" WHERE BAR > 4 ";

这种样式使SQL更易于阅读和维护(IMHO),尤其是对于较大的查询。 例如,我可以将编辑器置于“覆盖”模式并相当容易地就地修改文本。

请注意,此问题超出了SQL的特定示例的范围。 用任何垂直格式编写的任何代码,特别是表格结构,都容易被漂亮的打印机破坏。

现在,一些项目成员使用Eclipse编辑器,并且在格式化整个源文件时常常会破坏语义格式。

有没有一种方法可以指示Eclipse在格式化方面忽略某些源代码行?

我正在寻找类似特殊注释的东西,以切换Eclipse格式化程序。 理想情况下,这样的注释可以配置为我们选择的任何格式,并且其他格式化程序也可以编程为尊重它:

// STOP-ECLIPSE-FORMATTING

String query =

"SELECT FOO, BAR, BAZ" +

" FROM ABC " +

" WHERE BAR > 4 ";

// START-ECLIPSE-FORMATTING

显然,一个“解决方案”是让我们的团队成员标准化一些外部格式化程序,例如Jalopy或JIndent ,但这不是这个问题的重点(也是我对这个项目的决定):我正在寻找一种方法避免临时使用Eclipse格式化程序。

理想情况下,一种解决方案将允许我插入Eclipse格式化程序的说明, 而无需使用Eclipse的团队成员进行任何IDE重新配置 (除了可能选择与格式化程序无关的命令注释: STOP-ECLIPSE-FORMATTING → STOP-FORMATTING )。

#1楼

@xpmatteo可以禁用部分代码,但是除此之外,默认的eclipse设置应该设置为仅格式化已编辑的代码行,而不是整个文件。

Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines

因为您的同事正在重新格式化他们实际上没有更改的代码,所以这首先可以防止它发生。 这是一个很好的做法,可以防止使源代码控件上的差异变得无用的麻烦(当由于格式设置的微小差异而重新格式化整个文件时)。

如果关闭了开/关标签选项,这也将阻止重新格式化。

#2楼

这个hack的作品:

String x = "s" + //Formatter Hack

"a" + //

"c" + //

"d";

我建议不要使用格式化程序。 错误的代码应该看起来不好而不是人为地好。 好的代码需要时间。 您不能欺骗质量。 格式化是源代码质量的一部分。

#3楼

格式化程序上的Eclipse 3.5 M4的AFAIK具有一个选项“从不连接线”,它保留用户换行符。 也许这就是您想要的。

否则会有这个丑陋的骇客

String query = //

"SELECT FOO, BAR, BAZ" + //

" FROM ABC" + //

" WHERE BAR > 4";

#4楼

如果将加号放在行首,则格式会有所不同:

String query =

"SELECT FOO, BAR, BAZ"

+ " FROM ABC"

+ " WHERE BAR > 4";

#5楼

您可以使用另一种解决方案来禁止特定块注释的格式。 在块注释的开头使用/*- (注意连字符),如果格式化文件的其余部分,则格式不会受到影响。

/*-

* Here is a block comment with some very special

* formatting that I want indent(1) to ignore.

*

* one

* two

* three

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值