Заставить Eclipse-кодировщик кода Java игнорировать комментарии к блоку - PullRequest
74 голосов
/ 22 июня 2009

Есть ли способ заставить встроенный в 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> «Настройки»> «Java»> «Стиль кода»> «Параметры форматирования», но не могу найти его для сохранения форматирования комментариев. Я использую Eclipse 3.4.0.

Ответы [ 11 ]

171 голосов
/ 29 марта 2011

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

/*-
 * 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

35 голосов
/ 22 июня 2009

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

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


Оригинальный ответ: июнь 2009 г., Затмение 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 имеют больше параметров форматирования для воспроизведения.
Если он находится перед методом (истинный Javadoc), теги HTML <dl>, <dt> и <dd> помогут правильно представить его в представлении Javadoc.

23 голосов
/ 28 августа 2012

Я только что узнал от коллеги, что 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

Обратите внимание, что вам может потребоваться вручную включить эту функцию через меню настроек & rarr; Java> Code Style> Formatter, нажав Изменить , выбрав вкладку Выкл. / Вкл. и отметив Включить теги Выкл. / Вкл. ( источник ).

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

15 голосов
/ 03 января 2013

Другая возможность - использовать HTML

in Javadoc:</p>

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

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

8 голосов
/ 10 февраля 2010

Окружите определенный текст тегами .

2 голосов
/ 22 июня 2009

В Eclipse 3.4: «Настройки», «Java» -> «Стиль кода» -> «Форматтер», затем редактируйте профиль, вкладку «Комментарии». Там есть несколько вариантов управления форматированием комментариев.

1 голос
/ 06 сентября 2017

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

<code>/**
 * <pre>
 *    this part
 *   is
 *      out of
 *  format
 *    
 * 
* /
1 голос
/ 26 ноября 2015

Если вы хотите подавить форматирование в Eclipse, вы всегда можете заключить содержимое, которое НЕ БУДЕТ ФОРМАТИРОВАТЬ в тег UNFORMATTED CONTENT. Javadoc formatter обнаружит этот тег и оставит все, что находится между этими тегами, неотформатированным.

Плюсы:

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

Минусы:

  • Не видел никого
0 голосов
/ 16 июня 2019

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

Если Eclipse не позволяет сохранить это, то создайте новое и сохраните в нем. enter image description here

0 голосов
/ 01 января 2019

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

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

...