Как я могу настроить формат clang без файла формата .clang в каждой рабочей области?

Я хочу настроить clang-формат без необходимости копировать мой .clang-format файл в каждую новую рабочую область.

В моем settings.json сейчас есть

"C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 4, IndentCaseLabels: false, TabWidth: 4, UseTab: ForIndentation, ColumnLimit: 0}",
"C_Cpp.clang_format_fallbackStyle": "Google"

В описании C_Cpp.clang_format_style говорится

Стиль кодирования, в настоящее время поддерживает: Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit. Используйте «файл» для загрузки стиля из файла формата .clang в текущий или родительский каталог. Используйте "{key: value, ...}" для установки определенных параметров, например: "{BasedOnStyle: LLVM, IndentWidth: 8}"

Это заставило меня подумать, что мой подход сработает, но это не так. Когда я использую автоматический формат, он всегда использует fallbackStyle Google.

Это просто невозможно или я здесь что-то не так делаю?


person Christoph S.    schedule 02.11.2016    source источник
comment
Чтобы запустить clang-format, я примерно сделал следующее (из головы, надеюсь, не слишком ошибочно): я установил и активировал (!) Расширение Clang-Format с помощью xaver, а затем настроил его как "clang-format.style": "{BasedOnStyle: LLVM, IndentWidth: 2, Standard: Cpp11}".   -  person rknuus    schedule 23.02.2017
comment
форматтер будет подниматься в файловой системе до тех пор, пока не найдет .clag-format или _clang.format в каком-либо каталоге-предке. Вы можете поместить этот файл в каталог $ HOME, и каждый проект будет его использовать.   -  person barsan-md    schedule 25.04.2018


Ответы (2)


У меня была такая же проблема, и я обнаружил, что ваш подход использует (я изменил только форматирование)

"C_Cpp.clang_format_style": "{BasedOnStyle: Google, 
IndentWidth: 4, 
IndentCaseLabels: false, 
TabWidth: 4, UseTab: ForIndentation, 
ColumnLimit: 0}",

работает.

person joelfischerr    schedule 23.05.2018
comment
Мне пришлось сослаться на где найти файл настроек, чтобы сделать использование этого. - person Wyck; 08.08.2019

Документация для clang-format -style=file несколько вводит в заблуждение.

Вам необходимо определить следующее в вашем settings.json (рабочем или глобальном)

{
   "C_Cpp.clang_format_style": "file",
}

Поскольку файл - это не путь к нужному файлу, а скорее указывает clang-format использовать .clang-format файл, который он может найти по локальному пути - до конца (cd .., пока он не найдет его).

Если дело касается собственного clang-format расширения VSCode C ++, оно находится в папке расширений VSCode.

Это должно заставить clang-format идти cd .., пока он не найдет .clang-format` в вашей папке кода (если он существует).

person Shahar Hadas    schedule 08.04.2020