Eclipse의 Java 코드 포맷터가 블록 주석을 무시하도록 만들기


78

Eclipse의 내장 Java 코드 포맷터가 주석을 무시하도록하는 방법이 있습니까? 실행할 때마다 다음과 같이 바뀝니다.

    /*
     * PSEUDOCODE
     * Read in user's string/paragraph
     * 
     * Three cases are possible
     * Case 1: foobar
     *         do case 1 things
     * Case 2: fred hacker
     *         do case 2 things
     * Case 3: cowboyneal
     *         do case 3 things
     *         
     * In all cases, do some other thing
     */

이것으로 :

    /*
     * PSEUDOCODE Read in user's string/paragraph
     * 
     * Three cases are possible Case 1: foobar do case 1 things Case 2: fred
     * hacker do case 2 things Case 3: cowboyneal do case 3 things
     * 
     * In all cases, do some other thing
     */

이미 Windows> Preferences> Java> Code Style> Formatter 설정을 사용해 보았지만 주석 형식을 유지하기위한 설정을 찾을 수 없습니다. Eclipse 3.4.0을 사용하고 있습니다.


Formatter 구성에 바로 있습니다. 어떻게 놓치고 있는지 모르겠습니다. 프로필을 편집하면 8 개의 탭이있는 대화 상자가 있으며 마지막 탭은 주석 서식을위한 것입니다.
skaffman

주석 탭이 표시되지만 사용하는 확인란 조합에 관계없이 서식 문제가 발생합니다.
Pops


Eclipse의 Scala와 동일한 문제가 있지만 Scala 코드 포맷터 탭에는 다른 옵션이 있으므로 아래의 솔루션은 Java 전용입니다. Scala에 대한 주석 형식 변경을 해제하는 방법이 있습니까?
Glenn Strycker 2014 년

답변:


40

업데이트 2010, OP이 답변에서 지적했듯이// @formatter:off Eclipse 3.6 의 특수 문자열 이면 충분합니다.

질문 당시에는 사용할 수 없었습니다 .


원래 답변 : 2009 년 6 월, Eclipse 3.4 / 3.5

Java Formatter ( Windows > Preferences > Java > Code Style > Formatter)를 사용하여 새 Formatter 프로필을 만들 수 있습니다.

주석 탭 (eclipse3.5)에서 " Javadoc comment settings"에서 " Format HTML tags"의 선택을 취소 할 수 있습니다 .
은 "또한 확인 Never join lines"에서 " General settings"절을 참조하십시오.

그런 다음 귀하의 의견은 다음과 같이 작성해야합니다.

/**
 * PSEUDOCODE
 * Read in user's string/paragraph
 * 
 * Three cases are possible:
 * <dl>
 *   <dt>Case 1: foobar</dt>
 *     <dd>        do case 1 things</dd>
 *   <dt>Case 2: fred hacker</dt>
 *     <dd>        do case 2 things</dd>
 *   <dt>Case 3: cowboyneal</dt>
 *     <dd>        do case 3 things</dd>
 * </dl>        
 * In all cases, do some other thing
 */

참고 : 간단한 주석이 아닌 Javadoc 주석 을 작성했습니다. 그 정도의 텍스트가 포함 된 주석이 메소드 앞에 배치되는 것이 더 낫다고 생각하기 때문입니다. 또한 Javadoc 섹션에는 더 많은 형식 지정 매개 변수가 있습니다.
이 방법 (참 자바 독)의 전면에있는 경우, HTML 태그 <dl>, <dt><dd> Javadoc을보기 내에서 적절하게 제시하는 데 도움이 될 것입니다.


1
이 답변의 관련 부분은 HTML 태그가 줄 바꿈 등에 자동으로 삽입되지 않는다는 것입니다. 아마도 대부분의 사람들에게는 분명하지만 <br> s와 같은 것을 여기에서 볼 때까지 직접 코딩해야한다는 것을 깨닫지 못했습니다.

