Eclipse 포맷터가 모든 열거 형을 한 줄에 배치하는 것을 중지하는 방법


106

다음과 같은 열거 형이 있습니다.

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

파일 형식을 지정할 때 출력은 다음과 같습니다.

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

1
별도의 줄에 각 열거 형 변수를 적용하기 위해 외부 포맷터 (org.eclipse.jdt.core.formatter ......)에 변수가 있습니까?
Paramesh Korrakuti

답변:


198

@wjans의 대답은 일반 열거 형에서는 잘 작동했지만 인수가있는 열거 형에서는 작동하지 않았습니다. 그의 대답을 조금 확장하기 위해 Eclipse Juno에서 나에게 가장 합리적인 형식을 제공 한 설정은 다음과 같습니다.

  1. Window> Preferences> Java> Code Style>Formatter
  2. 딸깍 하는 소리 Edit
  3. Line Wrapping탭 선택
  4. enum선언 트리 노드 선택
  5. 이제 괄호 안에 3/3이 표시되도록 설정 Line wrapping policy합니다 Wrap all elements, every element on a new line (...).
  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 개의 하위 노드가 동일한 래핑 정책으로 설정되고 다음을 제외하고 동일한 강제 분할 정책이 설정됩니다. Constants 되므로 인수가있는 열거 형은 각 줄에 형식이 지정됩니다. 인수는 최대 선 너비를 초과하는 경우에만 줄 바꿈됩니다.

예 :

@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)
}

1
이클립스 프리 뷰어에서는 여전히 잘못 보이지만 실제 소스에서 시도했을 때 매력처럼 작동했습니다. 감사.
Ben Thurley 2013 년

50

포맷터 기본 설정에서이를 지정할 수 있습니다.

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

몇 달 동안이 문제가있었습니다. 내가 시도하지 않은 것은 "강제 분할"이었습니다. "모든 요소를 ​​래핑"하는 것이 실제로 모든 요소를 ​​래핑한다고 생각하므로 왜 필요한지 확실하지 않습니다! 솔루션에 감사드립니다.
LegendLength

11

약간 못 생겼지 만 회사 정책에 따라 포맷터를 변경할 수없는 경우 줄 바꿈하지 않으려는 줄 끝에 주석을 넣을 수 있습니다.

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

5

좋지는 않지만 일부 코드 섹션에 대해 Eclipse 포맷터를 끌 수 있습니다.

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

옵션은 Windows-> 기본 설정-> Java-> 코드 스타일-> 포맷터-> 편집-> 끄기 / 켜기 태그 패널에 있습니다.


1
이것은 작동합니다. 이제 컴파일러는 오류라고 생각합니다. // @formatter 같은이 문제는 의견을 극복 퍼팅 : OFF
밥 Kuhar

4

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

포장 정책을 다음으로 설정하십시오.

  • 모든 요소, 모든 요소를 ​​새 줄에 래핑

  • "강제 분할 (줄이 ,,,,,

0

최신 Eclipse 2018.9 추가

  1. Window > Preferences > Java > Code Style > Formatter - Edit
  2. Line Wrapping트리 노드를 확장 합니다.
  3. 넓히다 Wrapping settings
  4. 넓히다 'enum' declaration
  5. 편집 ConstantsConstant arguments.

상수는 Wrap all elements, every element on a new line. 상수 인수는이어야 Wrap where necessary합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.