clang-format -style = файл не работает в Ubuntu 18.04 - PullRequest
2 голосов
/ 25 февраля 2020

Я нахожусь на Ubuntu 18.04 с clang-форматом 9.

Я прочитал документацию clang-формат , где написано:

clang -format поддерживает два способа предоставления пользовательских опций стиля: непосредственно укажите конфигурацию стиля в опции командной строки -style = или используйте -style = file и поместите конфигурацию стиля в файл .clang-format или _clang-format в каталог проекта.

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

Независимо от того, как я создаю файл .clang_format (я пробовал с clang-format -style=google -dump-config > .clang_format) или где я его положил , если я выполню clang-format -style=file <file>, он ничего не отформатирует.

Кто-нибудь с такой же проблемой?

Например, если у меня есть файл hello.cpp:

#include <stdio>

std::string s=" VERY BAD"
"FORMATTING";

int   main()   {
  std::cout<< "Hello world!"<<'\n';
  return 0;


}

Если я запускаю:

$ clang-format -style=mozilla -dump-config > .clang_format

и даже если я не редактирую файл .clang_format, тогда

$ clang-format -style=file hello.cpp

вместо стандартного стиля форматирования LLVM я получаю вместо стиль Mozilla:

#include <stdio>

std::string s = " VERY BAD"
                "FORMATTING";

int main() {
  std::cout << "Hello world!" << '\n';
  return 0;
}

, но если я запускаю $ clang-format -style=mozilla hello.cpp, тогда я получаю

#include <stdio>

std::string s = " VERY BAD"
                "FORMATTING";

int
main()
{
  std::cout << "Hello world!" << '\n';
  return 0;
}

, и то же самое происходит, если я перемещаю ранее сгенерированный .clang_format в родительский каталог каталог hello.cpp.

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

Кто-нибудь с той же проблемой?

Могу ли я получить какая-то запись в формате clang?

SOLUTION :

имя файла должно быть .clang-format, а не .clang_format!

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Я создал файл конфигурации с неправильным именем.

Он должен иметь имя .clang-format, а не .clang_format.

0 голосов
/ 25 февраля 2020

clang-format -i <file> достаточно, если вы поместили файл в формате .clang в проект root. -i означает на месте. Вставленные команды должны выводить отформатированный файл на стандартный вывод. Причина этого в том, что формат clang не изменит ваш файл по умолчанию. Поначалу это выглядит странно для форматера, но, на мой взгляд, это хорошая мера безопасности.

...