@Lord Torgamus : 태그를 추가해야 할뿐만 아니라 첫 번째 문장에는 마침표와 공백이 필요합니다 <br />. ( bugs.sun.com/bugdatabase/view_bug.do?bug_id=4165985 참조 )
VonC

Eclipse의 Scala와 동일한 문제가 있지만 Scala 코드 포맷터 탭에는 다른 옵션이 있으므로 아래의 솔루션은 Java 전용입니다. Scala에 대한 주석 형식 변경을 해제하는 방법이 있습니까?
Glenn Strycker 2014 년

1
이 묻는 질문에 대답하지 않습니다
Enerccio

183

특정 블록 주석의 형식을 억제하는 데 사용할 수있는 또 다른 솔루션이 있습니다. 사용 /*-블록 주석의 시작에서 (하이픈 주), 당신은 파일의 나머지를 포맷하면 포맷이 영향을받지 않습니다.

/ *-
 * 여기에 매우 특별한 블록 주석이 있습니다.
 * indent (1) 무시하고 싶은 서식.
 *
 * 하나
 * 두
 * 세
 * /

출처 : http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350


문맥 밖에서도 본 적이 없습니다. +1!
Pops

16
안타깝게도 이것은 Javadoc 주석이 아닌 "일반"블록 주석에서만 작동합니다.
팝스

완벽한 버전 : Juno 서비스 릴리스 1. 구세주 감사합니다!
Hong

1
각 줄 시작에 별을 추가하는 자체 포맷터가 있고 기본 포맷터를 사용하지 않으려는 경우에도 유용합니다. / *
-......

2020 년에도 여전히 작동합니다 (버전 : 2020-06 (4.16.0)) :-) 매우 멋져요
rustyx

25

동료로부터 Eclipse가이를 위해 사용할 수있는 특수 서식 태그를 제공한다는 것을 방금 배웠습니다.

// @formatter:off
/*
 * ╔════════╦═══════╦══════════╗
 * ║ Month  ║ Sales ║ Position ║
 * ╠════════╬═══════╬══════════╣
 * ║ June   ║ 44k   ║ 2nd      ║
 * ║ July   ║ 39k   ║ 2nd      ║
 * ║ August ║ 49k   ║ 4th      ║
 * ╚════════╩═══════╩══════════╝
 *
 * This comment shouldn't be formatted, and will now be ignored by the formatter.
 */
// @formatter:on

기본 설정 메뉴 → Java> 코드 스타일> 포맷터를 통해이 기능을 수동으로 활성화하고 편집을 클릭 하고 끄기 / 켜기 태그 탭을 선택하고 끄기 / 켜기 태그 활성화 ( 소스 )를 선택해야 할 수 있습니다.

문자열에 대한 빠른 구글 @formatter은 : 오프 에 나를 데리고 이 다른 SO 응답 코드 블록에 대한 포맷터를 비활성화의 맥락에서이 기능을 언급. 줄 주석, "일반"블록 주석 및 Javadoc 블록 주석에서도 작동 함을 확인했습니다.


JavaDoc 주석에 대해 어떻게 작동 시켰습니까? 이 답변의 블록 주석에서했던 것처럼 작동하려면 JavaDoc 주석 앞뒤에 줄 주석을 넣어야 함을 발견했습니다. JavaDoc 주석 섹션에 대해서만 서식을 해제 할 수 있기를 바랐습니다.
Michael Scheper 2013

@MichaelScheper 오랜만인데 정확히 기억이 안나 네요 ... VonC의 조언 을 해보 셨나요?
Pops

이것은 eclipse에게 코드 형식을 지정하지 않도록 지시하기 때문에 훌륭합니다. 고유 한 서식을 유지하려는 경우 유용합니다.
Martin Wickman 2014 년

18

또 다른 가능성은 Javadoc에서 HTML의 <pre>를 사용하는 것입니다.

