Как я могу заставить автоформатор eclipse игнорировать часть кода? - PullRequest
40 голосов
/ 09 декабря 2008

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

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

Ответы [ 7 ]

59 голосов
/ 27 июля 2010

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

/* @formatter:on */
9 голосов
/ 15 ноября 2013

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

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);
    }
}
2 голосов
/ 09 декабря 2008

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

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

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

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

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

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

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

1 голос
/ 10 октября 2009

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

1 голос
/ 23 июля 2009

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

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

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

Удачи с этим! :)

1 голос
/ 10 декабря 2008

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

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

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

Нажмите вкладку «Перенос строки»

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

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

0 голосов
/ 09 декабря 2008

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

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