Название: ClangFormat Отправлено: ViTech от Апрель 17, 2019, 19:45 В Qt Creator добавили плагин ClangFormat (https://blog.qt.io/blog/2019/04/17/clangformat-plugin-qt-creator-4-9/). Это дело хорошее. Но есть у меня сторонний вопрос по самой утилите ClangFormat. Судя по её опциям командной строки (https://clang.llvm.org/docs/ClangFormat.html) файл конфигурации стиля должен называться .clang-format или _clang-format, и располагаться в одной из родительских директорий форматируемого файла. Насколько я понял, нельзя в опциях утилиты задать файл конфигурации с произвольным именем из произвольной директории. Кто-нибудь в курсе, в чём сакральный смысл такого ограничения?
Название: Re: ClangFormat Отправлено: lit-uriy от Апрель 18, 2019, 06:54 >>and using clang-format -style=file
вроде файл указать можно Название: Re: ClangFormat Отправлено: ViTech от Апрель 18, 2019, 10:18 >>and using clang-format -style=file вроде файл указать можно Я тоже так сначала подумал (и не я один (https://stackoverflow.com/questions/46373858/how-do-i-specify-a-clang-format-file)), когда мельком просмотрел опции :). Только файл этот: ".clang-format file located in one of the parent directories of the source file". Вот мне и интересно, почему нет опции, в которой можно указать произвольный файл конфигурации. Название: Re: ClangFormat Отправлено: lit-uriy от Апрель 18, 2019, 12:15 а пробовал указать путь к файлу, пусть даже с предопределённым расширением?
Название: Re: ClangFormat Отправлено: lit-uriy от Апрель 18, 2019, 12:17 там, по ссылке есть такое:
Цитировать The correct usage for your example would be: Код
Название: Re: ClangFormat Отправлено: ViTech от Апрель 18, 2019, 12:40 там, по ссылке есть такое: Цитировать The correct usage for your example would be: Код
Нет, по ссылке там такое: Цитировать The correct usage for your example would be: Код
Предложения лучше целиком читать, а не вырезать куски из контекста :). В этом ответе (https://stackoverflow.com/a/46374122) подробно описано, как работает опция -style. Меня же больше интересует, почему она работает именно так. Название: Re: ClangFormat Отправлено: ViTech от Апрель 23, 2019, 17:00 Для сравнения, как может выглядеть указание|поиск файла конфигурации здорового человека (не курильщика).
cmake-format (https://github.com/cheshirekow/cmake_format#usage): Цитировать cmake-format [-h] [--dump-config {yaml,json,python} | -i | -o OUTFILE_PATH] [-c CONFIG_FILE] infilepath [infilepath ...] Parse cmake listfiles and format them nicely. Formatting is configurable by providing a configuration file. The configuration file can be in json, yaml, or python format. If no configuration file is specified on the command line, cmake-format will attempt to find a suitable configuration for each ``inputpath`` by checking recursively checking it's parent directory up to the root of the filesystem. It will return the first file it finds with a filename that matches '\.?cmake-format(.yaml|.json|.py)'. Название: Re: ClangFormat Отправлено: kambala от Апрель 29, 2019, 16:41 так можно ж достаточно легко симулировать чтение настроек из произвольного файла с помощью прямой передачи настроек в виде строки (см. конец)
Код: -style=<string> - Coding style, currently supports: Название: Re: ClangFormat Отправлено: ViTech от Апрель 29, 2019, 18:48 так можно ж достаточно легко симулировать чтение настроек из произвольного файла с помощью прямой передачи настроек в виде строки (см. конец) Такой способ мне трудно всерьёз воспринимать, и тогда ещё больше вопросов появляется :). Например, как много людей предпочитают перечислять настройки в командной строке, вместо указания файла с ними? Сейчас в clang-format порядка 120 опций, даже если из них 10 изменить, то уже длинная строка получится. Для сравнения, в uncrustify (https://github.com/uncrustify/uncrustify) порядка 660 опций, из них у меня изменены 191. Не хотелось бы мне их в командной строке писать, будь у автора uncrustify такая же логика :). И при симуляции чтения из файла его нужно обрабатывать: перевод строки менять на ','. Мне кажется не очень правильным заставлять пользователей утилиты такой фигнёй заниматься :). Название: Re: ClangFormat Отправлено: kambala от Апрель 30, 2019, 00:17 не лучший способ, не спорю, но решает задачу в заданных рамках :)
файл же превращается в строку грубо через file.readAll().split("\n").join(", "), если там нет комментариев и мультиязычности...) Название: Re: ClangFormat Отправлено: ViTech от Апрель 30, 2019, 10:51 не лучший способ, не спорю, но решает задачу в заданных рамках :) Если такой способ добавили, значит кому-то он нужен. Тогда получается, что чтение настроек из заданного файла мало кому нужно? :) Особенно учитывая, что функционал чтения из файла (.clang-format) есть, для произвольного осталось только опцию добавить. Для меня это странно. Хотя может я какую тенденцию упускаю. Например, по захламлению корневого каталога проекта :). |