Подтвердить что ты не робот

Как предотвратить форматирование Eclipse от испорчения текстовых комментариев?

У меня есть (Java) комментарии, такие как:

/* 
 * The quick brown fox jumped over the lazy dog.
 *
 *
 * Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.
 */

Автоформат Eclipse правильно устанавливает ширину строки комментария, но делает это:

/*
 * The quick brown fox jumped over the lazy dog.
 * 
 * 
 * Notes: - The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy
 * dog. The quick brown fox jumped over the lazy dog. - The second quick brown fox jumped over the
 * lazy dog. The quick brown jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
 */

Как я могу форматировать код, чтобы оставить маркированные списки как есть, но все равно обрабатывать комментарий?

Примечания:

  • Я не хочу отключать выделение строк в комментариях, потому что я хочу, чтобы мои строки комментариев соответствовали максимальной длине. Поэтому отказ от соединения линии или отключение форматирования комментариев Javadoc или временное приостановление автоформатирования не являются приемлемыми решениями.
  • Возможно, связанный с этим вопрос.
4b9b3361

Ответ 1

В этом ответе говорится, что вы добавляете hypen сразу после открытия /*, то есть:

/*- 
 * The quick brown fox jumped over the lazy dog.
 *
 *
 * Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.
 */

Это тоже работало для меня.

Ответ 2

Ответ на ваш вопрос, вероятно, такой же, как здесь: Как отключить форматирование кода Eclipse для определенных разделов кода Java?

С Eclipse 3.6 вы можете использовать

// @formatter:off
...
// @formatter:on

аннотации для отключения форматирования кода.

Update:

В качестве альтернативы вы также можете изменить параметры комментариев в настройках: в Java/Code Style/Formatter отредактируйте настройки форматирования и проверьте страницу комментариев для следующих настроек:

  • Включить форматирование Javadoc (Общие настройки)
  • Отступы Javadoc отступа (настройки Javadoc)

Btw, этот список ручного списка не переводится в список в сгенерированном коде. Это может иметь смысл использовать список html по этой причине.

Ответ 3

Вы можете вносить изменения в формат комментариев к формату Eclipse и иметь специальную обработку комментариев блоков.

Получите окно → настройки. Java > Стиль кодa > Formatter. Нажмите "Создать", чтобы создать новый шаблон. Затем под вкладкой "Комментарии" отключить форматирование комментариев блока.

Однако это никогда не будет выполнять форматирование комментариев к блоку.

Ответ 4

В Java есть 2 разных вида комментариев:

  • блокировать комментарии: они не имеют стандартного формата и поэтому форматированный как плавающий текст.
  • Комментарии JavaDoc: у них есть общая структура и их форматирование зависят от тегов компоновки (например, <br> или <p>) используется в комментарии.

В JavaDoc ваш пример можно написать, как показано ниже (и будет отформатирован, как показано):

/**
 * The quick brown fox jumped over the lazy dog.
 * 
 * <p>
 * Notes:
 * <ul>
 * <li>The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown
 * fox jumped over the lazy dog.</li>
 * <li>The second quick brown fox jumped over the lazy dog. The quick brown jumped over the lazy dog. The quick
 * brown fox jumped over the lazy dog.</li>
 * </ul>
 * </p>
 */

Ответ 5

Подбирая то, что сказал Bananeweizen, вы также можете обернуть соответствующий блок комментариев тегами <pre></pre>, сохраняя каждую вкладку и место в нем:

/* 
 * The quick brown fox jumped over the lazy dog.
 *
 *
 *<pre>Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown
 *   jumped over the lazy dog. The quick brown fox jumped over the lazy
 *   dog.</pre>
 */

Ответ 6

Как насчет:

/**
 * The quick brown fox jumped over the lazy dog.
 *
 * <p>Notes:
 * <li>The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.</li>
 * <li>The second quick brown fox jumped over the lazy dog. The quick brown jumped over the lazy dog. The quick brown fox jumped over the lazy dog.</li>
 */

А затем включите "Формат HTML-тегов" в Windows → Настройки → Java → Стиль кода → Форматтер → Редактировать... → Комментарии

Это все еще делает разрыв строки шириной линии.

EDIT:

Я использовал следующий блок-комментарий:

/*
 * The quick brown fox jumped over the lazy dog.
 *
 * Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
 */

Я использую Eclipse Neon.3 для Java EE, и мои комментарии Formatter установлены на ширину 150 и выбрано "Никогда не соединять строки". Форматирование этого блочного комментария дает мне следующий результат, который, я думаю, вам нужен (хотя я знаю, что вы не хотите "никогда не присоединяться к строкам").

/*
 * The quick brown fox jumped over the lazy dog.
 *
 * Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The
 * quick brown fox jumped over the lazy dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
 * The quick brown fox jumped over the lazy dog.
 */

Есть только одна маленькая проблема. Когда я добавляю еще один текст в первый маркированный список и затем снова форматирую, я получаю следующий результат.

/*
 * The quick brown fox jumped over the lazy dog.
 *
 * Notes:
 * - The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The
 * SOME MORE TEXT TO WRAP
 * quick brown fox jumped over the lazy dog.
 * - The second quick brown fox jumped over the lazy dog. The quick brown jumped over the lazy dog. The quick brown fox jumped over the lazy dog.
 * The quick brown fox jumped over the lazy dog.
 */

Это потому, что я сказал форматировщику "не присоединяться к строкам". Когда я отменяю выбор "Никогда не присоединяться к линиям", я, очевидно, получаю тот же результат, что и вы.

Ответ 7

В частности, вы хотите установить:

org.eclipse.jdt.core.formatter.comment.format_block_comments=false

Это доступно где-то в настройках Eclipse, для VS Code, внутри корня проекта, вам нужен каталог .settings с файлом "org.eclipse.jdt.core.prefs", который содержит эту строку. Этот файл будет содержать все ваши настройки Eclipse, которые использует код VS. Этот параметр будет применяться аналогично для других редакторов, которые используют настройки Eclipse.

Ответ 8

Я знаю, что вопрос старый, но я также вижу, что никто не дал удовлетворительного ответа. Это решило мою проблему. Перейти к Preference->Java->Code Style->Formatter. Здесь перейдите к Edit любого стиля Formatter, который вы используете. В диалоговом окне "Редактировать" вы найдете флажок "Включить форматирование комментариев к блоку". Снимите это. Измените имя профиля, как я сделал. Применить и ОК. Вы сделали.

Пожалуйста, обратитесь к этому изображению ниже. enter image description here

Надеюсь это поможет.