[英]JSF Code formatter or Eclipse XML Editor, each tag for new line?
[英]Eclipse formatter alternates format each time (and won't split a line)
Eclipse會以一種方式來格式化代碼,然后以另一種方式來格式化代碼,每次使用時都將特定的代碼位向后和向前交替翻轉。
我在這里做錯了什么?
這是第一種狀態:
public static void main(final String[] args) {
String dir = System.getenv(EtlConstants.ENVVAR_PROPERTIES_DIR);
if (dir != null
&& ("\\".equals(dir.charAt(dir.length() - 2)) || "/".equals(dir.charAt(dir.length() - 2)))) {
dir = dir.substring(0, dir.length() - 1);
}
}
這與此交替:
public static void main(final String[] args) {
String dir = System.getenv(EtlConstants.ENVVAR_PROPERTIES_DIR);
if (dir != null
&& ("\\".equals(dir.charAt(dir.length() - 2)) || "/".equals(dir.charAt(dir.length() - 2)))) {
dir = dir.substring(0, dir.length() - 1);
}
}
區別在於if語句第二行中的制表符。
我正在嘗試讓格式化程序在||
處換行 以及,但我不知道為什么它會在這兩個狀態之間切換。 顯然這是兩個獨立規則的相互作用,但是哪個呢?
編輯:這是與Eclipse Luna 4.4.0。
編輯2:我使用CTRL + s,因為我已設置Eclipse做保存時的格式。 顯然是導致格式更改的其他“保存”操作之一:
編輯3:我只是刪除了最后的保存操作,它不再導致該行來回跳轉。
因此,感謝所有使用CTRL + SHIFT + f調用格式化程序的人-因為我意識到我一直在使用CTRL + s而打開了燈。
同意@tobias_k(對不起,我無法發表評論)。 在CRTL + Shift + F之后 。 看起來像:
public static void main(final String[] args) {
String dir = System.getenv(EtlConstants.ENVVAR_PROPERTIES_DIR);
if (dir != null
&& ("\\".equals(dir.charAt(dir.length() - 2)) || "/".equals(dir
.charAt(dir.length() - 2)))) {
dir = dir.substring(0, dir.length() - 1);
}
}
在eclipse
,格式選項位於Window-> Preferences-> Java-> Code Style-> Formatter下。 顯示您正在使用的配置文件,然后嘗試修改“ Line Wrapping
選項卡。 不確定,但我想您想修改Binary Expressions
。
更新:
不知道露娜。 我通常使用Eclipse 3.2(Callisto)或Eclipse 3.6(Helios)。 兩種版本均允許編輯格式配置文件。
備注:不允許修改內置配置文件。 基於某個內置配置文件創建一個新的,然后修改該配置文件。
我在Helios中展示:
單擊編輯,您將看到一種修改方法:
然而。 根本不容易。 我無法自動獲得您想要的東西。 好吧,正如@tobias_k上面評論的那樣,我也從未使用過它。 除非代碼真的很糟糕。 我總是喜歡自己格式化。
首要問題的答案是Eclipse格式化程序對代碼做了一件事情,然后Eclipse的“保存”操作做了其他事情,這些事情實際上是在撤消格式化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.