programing

Eclipse 포맷터가 모든 에넘을 한 줄에 배치하지 않도록 하는 방법

copysource 2022. 10. 11. 22:49
반응형

Eclipse 포맷터가 모든 에넘을 한 줄에 배치하지 않도록 하는 방법

다음과 같은 에넘이 있습니다.

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

파일 포맷 시 출력은 다음과 같습니다.

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

@wjans의 답변은 일반 enum에서는 정상적으로 동작하지만 인수가 있는 enum에서는 동작하지 않습니다.그의 답변을 조금 더 자세히 설명하자면, 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개 중 3개라고 되어 있어요.
  6. 체크 마크를 끄다Force split, even if line shorter than maximum line width (...)그래서 괄호 안에 3개 중 3개라고 되어 있어요.
  7. 를 선택합니다.Constants삼면체
  8. 확인.Force split, even if line shorter than maximum line width

그러면 열거형 3개의 서브노드가 동일한 래핑정책으로 설정되며, 이 정책 이외의 경우 강제 분할정책은 동일합니다.Constantstreenode를 사용하면 인수가 있는 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)
}

포메터 설정에서 지정할 수 있습니다.

  • 환경설정: Java -- 코드 스타일 -- 포맷터
  • [편집(Edit)]을 클릭합니다.
  • '줄 바꿈' 탭을 선택하십시오.
  • 왼쪽 상자에서 'enum' 선언 -> 상수를 선택합니다.
  • 줄 바꿈 정책을 '모든 요소, 모든 요소를 새 줄에 줄 바꿈'으로 설정합니다.
  • 강제 분할을 확인합니다..'

약간 못생긴 것도 있지만 회사 방침상 포메터를 변경할 수 없는 경우에는 줄 끝에 코멘트를 붙이면 됩니다.

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

좋진 않지만 이클립스 포메터를 끄면 코드의 일부 구간에서...

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

Windows > [ Preferences ]-> [ Preferences ]-> [ Java ]-> [ Code Style ]-> [ Formatter ]-> [ Edit ]-> [ Off / On Tags ]패널에 옵션이 있습니다

열거 선언에서 "상수"에 대한 줄 바꿈 정책을 설정해야 합니다.

래핑 정책 설정

  • 새 줄에 모든 요소, 모든 요소 줄 바꿈

그리고.

  • [ Force Split ](강제분할, 줄이 더 짧아도...)이라고 표시된 상자를 체크합니다.

최신 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.

언급URL : https://stackoverflow.com/questions/6676305/how-to-stop-eclipse-formatter-from-placing-all-enums-on-one-line

반응형