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

Форматировщик Eclipse С++ ставит новую строку перед идентификаторами метода

У меня возникла проблема с форматированием Eclipse. Он не будет правильно форматировать мой код при объявлении методов в объявлении класса. Он возвращает новую строку после возвращаемого типа метода.

Я уже экспортировал файл стиля xml и изучил его параметры, но ни у одного из параметров не было видимого подключения к этой проблеме, а редактор настроек в Eclipse не показывал ту же проблему, что и в нем, пример кода для метода деклараций.

Вот пример кода для того, что я хочу:

class MyClass
{
    public:
        MyClass();
        void myMethod();
};

Однако это то, что я получаю:

class MyClass
{
    public:
        MyClass();
        void
        myMethod();
};

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

Я использую версию 3.8.0. Любая помощь приветствуется.

Изменить: я удалил те исходные файлы, которые были отформатированы некорректно (после форматирования кода несколько раз безрезультатно) и заменили их на "идентичные" файлы теми же методами, одинаковой структурой и т.д. Я отформатировал код на этот раз и это сработало. Вероятно, это ошибка, но я оставляю ее на всякий случай, если кто-либо сталкивается с аналогичной проблемой или имеет решение, чтобы избежать этой проблемы в первую очередь.

4b9b3361

Ответ 1

Я вручную отредактировал два файла в главном каталоге проектов eclipse

.metadata\.plugins\org.eclipse.core.runtime\.settings

Два файла:

file 1: org.eclipse.cdt.core.prefs, change this line from "insert" to "do not insert"
 org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert


file 2: org.eclipse.cdt.ui.prefs,
scan this file for "insert_new_line_before_identifier_in_function_declaration" and make a similar change from insert to do not insert next to it, should be obvious

Примечание. Я видел эту проблему в отношении индиго и juno, описанное выше исправление находилось в juno.

Ответ 2

Если у вас есть пользовательский конфигуратор форматирования, сначала экспортируйте его (настройки > C/С++ Общие > Форматирование > Редактировать > Экспорт). Затем измените следующую строку, чтобы "не вставлять". Сохраните XML.

<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="do not insert"/>

Удалите текущую конфигурацию и импортируйте тот, который вы изменили.

Ответ 3

Особое предпочтение отдается параметрам форматирования, начиная с версии 9.8, включенной в Eclipse 2019-06.