Могу ли я определить исключения из правил очистки Eclipse? - PullRequest
10 голосов
/ 06 октября 2008

Чаще всего правила очистки (Preferences> Java> Code Style> Clean Up) в Eclipse работают отлично и создают красивый код.

Но иногда, особенно с комментариями и связанными фрагментами строк (например, встроенными SQL-запросами), очистка просто портит все и разрушает мое форматирование.

Есть ли способ сказать Eclipse "Не трогайте этот блок текста! Я отформатировал его так, как мне нравится, и вы бы сделали его просто менее читабельным" ?

Ответы [ 7 ]

5 голосов
/ 17 августа 2011

Я предполагаю, что вы на самом деле не имеете в виду «Очистить», но опция «Форматировать исходный код» скрыта внутри. Это настраивается в Предпочтения> Java> Стиль кода> Форматер. И действительно, есть опция под названием «Вкл. / Выкл. Теги». К сожалению, по умолчанию он выключен. Вы бы сейчас написали это так:

// @formatter:off
StringBuilder sql = new StringBuilder()
    .append("SELECT whatever \n")
    .append("FROM some_table");
// @formatter:on

Вполне возможно, что принятый ответ был верным на момент написания, однако, это было введено в Eclipse 3.5, если я не ошибаюсь.

2 голосов
/ 06 октября 2008

Я столкнулся с той же проблемой, и, хотя у меня нет решения, я могу рассказать вам, как я могу обойти эту проблему.

Из-за того, как работает форматирование, я намеренно избегаю чрезмерно длинных строк кода. В целом, когда я сохраняю короткие строки, он принимает лучшие решения относительно того, как форматировать код. Это может даже работать с операторами SQL, например:

public static final String SELECT_SOMETHING = "SELECT"
        + "OBJECTID, THIS, THAT, THEOTHER, THING"
        + " FROM DBNAME.DBSCHEMA.TABLE_T"
        + " WHERE ID = ?";

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

public static final String SELECT_SOMETHING = "SELECT OBJECTID, SOMETHING FROM DBNAME.DBSCHEMA.TABLE_T WHERE ID = ?";

Для комментариев я помещаю их все в одну строку, когда это возможно, и позволяю им переносить слова при форматировании.

Кроме того, можно изменить стиль с помощью средства форматирования кода, чтобы улучшить работу в соответствии с вашим стилем кодирования. Возможно, вы захотите, чтобы все в команде использовали один и тот же формат, просто чтобы избежать конфликтов. Поскольку легче сравнивать изменения с другими разработчиками или предыдущими версиями, использующими инструмент управления исходным кодом, даже если это делает части вашего кода менее читаемыми, использование средства форматирования все еще было в моих интересах.

Тем не менее, я понимаю ваше разочарование, когда средство форматирования принимает неверные решения!

1 голос
/ 29 мая 2010

Для операторов SQL в коде вы можете поместить однострочный символ комментария в конце каждой строки. Тогда форматировщик не может переформатировать его. Это ужаснее, чем отсутствие необходимости делать это, но это красивее, чем если бы Eclipse отформатировал его.

StringBuffer sql = new StringBuffer() //
   .append("SELECT whatever \n") //
   .append("FROM some_table");
1 голос
/ 06 октября 2008

Чувствую себя неуверенно, отвечая на мой собственный вопрос, но я в настоящее время использую обходной путь ( примечание: у меня есть эти правила очистки как действие сохранения ):

Сохраните (с помощью Ctrl / Cmd-S, не знаете, имеет ли значение, как вы сохраняете) код, и позвольте Eclipse испортить ваше форматирование. Затем просто нажмите Ctrl / Cmd-Z, чтобы отменить, и сразу же снова сохраните. Формат возвращается к исходному формату и, похоже, сохраняется как задумано.

0 голосов
/ 25 марта 2009

если вы не хотите, чтобы поле становилось окончательным (т.е. если вы хотите изменить его во время отладки), вы просто назначаете его себе в конструкторе. Это получит предупреждение о затмении, но ваше поле останется не окончательным.

0 голосов
/ 07 октября 2008

(только для комментариев Javadoc)

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

. 
0 голосов
/ 06 октября 2008

Нет. (Насколько мне известно, у меня была та же проблема, и я много раз выглядел тяжело и долго ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...