Как убрать пробелы после комментариев в автоформатировании Eclipse?
Я использую плагин OpenJML для своего проекта, но автоматическое форматирование Eclipse портит мой код JML. JML написан после //@
условное обозначение.
//@ requires password != null;
//@ ensures !isActive() && getPassword().testWord(password) ? isActive() && \result : isActive() == \old(isActive()) && !\result;
Однако автоматическое форматирование Eclipse добавляет пробел между //
и @
символы, делающие мой JML-код бесполезным.
// @ requires password != null;
// @ ensures !isActive() && getPassword().testWord(password) ? isActive() && \result : isActive() == \old(isActive()) && !\result;
Есть ли способ, которым я могу отключить добавление пробела между //
а также @
символы или иным образом, каким образом я могу отключить интервал после комментариев в целом?
Я попытался изменить профиль форматера, но не смог найти настройки там.
Я также попытался автоматически удалить конечные пробелы, как описано здесь: Как автоматически удалить конечные пробелы в Eclipse? Но это тоже не сработало. Я предполагаю, потому что я специально пытаюсь изменить автоматическое форматирование комментариев.
1 ответ
Мое решение было бы простым, отключить форматирование комментария.
Window > Preferences > Java > Code Style > Formatter
Отредактируйте текущий профиль (вам нужно переименовать его, если это профиль по умолчанию).
На вкладке Комментарий снимите флажок Включить форматирование комментария к строке.
причина
Даже если это возможно, удалить это пространство, чтобы форматирование
//@
Это повлияет на каждый комментарий, не так уж и много. Но как насчет прокомментированной аннотации?
// @SuppressWarning("...")
Это будет отформатировано в
//@SuppressWarning("...")
Это станет проблемой для OpenJML, это будет конфликт. Подробнее об этом вы можете прочитать в руководстве пользователя - 4.2 Синтаксические конфликты с @
Другое решение, как для аннотаций, так и для JML, состоит в том, чтобы отключить средство форматирования, но это будет неприменимо, если честно:
// @formatter:off
...
// @formatter:on
Все, что находится между этими тегами, пока не отформатировано (если formatter:on
опущено, все после этого в файле не будет отформатировано