簡體   English   中英

Eclipse格式化程序每次都會替換格式(並且不會分割一行)

[英]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做保存時的格式。 顯然是導致格式更改的其他“保存”操作之一:

  • 格式化所有行
  • 組織進口
  • 將控制語句主體轉換為塊
  • 將final修飾符添加到私有字段
  • 將final修飾符添加到方法參數
  • 添加缺少的“ @Override”注釋
  • 向接口方法的實現中添加缺少的“ @Override”注釋
  • 添加缺少的“ @Deprecated”注釋
  • 刪除不必要的演員
  • 刪除所有行上的尾隨空格
  • 正確的縮進

編輯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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM