Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Так как eclipse 3.5 (или 3.6) это возможно: - Перейти к свойствам проекта - Java Code Style - Formatter - Изменить... - выберите вкладку с надписью "Выкл./Вкл. теги", - включить теги в комментарии в исходном коде, например

/* @formatter:on */

Ответ 2

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

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);
    }
}

Ответ 3

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

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

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

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

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

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

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

Ответ 4

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

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

Нажмите кнопку "Изменить..."

Нажмите вкладку "Линейная упаковка"

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

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

Ответ 5

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

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

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

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

Ответ 6

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

Ответ 7

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