/**
 * <pre>
 *    this
 *   is
 *      kept
 *  as
 *    is
 * </pre>
 */

적어도 이것은 소스 코드 주석에 ASCII 아트를 삽입하는 경향이 있습니다. :)


1
Eclipse는 자바 코드로 인식되는 경우 <pre> </ pre> 태그의 내용을 형식화합니다 (Window-> Preferences-> Java-> Code Style-> Formatter-> Edit ... [Button ]-> Comments [Tab]-> " 'pre'태그 안에 자바 코드 스 니펫 형식 지정")
gswierczynski

9

<pre> </pre>태그로 특정 텍스트를 둘러 쌉니다 .


2

Eclipse 3.4 : Preferences, Java-> Code Style-> Formatter, 프로필 편집, 주석 탭. 주석 서식을 제어하기위한 많은 옵션이 있습니다.


1

Eclipse에서 형식 지정을 억제하려면 형식화되지 않도록 의도 된 콘텐츠를 항상 <pre>UNFORMATTED CONTENT</pre>태그 로 래핑 할 수 있습니다 . Javadoc 포맷터는 해당 태그를 감지하고 해당 태그 사이의 모든 것을 형식화하지 않은 상태로 둡니다.

장점 :

  • 나머지 Javadoc은 여전히 ​​형식화되어 있습니다.
  • Javadoc의 html 출력도 사전 태그로 인해 "형식이 지정되지 않음"입니다.

단점 :

  • 하나를 보지 못함

1

한 가지 해결 방법은 Eclipse 형식을 원하지 않는 주석에 대해 사전 태그 를 추가 하는 것입니다.

/**
 * <pre>
 *    this part
 *   is
 *      out of
 *  format
 *    
 * </pre>
 */

2
사실입니다 ...하지만 필립이나 토마스 켈러가 몇 년 전에 답변에서 이미 말한 것에 추가되는 것을 알지 못합니다.
Pops

1

이걸로 해봐. 이것은 나를 위해 일했습니다. Java Formatter (Windows> 환경 설정> Java> 코드 스타일> Formatter)를 사용하여 기존에서 새 Formatter 프로필을 만든 다음 편집 할 수 있습니다.

이클립스가 이것을 저장하는 것을 허용하지 않으면 새 것을 만들고 저장하십시오. 여기에 이미지 설명 입력


이것이 최신 Eclipse의 답입니다. 이제 모든 주석 형식 (javadoc, block 또는 inline)을 비활성화 할 수 있습니다.
Tristan

0

언어에 따라 다릅니다.

예를 들어, javascript로 작업하는 경우 "창-> 환경 설정-> Javascript-> 코드 스타일-> 포맷터"로 이동 한 다음 포맷터 옵션을 편집합니다.

편집 (OP 질문의 변경 사항 반영

Java 코드 형식을 편집하려면 "창-> 환경 설정-> Java-> 코드 스타일-> 포맷터"로 이동하십시오.

패널 상단에

활성 프로필 :
Eclipse [내장]

여기에서 오른쪽에는 "편집"버튼이 하나 있고 그 아래에는 "새로 만들기 ..."및 "가져 오기 ..."라는 두 개의 버튼이 있습니다. 기존 프로필을 편집하는 것이 좋습니다.

프로필 편집 대화 상자에는 상단에 일련의 탭이 있습니다. 마지막 탭은 "코멘트"입니다. 주석 형식을 완전히 사용하지 않으려면 "Javadoc 주석 형식 사용", "블록 주석 형식 사용", "행 주석 형식 사용"및 "헤더 주석 형식 사용"을 선택 취소하십시오.


0

Windows-환경 설정-Java-코드 스타일-포매터에서 편집 .. 단추를 클릭하고 주석을 찾고 행 결합 안함을 선택하여 변경할 수 있습니다.

그러면 괜찮을 것입니다.

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