Создание модуля форматирования Java-кода Eclipse игнорирует комментарии блоков


есть ли способ заставить встроенный форматер кода Java Eclipse игнорировать комментарии? Всякий раз, когда я запускаю его, получается следующее:

    /*
     * 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 > настройки > Java > стиль кода > настройки форматирования, но не могу найти один для сохранения форматирования комментариев. Я использую Eclipse 3.4.0.

9 71

9 ответов:

обновление 2010, как указал ОП и в ответ, в специальную строку // @formatter:off в Eclipse 3.6 достаточно.

он был недоступен во время вопроса.


оригинальный ответ: июнь 2009 года, в Eclipse 3.4/3.5

С помощью Java Formatter (Windows > Preferences > Java > Code Style > Formatter), вы можете создать новый профиль форматирования.

на вкладке комментарии (в eclipse3. 5), Вы можете сделать конечно, в "Javadoc comment settings", чтобы снять "Format HTML tags".
Проверьте также "Never join lines" в "".

затем ваш комментарий должен быть написан как:

/**
 * 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 имеют больше параметров форматирования для воспроизведения.
Если он находится перед методом (true Javadoc), то HTML-теги <dl>,<dt> и <dd> поможет правильно представить его в представлении Javadoc.

есть еще одно решение, которое можно использовать для подавления форматирование отдельных блока комментариев. Используйте /*- (обратите внимание на дефис) в начале блока комментариев и форматирования это не повлияет на форматирование остальной части файла.

/*-
 * Here is a block comment with some very special
 * formatting that I want indent(1) to ignore.
 *
 *    one
 *        two
 *            three
 */

Источник: http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350

Я только что узнал от коллеги, что 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 > стиль кода > форматер, нажав на Edit выбор Off/On Теги вкладка и проверка включить/выключить теги (источник).

быстрый Google для строки @formatter: off принес я к это другой так ответ, который упомянул эту функцию в контексте отключение форматирования блоков кода. Я подтвердил, что он работает для комментариев строк, "обычных" комментариев блоков и комментариев блоков Javadoc.

еще одна возможность-использовать HTML

 в Javadoc:

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

по крайней мере, так я обычно вставляю свой ASCII-art в комментарии к исходному коду :)

объемный текст с <pre> </pre> теги.

в Eclipse 3.4: настройки, Java - > стиль кода - >форматер, затем Редактировать профиль, вкладка комментарии. Там есть куча опций для управления форматированием комментариев.

Если вы хотите подавить форматирование в eclipse, вы всегда можете обернуть содержимое, которое не должно быть сформировано в <pre>UNFORMATTED CONTENT</pre> тег. документация праматерии будет обнаруживать, что тег, и оставьте все между этими тегами неформатированными.

плюсы:

  • остальная часть Javadoc все еще отформатирована
  • html-вывод Javadoc также будет "неформатирован" из-за предварительных тегов

плюсы:

  • не видя один

Это зависит от языка.

например, если вы работаете с javascript, вы должны перейти в" окно -> настройки -> Javascript -> стиль кода -> форматер", а затем отредактировать параметры форматера.

Edit (отражая изменения в OP вопросы

для редактирования форматирования кода java перейдите по ссылке "Окно - > Настройки - > Java - > Стиль Кода - > Форматер"

в верхней части панели вы увидите

активный Профиль:
Затмение [встроенный]

оттуда у вас есть одна кнопка справа, "редактировать", и два снизу, "новый..."и" импорт...". Я бы рекомендовал редактировать существующий профиль.

в диалоговом окне изменить профиль есть ряд вкладок в верхней части. Последняя вкладка "комментарии". Чтобы полностью отключить форматирование комментария, снимите флажок "Включить форматирование документации javadoc комментарии", "включить блок комментариев форматирование", "включить строку форматирования комментария", и "включить заголовок форматирование комментариев".

один обходной путь, чтобы добавить pre тег для комментариев, которые вы не хотите, чтобы eclipse форматировать

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