Eclipse for Java에서 별도의 줄에 체인 메서드 호출 래핑


105

각 메서드 호출을 .NET에서 래핑하는 방법을 알아내는 데 성공하지 못했습니다 Eclipse. 예를 들어 다음과 같습니다.

someObject.A().B().C();

그러나 나는 이것을 정말로 원한다.

someObject.A()
          .B()
          .C();

의 "줄 바꿈"섹션 아래 Eclipse에이 결과를 제공하지 않는 것 같습니다.

답변:


186

Deepak Azad의 답변을 보완하여 정확히 필요한 것은 다음과 같습니다.

Windows : 창 → 환경 설정 → Java → 코드 스타일
→ 포맷터 → 편집 → 줄 바꿈 (탭)

Mac OS : ADT → 환경 설정 → 자바 → 코드 스타일
→ 포맷터 → 편집 → 줄 바꿈 (탭)

그런 다음 왼쪽 목록에서 다음을 선택합니다.

함수 호출 → 검증 된 호출

이제이 목록 아래에서 줄 바꿈 정책 을 다음 과 같이 설정 합니다.

필요하지 않은 경우 첫 번째 요소를 제외한 모든 요소를 ​​래핑합니다.

확인 :

선이 최대 선 너비보다 짧은 경우에도 강제 분할

마지막으로 들여 쓰기 정책 을 ( @Turbo 감사 합니다 )로 설정합니다.

열 들여 쓰기

요청한 정확한 동작을 제공해야합니다.


보너스 : Android Studio / IntelliJ 아이디어 :

Mac OS : Android Studio → Preferences ( Cmd +,) → Editor → Code Style → Java → Wrapping And Braces 탭 → Chained method calls

고르다

항상 감싸기

그리고 확인

여러 줄 때 정렬


2
감사. 이것은 return new SomeClass().A().B().C();별도의 줄에서 각 메서드 호출에 대해 작동하지 않습니다 .
Harvey

1
@ ChristianGarcía +1은 훌륭한 답변입니다. 나로부터 한 가지 관찰 (Eclipse 네온) : 내가을 설정 Indent on column하면 때때로 추가 공간이 추가됩니다. 예를 들어 등 session.createQuerysession .createQuery됩니다. 기본 옵션으로 되 돌리면 문제가 해결되었습니다.
Sayan Pal

이렇게하면 첫 번째 호출 후에 탭이 삽입됩니다. 이를 방지하기 위해 들여 쓰기에서 "줄 바꿈 된 줄 들여 쓰기에 공백 사용"을 선택해야했습니다.
Daniel Nitzan

12

창 → 환경 설정 → Java → 코드 스타일 → 포매터 → 편집 → 줄 바꿈 → 이미 줄 바꿈 된 줄 결합 안 함


3
설명하지 않아서 죄송합니다. 포맷하지 않습니다. 수동으로 수행하면 단순히 엉망이되지 않습니다.
Op De Cirkel 2011 년

이제 이해합니다. Eclipse는 실제로 체인 메서드를 형식화 할 수 없지만 입력 한대로 형식을 유지합니다. 감사.
Johann

연결된 호출에만 국한되지 않습니다. 함수 호출 래핑을 강제하면 모든 곳에서 래핑됩니다
Op De Cirkel 2011 년

@Johann 맞지 않습니다. Eclipse는 체인 메서드 호출을 형식화 할 수 있습니다.
Deepak Azad 2011 년

@OpDeCirkel 답변 자체에 의견을 추가해야합니다. 사람들이 쉽게 알아 차릴 수 있도록하기 :이 댓글I am sorry i did not explain: It won't format it. It will simply not mess it up, if you do it manually. –
Sandeep Shukla

7

Window> Preferences> Java> Code Style> Formater> Edit> Line Wraps> Function Calls에서 '줄 바꿈 정책'을 '모든 요소, 새 줄의 모든 요소 래핑'으로 설정합니다.


당신은 Ctrl 키 + Shift + f를 사용하여 파일 형식을 경우는 \ 모든 것을 최대 엉망 것, 그들이 체인되지 않은 경우에도, 새로운 라인에있는 모든 함수 호출을 넣어 것
사설 드 서켈

1
"필요하지 않은 경우 첫 번째 요소를 제외한 모든 요소 래핑"과 같은 다른 정책도 사용할 수 있습니다. 그 중 하나는 : 당신을 위해 일한다
디팍 아자 드에게

7

이클립스 코드 서식 설정이 소스 제어에 체크인 된 경우 (전체 팀에서 일관된 코드 서식 지정을 위해) .settings폴더가 체크인됩니다.

이 형식화 동작을 제공하는 속성은 .settings/org.eclipse.jdt.core.prefs파일에 있습니다.

속성은 다음과 같습니다.

org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80

3

이러한 세그먼트의 형식을 직접 지정하려는 경우 다음을 사용하여 eclipse가 해당 세그먼트의 형식을 다시 지정하지 않도록 할 수 있습니다.

// @formatter:off
...
// @formatter:on

환경 설정에서이 기능을 활성화해야 할 수 있습니다. http://archive.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter

참고 항목 : Java 코드의 특정 섹션에 대해 Eclipse 코드 포맷터를 끄는 방법?


0

in : Window-> Preferences-> Java-> Code Style-> Formater-> Edit-> 줄 바꿈-> 함수 호출-> 한정된 호출

열 들여 쓰기로 들여 쓰기 정책 선택


-1

이클립스 포맷터를 자바와 자바 스크립트로 사용자 정의하십시오. 화면에 맞는 최대 라인을 늘리십시오.Windows> 기본 설정

편집하다

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