Заставить форматировщик кода Java Eclipse игнорировать комментарии к блокам

StackOverflow https://stackoverflow.com/questions/1024886

  •  06-07-2019
  •  | 
  •  

Вопрос

Есть ли способ заставить встроенный форматировщик кода 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.

Это было полезно?

Решение

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

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

<Ч>

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

С помощью средства форматирования Java ( Windows > Настройки > Стиль кода > Форматтер ) вы можете создать новый профиль средства форматирования.

На вкладке Комментарии (в eclipse3.5) вы можете убедиться в том, что в " Настройки комментариев Javadoc " снимите флажок " Форматировать теги HTML & Quot ;.
Также проверьте " Никогда не присоединяться к строкам " в " Общие настройки " раздел.

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

/**
 * 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 имеют больше параметров форматирования для игры.
Если он находится перед методом (настоящий 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. ком / technetwork / Java / JavaSE / документация / 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

Обратите внимание, что вам может потребоваться вручную включить эту функцию через меню настроек & # 8594; Java > Стиль кода > Программа форматирования, нажав Изменить , выбрав вкладку Теги выключения / включения и отметив Включить теги выключения / включения (source ).

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

Еще одна возможность - использовать HTML < pre > в Javadoc:

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

По крайней мере, я стараюсь встраивать свой ASCII-арт в комментарии исходного кода:)

Окружите определенный текст < pre > < / pre > теги.

В Eclipse 3.4: Настройки, Java -> Code Style -> Formatter, затем редактируйте профиль, вкладку комментариев. Там есть несколько вариантов для управления форматированием комментариев.

Если вы хотите подавить форматирование в eclipse, вы всегда можете обернуть контент, который не предназначен для ФОРМИРОВАНИЯ, в <pre>UNFORMATTED CONTENT</pre> ярлык. Средство форматирования Javadoc обнаружит этот тег, и оставьте все между этими тегами неформатированным.

Плюсы:

  • Остальная часть Javadoc все еще отформатирована.
  • Вывод Javadoc в формате html также будет «неформатированным» из-за тегов pre.

Минусы:

  • Не видя ни одного

Одним из способов решения этой проблемы является добавление тега pre для комментариев, которые не нужно форматировать для затмения

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

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

Например, если вы работаете с javascript, вы должны перейти в «Окно -> Настройки -> Javascript -> Стиль кода -> Форматирование», а затем отредактировать параметры форматирования.

Редактировать (отражает изменения в вопросах ОП

Для редактирования форматирования кода Java, перейдите на «Window -> Preferences -> Java -> Code Style -> Formatter»

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

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

Отсюда у вас есть одна кнопка справа «Редактировать» и две внизу: «Новый...» и «Импортировать...».Я бы рекомендовал отредактировать существующий профиль.

В диалоговом окне редактирования профиля вверху есть несколько вкладок.Последняя вкладка – «Комментарии».Чтобы полностью отключить форматирование комментариев, снимите флажки «Включить форматирование комментариев Javadoc», «Включить форматирование комментариев блока», «Включить форматирование комментариев к строке» и «Включить форматирование комментариев в заголовке».

Вы можете изменить это в Windows - Настройки - Java - Стиль кода - Форматтер, чем нажать кнопку Изменить .., найти комментарии, выберите Никогда не присоединяться к линиям.

Тогда все должно быть в порядке.

Попробуйте это. Это сработало для меня. С помощью средства форматирования Java (Windows > Настройки> Java > Code Style > Formatter) вы можете создать новый профиль средства форматирования из существующего и затем отредактировать его.

Если Eclipse не позволяет сохранить это, создайте новое и сохраните в нем. введите описание изображения здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top