Примушуючи програмоутворювач коду Java Eclipse ігнорувати коментарі блоків


78

Чи є спосіб змусити вбудований в 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.


Це прямо там, у конфігурації Formatter, я не знаю, як ви це пропускаєте. Редагуйте профіль, з'явиться діалогове вікно з 8 вкладками, остання вкладка призначена для форматування коментарів.
skaffman

Я бачу вкладку коментарів, але проблеми з форматуванням трапляються незалежно від того, яку комбінацію прапорців я використовую.
Попс


У мене така ж проблема із Scala в Eclipse, але наведені нижче рішення є специфічними для Java, оскільки вкладка форматування коду Scala має різні параметри. Чи є спосіб вимкнути переформатування коментарів для Scala?
Glenn Strycker

Відповіді:


40

Оновлення 2010 року, на що вказує OP та в цій відповіді , // @formatter:offдостатньо спеціального рядка в Eclipse 3.6.

На момент запитання він був недоступний .


Оригінальна відповідь: червень 2009 р., Eclipse 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.


1
Для мене відповідною частиною цієї відповіді було те, що теги HTML НЕ автоматично вставляються при розривах рядків тощо. Можливо, очевидно для більшості, але я не розумів, що мені доводиться кодувати такі речі, як <br>, поки я не побачив це тут.
Вискакує

@Lord Torgamus: не тільки ви повинні додати ці теги, але й для першого речення потрібні період та пробіл перед <br />! (див. bugs.sun.com/bugdatabase/view_bug.do?bug_id=4165985 )
VonC

У мене така ж проблема із Scala в Eclipse, але наведені нижче рішення є специфічними для Java, оскільки вкладка форматування коду Scala має різні параметри. Чи є спосіб вимкнути переформатування коментарів для Scala?
Glenn Strycker

1
це не відповідає на поставлене запитання
Enerccio

183

Існує ще одне рішення, яке можна використовувати для придушення форматування конкретних коментарів блоків. Використовуйте /*-(зверніть увагу на дефіс) на початку коментаря блоку, і це не вплине на форматування, якщо ви відформатуєте решту файлу.

/ * -
 * Ось блок-коментар з деякими дуже спеціальними
 * форматування, яке я хочу ігнорувати відступом (1).
 *
 * один
 * два
 * три
 * /

Джерело: http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350


Ніколи раніше цього не бачив, навіть поза контекстом. +1!
Попс

16
На жаль, це працює лише із "звичайними" коментарями блоків, а не з коментарями Javadoc.
Попс

Ідеально підходить для версії: Випуск служби Juno 1. Дякую, спасителю мій!
Гонг

1
і навіть це корисно, якщо у вас є власний форматор, який додає зірочки для кожного початку рядка, і ви не хочете, щоб це
робив форматтер

Все ще працює у 2020 році (Версія: 2020-06 (4.16.0)) :-) дуже приємно
rustyx

25

Щойно я дізнався від співробітника, що 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> Code Style> Formatter, натиснувши на Edit , вибравши Off / On Мітки вкладку і перевірка Enable Off / On тегів ( джерела ).

Швидкий Google для рядка @formatter: off підвів мене до цієї іншої відповіді SO , яка згадала цю функцію в контексті вимкнення форматування для блоків коду. Я підтвердив, що це працює для коментарів рядків, "звичайних" коментарів блоків та коментарів блоків Javadoc.


Як ви змусили це працювати для коментарів JavaDoc? Я виявив, що мені доводилося розміщувати коментарі до рядків до і після коментарів JavaDoc, щоб це працювало, як ви робили для коментаря блоку у цій відповіді. Я сподівався, що зможу вимкнути форматування лише для розділу коментаря JavaDoc.
Michael Scheper

@MichaelScheper минув якийсь час, і я точно не пам'ятаю ... ти спробував пораду VonC ?
Попс

Це чудово, оскільки він закликає eclipse також не форматувати код. Корисно, коли ви хочете зберегти власне форматування.
Мартін Вікман

18

Інша можливість - використовувати HTML-код <pre> у Javadoc:

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

Принаймні так я схильний вбудовувати своє ASCII-мистецтво в коментарі до вихідного коду :)


1
Зверніть увагу, що Eclipse відформатує вміст тегу <pre> </pre>, якщо він сприймає його як код Java (якщо не зняти прапорець Вікно-> Налаштування-> Java-> Стиль коду-> Форматер-> Редагувати ... [Кнопка ] -> Коментарі [Вкладка] -> "Форматування фрагментів коду Java всередині тегів" pre "")
gswierczynski


2

В Eclipse 3.4: Налаштування, Java-> Стиль коду-> Форматтер, потім відредагуйте профіль, вкладку коментарів. Там є безліч варіантів для контролю форматування коментарів.


1

Якщо ви хочете придушити форматування в eclipse, ви завжди можете обернути вміст, який НЕ ФОРМУЄТЬСЯ, у <pre>UNFORMATTED CONTENT</pre>тег. Форматизатор Javadoc виявить цей тег і залишить все між цими тегами неформатованим.

Плюси:

  • Решта Javadoc все ще відформатована
  • Висновок HTML Javadoc також буде "неформатованим" через попередні теги

Мінуси:

  • Не бачачи жодного

1

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

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

2
Правда ... але я не бачу, що це додає до того, що Філіп чи Томас Келлер вже говорили у своїх відповідях багато років тому.
Попс

1

Спробуйте це. Це спрацювало для мене. За допомогою Java Formatter (Windows> Налаштування> Java> Стиль коду> Formatter) ви можете створити новий профіль Formatter із існуючого, а потім відредагувати його.

Якщо Eclipse не дозволяє зберегти це, створіть новий і збережіть у ньому. введіть тут опис зображення


Це відповідь нещодавнього Eclipse: тепер ви можете вимкнути будь-яке форматування коментарів (javadoc, блокувати чи вбудувати).
Трістан

0

Це залежить від мови.

Наприклад, якщо ви працюєте з javascript, вам слід перейти до "Вікно -> Налаштування -> Javascript -> Стиль коду -> Форматтер", а потім відредагувати параметри форматування.

Редагувати (відображаючи зміни у запитаннях до ОП

Для редагування форматування коду Java перейдіть до "Вікно -> Налаштування -> Java -> Стиль коду -> Форматтер"

У верхній частині панелі ви побачите

Активний профіль:
Eclipse [вбудований]

Звідти у вас одна кнопка праворуч, "Редагувати", а дві нижче, "Створити ..." та "Імпортувати ...". Я б порекомендував редагувати існуючий профіль.

У діалоговому вікні редагування профілю вгорі є ряд вкладок. Остання вкладка - "Коментарі". Щоб повністю вимкнути форматування коментарів, зніміть прапорець «Увімкнути форматування коментарів Javadoc», «Увімкнути блокування форматування коментарів», «Увімкнути форматування рядків коментарів» та «Увімкнути форматування коментарів заголовка».


0

Ви можете змінити це в Windows - Налаштування - Java - Стиль коду - Formatter, після чого натисніть кнопку Редагувати .., знайдіть Коментарі, виберіть Ніколи не приєднуватися до рядків.

Тоді це повинно бути нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.