Форматировщик кода вставляет новую строку между идентификатором типа и функции, когда я этого не хочу - PullRequest
0 голосов
/ 16 апреля 2020

Использование Ubuntu 16.04, Nsight Eclipse 10.4, Eclipse C / C ++ Tools Tools 8.4.0.nvidia-qualifier.

Работа с кодом C ++.

Цель

I создали новый профиль для кодировщика кода . Предполагаемый результат правильно воспроизводится самой IDE («Окно»> «Установки»> C / C ++> «Стиль кода»> «Форматтер»)

enter image description here

Результат

Однако, когда я соответствующим образом форматирую исходный код, например, с помощью Ctrl + Shift + F , сигнатура функции разделяется в две строки. Это показано ниже в строках 30 и 31. Это нежелательно, поскольку пользовательский стиль стремится вернуть формат, совместимый с удаленным репозиторием. Код компилируется, но добавление новых строк усложняет сравнение с другими ветвями.

enter image description here

Исследования

Я экспортировал новую политика форматирования как xml документ , и единственная инструкция, содержащая ключевое слово 'function':

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

, что мне и нужно. Таким образом, похоже, что IDE игнорирует / возвращает инструкцию, заданную в момент ее чтения и / или применения.

В далеком 2017 , другой OP сообщил о подобном трудности в Eclipse / nsight formatter не учитывает политику отступа тела функции

В далеком 2012 очень похожая проблема возникла для Eclipse C ++ formatter новая строка перед идентификаторами метода ; однако приведенные там советы не работают для меня (возможно, из-за того, что пути за это время изменились?)

Сравнение

После публикации я также понял, что такое же несоответствие возникает для всех встроенных стили кода (BSD / Allman, K & R, Gnu, Whitesmiths). Так что эта проблема не связана строго с пользовательскими стилями.

Вопрос

Есть ли еще что-то, на что я должен обратить внимание? Есть ли обходной путь, чтобы это исправить?

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