web-dev-qa-db-ja.com

Eclipseフォーマッターがすべての列挙型を1行に配置するのを停止する方法

私は次のような列挙型を持っています:

public static enum Command
{
login,
register,
logout,
newMessage
}

ファイルをフォーマットすると、出力は次のようになります。

public static enum Command 
{
login, register, logout, newMessage
}
101
MetaChrome

@wjansによる答えは、通常の列挙型ではうまくいきましたが、引数を持つ列挙型ではうまくいきませんでした。彼の答えをもう少し詳しく説明するために、Eclipse Junoで最も賢明な書式設定を提供した設定を以下に示します。

  1. Window> Preferences> Java> _Code Style_> Formatter
  2. Editをクリックします
  3. _Line Wrapping_タブを選択します
  4. enum宣言ツリーノードを選択します
  5. _Line wrapping policy_をWrap all elements, every element on a new line (...)に設定すると、括弧内に3 of 3と表示されます。
  6. Force split, even if line shorter than maximum line width (...)のチェックを外すと、括弧内に3 of 3と表示されます。
  7. Constantsツリーノードを選択します
  8. _Force split, even if line shorter than maximum line width_を確認してください

これにより、enum treenodeの3つのサブノードがConstants treenodeを除いて同じラッピングポリシーと同じ強制分割ポリシーに設定されるため、引数付きのenumはそれぞれ独自の行でフォーマットされます。引数は、最大行幅を超える場合にのみラップされます。

例:

@ wjans

_enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}
_

上記のソリューション:

_enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}
_
192
PolyTekPatrick

フォーマッターの設定でこれを指定できます。

  • 設定:Java-コードスタイル-フォーマッター
  • 編集をクリックします
  • [行の折り返し]タブを選択します
  • 「enum」宣言を選択->左側のボックスで定数
  • 行の折り返しポリシーを「すべての要素、すべての要素を新しい行にラップする」に設定します
  • 「強制分割...」をチェックします
49
wjans

それも少しいですが、会社の方針によりフォーマッターの変更が禁止されている場合、ラップしたくない行の最後にコメントを入れることができます。

public static enum Command 
{
    login,//
    register,//
    logout,//
    newMessage//
};
11
Raku

ナイスではありませんが、コードの一部のセクションでEclipseフォーマッターをオフにすることができます...

// @formatter:off
public static enum Command {
    login,
    register,
    logout,
    newMessage
};
// @formatter:on

このオプションは、Windows-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Off/On Tagsパネルにあります。

5
pauli

「定数」の列挙型宣言の下で行折り返しポリシーを設定する必要があります。

折り返しポリシーを設定します

  • すべての要素をラップし、すべての要素を新しい行に配置します

[〜#〜] and [〜#〜]

  • [次の行より短い場合でも、強制的に分割する]チェックボックスをオンにします。
4
Ray Toal

最新のEclipse 2018.9を追加するだけ

  1. Window > Preferences > Java > Code Style > Formatter-Edit
  2. Line Wrappingツリーノードを展開します。
  3. Wrapping settingsを展開します
  4. 'enum' declarationを展開します
  5. ConstantsおよびConstant argumentsを編集します。

定数はWrap all elements, every element on a new lineである必要があります。定数引数はWrap where necessaryである必要があります。

0
Ondrej Burkert