-
Clang-Format est un outil permettant de formatter automatiquement vos fichiers (indentation, espaces, retours à la ligne, etc). Comme le C++ est un langage avec une syntaxe un peu lourde, utiliser ce type d'outils permet de faciliter la lecture du code.
-
clang-tidy est un linter C++ extensible qui peut être utilisé pour rechercher des problèmes dans votre code et appliquer des règles de style dans votre codebase.
Pour utiliser clang-format
et clang-tidy
dans Neovim avec clangd
et le plugin CoC
(Conqueror of Completion), voici les étapes à suivre :
Prérequis
- Installer
clangd
=clang-format
+clang-tidy
:
sudo pacman -S clang
clang-tidy --version
clang-format --version
- Installer le plugin CoC pour Neovim si ce n’est pas déjà fait :
:CocInstall coc-clangd
Configuration de clang-format
- Ajouter un fichier
.clang-format
à la racine de votre projet pour configurer le style de formatage. Vous pouvez le générer par défaut :
clang-format -style=llvm -dump-config > .clang-format
Adaptez le contenu selon vos préférences.
- Configurer la commande pour auto-formater avec CoC. Ajoutez ceci dans votre fichier
init.vim
de Neovim :
autocmd BufWritePre *.cpp,*.h,*.c :silent! :CocCommand clangd.action.formatDocument
Cela va automatiquement formater le code à chaque enregistrement des fichiers .cpp
, .h
, ou .c
.
Configuration de clang-tidy
- Créer ou modifier le fichier
compile_commands.json
: clang-tidy
utilise ce fichier pour connaître les options de compilation de votre projet. Si vous utilisez CMake, générez-le avec :
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
-
Placez le fichier
compile_commands.json
à la racine de votre projet. -
Configurer
clangd
pour utiliserclang-tidy
: Ajoutez cette ligne dans votreinit.vim
pour queclangd
utilise automatiquementclang-tidy
:
let g:coc_config_home = expand('~/.config/nvim/coc-settings.json')
Ensuite, éditez le fichier coc-settings.json
(généralement dans ~/.config/nvim/
) et ajoutez :
{
"clangd.arguments": [
"--clang-tidy"
],
"clangd.semanticHighlighting": true
}
Cela permet à clangd
d'exécuter clang-tidy
pour l'analyse de code.
Utilisation
- Formatage manuel : Utilisez la commande
:CocCommand clangd.action.formatDocument
dans Neovim pour formater manuellement votre fichier. - Affichage des erreurs
clang-tidy
:clangd
avecclang-tidy
activera des diagnostics et suggestions de correction de style directement dans Neovim.
En suivant ces étapes, clang-format
formatera votre code lors de l’enregistrement, et clang-tidy
analysera votre code pour afficher des recommandations et des diagnostics directement dans Neovim via clangd
.