Я хотел бы форматировать свой код, используя clang-format в CLion. Я прошел через настройки и не нашел никаких параметров, которые позволили бы мне запустить внешнюю команду для преобразования кода. Как обычно делаются такие вещи в CLion?
Использование clang-format в CLion
Ответ 1
Вы можете использовать внешние инструменты в CLion.
Перейдите к File->Settings->Tools->External Tools и щелкните знак плюса.
Должно появиться окно. Используйте имя по вашему выбору.
Для вкладки Tool settings я использую эту конфигурацию:
-
Программа:
clang-format-3.7(здесь вы должны использовать имя своего исполняемого файла) -
Параметры:
-i $FileName$ -
Рабочий каталог:
$FileDir$
Теперь, когда ваш файл открыт, вы можете перейти на Tools->External tools и запустить приведенную выше конфигурацию. Он в основном называет clang-format и делает форматирование inplace.
Вы также можете настроить для него настраиваемую раскладку клавиатуры, просто найдите имя своего внешнего инструмента в меню "Настройки".
Ответ 2
Последняя версия CLion 2019.1 имеет встроенную поддержку ClangFormat.
Для предыдущей версии перейдите в File->Preferences->Plugins и найдите ClangFormatIJ. Установите этот плагин.
Он устанавливает контекстное меню для вызова локально установленного clang-format для файла или для выбора. Он также установил комбинацию клавиш для действия "Переформатировать текущий оператор в формате clang".
Эта опция хорошо работает для меня в CLion 218.3, однако она может быть включена и в более раннюю версию.
Ответ 3
Предыдущие ответы работают хорошо, но не позволяют выполнять формат clang при сохранении без использования обходных путей, которые не работают с плагином эмуляции Vim, который я использую.
Вот решение, которое выполняет clang-формат при сохранении и хорошо работает в любой ситуации, с которой я столкнулся.
- Сначала вам нужно установить плагин
File Watchers. - Оттуда вам нужно перейти в
File->Settings->Tools->File Watchersи создать собственный шаблон![Creating a new file watcher in the clion settings panel]()
-
Я использую следующие настройки для выполнения
clang-formatпри сохранении одного из открытых файлов. Вы можете настроить эти параметры в соответствии с вашими потребностями![My clang-format file watcher settings]()
- Например, если вы хотите выполнять
clang-formatавтоматически при каждом изменении файла (без необходимости сохранения), вы можете включитьAdvanced Options->Auto-save edited files to trigger the watcher
- Например, если вы хотите выполнять
Документация для плагина File Watchers: https://www.jetbrains.com/help/clion/using-File-watchers.html
Ответ 4
Начиная с CLion 191 EAP ClangFormat поддерживается из коробки.

