#llvm #clang-format
#llvm #clang-форматирование
Вопрос:
В clang-format
документации вы можете установить параметры по умолчанию для clang-format
, создав файл с именем .clang-format
.
И синтаксис, приведенный в документе, выглядит следующим образом:
---
# We'll use defaults from the LLVM style, but with 4 columns indentation.
BasedOnStyle: LLVM
IndentWidth: 4
---
Language: Cpp
# Force pointers to the type for C .
DerivePointerAlignment: false
PointerAlignment: Left
---
Language: JavaScript
# Use 100 columns for JS.
ColumnLimit: 100
---
Language: Proto
# Don't format .proto files.
DisableFormat: true
---
Language: CSharp
# Use 100 columns for C#.
ColumnLimit: 100
...
Однако, когда я пытаюсь применить BasedOnStyle
переменную к отдельному Language
, как показано ниже:
Language: C
BasedOnStyle: LLVM
Language: Cpp
BasedOnStyle: LLVM
Language: Java
BasedOnStyle: Google
Language: JavaScript
BasedOnStyle: Google
похоже, это не работает.
Вопрос в том
- Можно ли использовать разные
BasedOnStyle
для разных языков? - Если да, то как я могу это сделать?
Ответ №1:
Кажется, что BasedOnStyle
определяет только стили для Language: Cpp
.
Это может быть показано следующей командой:
clang-format -style=llvm -dump-config
Приведенная выше команда выводит стили, которые завершаются успешно Language: Cpp
. То же самое относится и к другим значениям BasedOnStyle
.
Поэтому, если BasedOnStyle
за ним следует Language
ключ и значение, отличное от Cpp
, clang-format
произойдет сбой.
Следовательно, невозможно применять разные предопределенные стили ( LLVM
Google
, и т.д.) К разным языкам.