Заставить форматировщик кода 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.
Решение
Обновление 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 */
Я только что узнал от коллеги, что 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 не позволяет сохранить это, создайте новое и сохраните в нем.