【发布时间】:2014-04-16 13:31:06
【问题描述】:
我已将 Eclipse 格式化程序配置为允许我尽可能多地做一个衬里。但是有时我想在同一行上使用相关命令,例如
temp.add; temp.flush();⇦问题
我还配置了格式化程序以允许我的 if 语句看起来像这样
if(true) return;
但如果我有多个命令,它会将其推送到下一行,但我希望它的格式如下
if(true) {n++; return;}⇦问题
它的格式是这样的
if(true) {
n++;
return;
}
是否有保留这些多行命令但仍格式化间距和所有内容的设置?我故意尽可能多地使用三元运算符,因为我讨厌在多行上执行一个逻辑步骤。如果没有办法配置这个或插件来解决这个问题,我想我将关闭格式化程序。我知道我可以只使用 ctrl+shift+f 但我喜欢每次运行程序时格式化它。
【问题讨论】:
-
我认为格式化程序无法做到这一点。它如何知道一组语句是“相关的”?例如,
n++; return;在同一行背后的逻辑是什么? -
@Nivas 我认为 temp.flush() 是一个更好的例子,但很多时候我可以更容易地从左到右阅读代码,当它开始垂直时,对我来说更难读书。当然这只是在某些情况下,但格式化程序妨碍我就足够了。
-
@Nivas 抱歉,我误解了您的评论。逻辑是如果您有多个语句;在一条线上不要将它们向下推。格式化程序已经为某些 if 语句执行此逻辑。例如,我配置它,如果我这样做 if(true) break;它将保持在同一行,因为它知道将简单的 if 语句保持在同一行,但如果我手动放置 break;在单独的行上它不会强制它在同一行上,它对我来说是可选的。多行命令也应该是可选的。基本上格式化程序在每个 ; 之后添加一个新行。只需禁用它。
-
我认为没有直接的方法可以做到这一点。如果我找到一个,我会把它作为答案发布。
标签: eclipse