Как я могу заставить автоформатер eclipse игнорировать раздел кода?

я помню, что в eclipse был способ пометить раздел кода (специальный комментарий или аннотация?), Который заставлял автоформатер игнорировать этот раздел. Или я, возможно, выпил это ...

Используется в основном, когда у меня есть строки, которые переносятся на несколько строк, и я не хочу, чтобы автоформатер перестраивал это.


person Paul Adamson    schedule 09.12.2008    source источник
comment
Разыскивается: аннотация Eclipse @AutoFormatIgnore!   -  person Chris Nava    schedule 26.08.2009


Ответы (7)


Начиная с eclipse 3.5 (или 3.6) это возможно: - Перейдите к свойствам проекта - Стиль кода Java - Formatter - Редактировать... - выберите вкладку с пометкой «Выкл./вкл. теги», - включите теги в комментарии в своем исходный код, например

/* @formatter:on */
person stm    schedule 27.07.2010
comment
Предыдущая ссылка @ZoltánUjhelyi больше не работает. См. Формат документации Eclipse API - person Mr00Anderson; 23.01.2019

Вы можете обернуть код, который вы не хотите автоматически форматировать, между этими специальными комментариями:

normal code

/* @formatter:off */
strangely laid out code
/* @formatter:on */

normal code

Вот простой пример использования, который делает строку json (немного) более читаемой:

public class SomeTest {

    @Test
    public void can_deserialize_json() {
        /* @formatter:off */
        String json = "" +
        "{" +
        "   \"id\" : 123," +
        "   \"address1\" : blah," +
        "   \"shippingInfo\" : {" +
        "      \"trackingUrl\" : null," +
        "      \"price\" : 350" +
        "   }," +
        "   \"errorMessage\" : null" +
        "}";
        /* @formatter:on */
        MyClass.deserializeJson(json);
    }
}
person matt burns    schedule 15.11.2013

Я знаю только ответ для комментариев:

Eclipse достаточно умен, чтобы переформатировать комментарии только там, где сгенерированный JavaDoc не изменится (т.е. где пробелы не имеют значения):

/**
 * foo <i>
 * bar </i>
 * 
 * <pre>
 *   foo
 * bar
 * </pre>
 */

будет переформатирован в

/**
 * foo <i> bar </i>
 * 
 * <pre>
 *   foo
 * bar
 * </pre>
 */

Обратите внимание, что содержимое тегов <pre> не переформатировано.

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

person Joachim Sauer    schedule 09.12.2008
comment
Обратите внимание, что Eclipse отформатирует содержимое тега ‹pre›‹/pre›, если увидит его как код Java (если только вы не снимите флажок Окно->Настройки->Java->Стиль кода->Формат->Редактировать...[Кнопка ]->Комментарии[Tab]->Форматировать фрагменты кода Java внутри тегов 'pre') - person gswierczynski; 06.08.2014

Я не уверен в точной функции, на которую вы ссылаетесь, но вы можете изменить политику переноса строк выражений, что может помочь вам решить проблему со строками. Видеть:

Окно->Настройки->Java->Стиль кода->Формат

Нажмите кнопку "Редактировать..."

Перейдите на вкладку «Перенос строк».

В дереве выберите Выражения->Назначения, затем измените политику отступа в нижней части окна.

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

person Community    schedule 10.12.2008

Я только что нашел этот вопрос, потому что меня также раздражает отсутствие этой функции.

Небольшой поиск показал этот вопрос и следующий ответ: Остановить затмение от переноса строк?

Eclipse 3.5 поддерживает это. (Он попал в релиз-кандидат несколько дней назад, так что, возможно, стоит проверить)

Удачи в этом! :)

person guerda    schedule 23.07.2009
comment
Хорошая ссылка, хотя я не смогу ее использовать, потому что работаю над глупой структурой, построенной поверх eclipse 3.2. - person Bill K; 27.08.2009

Я наткнулся на это, потому что хотел бы увидеть раскраску разделов в Eclipse. Представьте, что вы можете просто задать цвет фона разделам вашего кода. Разве это не сделало бы его более доступным, особенно когда вы угасли в 4 утра? :)

person arieltools    schedule 10.10.2009
comment
хорошая идея! я также хотел бы иметь возможность затенить неинтересные фрагменты кода, чтобы привлечь внимание к важным фрагментам. даже 'жирный' признак был бы хорош для этого! - person Paul Adamson; 23.12.2010

Вы можете пометить код, который хотите отформатировать, и выбрать формат, щелкнув правой кнопкой мыши в этом разделе. Это решение "белого списка", возможно, оно поможет...

person powtac    schedule 09.12.2008