Настройка IndentWidth не работает в формате clang

я имею .clang-format в моем домашнем каталоге и установите Indentwidth 4 следующим образом.

BasedOnStyle:  LLVM
Standard:        Cpp11
IndentWidth:     4
TabWidth:        4
UseTab:          Never

Но когда я использую clang-format -style='~/.clang-format' a.cpp чтобы отформатировать мой код, ширина отступа становится равной 2. вроде:

// See this indent width 2. The original file has width 4,
// but clang-format changes it to width 2.
int main(int argc, char const *argv[]) {
A a;
a.bar();

Вывод clang-format —version — это

LLVM (http://llvm.org/):
LLVM version 3.4.2
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: core-avx-i

Как я могу позволить clang-форматировать мой код (.h, .c, ..) с шириной отступа 4?

6

Решение

http://clang.llvm.org/docs/ClangFormat.html

-style опция не берет путь к файлу. Принимает строку file чтобы указать использование файла в формате .clang, и он ищет этот файл в родительских каталогах обрабатываемого файла или в рабочем каталоге и его родительских каталогах при преобразовании stdin.

Вы также можете дать ему строку, которая напрямую устанавливает нужные параметры:

clang-format -style="{IndentWidth: 4,TabWidth: 4}"

Вы также можете использовать -dump-config возможность проверить конфиг.


-style='~/.clang-format'

С помощью ~ ссылка на ваш домашний каталог, как правило, зависит от оболочки. Оболочка не сделает этого за вас в аргументах, подобных этому. Так что даже если -style выбрал путь, это не привело бы к правильному пути.

9

Другие решения