Как убрать пробелы после комментариев в автоформатировании 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 опущено, все после этого в файле не будет отформатировано

Другие вопросы по тегам