ClangFormat est l'un des meilleurs outils pour formater automatiquement les codes source en C, C ++, Java, JavaScript, Objective-C, C #. Il existe des plugins pour les environnements de développement populaires (IDE), mais souvent vous devez formater rapidement un fichier ou une partie d'un fichier source sans exécuter un IDE encombrant, expérimenter avec des options de formatage et différentes versions de ClangFormat avec la possibilité d'annuler rapidement les modifications. L'utilisation de la version console de ClangFormat à cette fin n'est pas pratique. Une solution possible consiste à appeler ClangFormat à partir d'un éditeur de texte. Le 
site officiel décrit les méthodes d'intégration avec Vim, Emacs et quelques autres, mais il n'y a aucune information sur l'intégration avec Notepad ++. Ce qui suit est une instruction simple pour Notepad ++ (pour Windows).
Exigences initiales
- formatage d'un fichier ouvert dans Notepad ++ avec ClangFormat;
- formater le fragment sélectionné dans le fichier;
- ignorer les modifications;
- changement de style (ensemble de rĂšgles) formatage;
- Passer Ă  une autre version de ClangFormat
- utilisez des outils standard dans la mesure du possible, sans reconstruire ClangFormat et sans écrire un nouveau plugin pour Notepad ++.
Installation et configuration
1. Si Notepad ++ n'est pas déjà installé, téléchargez-le et installez-le
https://notepad-plus-plus.org2. Dans Notepad ++ installez le plugin NppExec
NppExec vous permet d'appeler des applications tierces à partir de Notepad ++ et d'interagir avec les composants de la bibliothÚque Scintilla, sur la base desquels Notepad ++ est écrit.
Plugins â> Plugin Admin... â> NppExec â> InstallNotepad ++ redĂ©marrera, aprĂšs quoi le 
<Notepad++>/plugins/NppExec/ et l'élément de menu 
Plugins â> NppExec3. TĂ©lĂ©chargez l'exĂ©cutable ClangFormat
Pour ce faire, sur la page 
https://llvm.org/builds/ nous trouvons et téléchargeons le fichier d'installation pour Windows, par exemple 
LLVM-XXX-rYYYYYY-win64.exe . Vous ne pouvez pas installer le package complet, il suffit d'extraire le fichier 
clang-format.exe par 
clang-format.exe . Vous pouvez utiliser 7-zip: supprimez l'extension 
.exe du 
.exe , ouvrez le fichier avec 7-zip et extrayez 
clang-format.exe du sous 
bin/ répertoire 
bin/ . Nous 
clang-format.exe dans le 
clang-format.exe <Notepad++>/plugins/NppExec/clang-format/ .
4. Ajouter des fichiers de configuration pour ClangFormat
Les fichiers de configuration doivent ĂȘtre nommĂ©s 
.clang-format _clang-format ou au 
.clang-format _clang-format . Ils contiennent un ensemble de rÚgles de mise en forme (styles), dont le format est décrit dans le guide 
Options de style de ClangFormat .
Par exemple, nous utilisons des fichiers des projets 
Linux Kernel et 
Qt .
Les fichiers au 
.clang-format téléchargés depuis GitHub sont placés dans les répertoires appropriés:
<Notepad++>/plugins/NppExec/clang-format/LINUX_KERNEL/
<Notepad++>/plugins/NppExec/clang-format/QT/5. Créez un script pour NppExec
Ouvrez la fenĂȘtre de modification et d'exĂ©cution des scripts 
Plugins â> NppExec â> Execute... NppExec 
Plugins â> NppExec â> Execute... ou appuyez sur 
F6 . Copiez et collez le texte du script ci-dessous dans la fenĂȘtre et enregistrez le script appelĂ© 
clang-format avec le bouton 
Save...Script NppExec // Hide console NPP_CONSOLE 0 //------------------------------------------------------------------------------ // Uncomment a line to select a style //set style = LINUX_KERNEL set style = QT //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ set clangformatexe = $(CWD)\plugins\NppExec\clang-format\clang-format.exe set clangformatcfgdir = $(CWD)\plugins\NppExec\clang-format set tmpdir = $(SYS.TEMP) set clangformatcfgfile = $(clangformatcfgdir)\$(style)\.clang-format set srcfiletmp = $(tmpdir)\~src.tmp //------------------------------------------------------------------------------ cmd.exe /c if exist "$(clangformatexe)" (exit 0) else (exit 1) if $(EXITCODE) != 0 then NPP_CONSOLE 1 echo ERROR: "$(clangformatexe)" not found exit endif cmd.exe /c if exist "$(clangformatcfgfile)" (exit 0) else (exit 1) if $(EXITCODE) != 0 then NPP_CONSOLE 1 echo ERROR: "$(clangformatcfgfile)" not found exit endif // Copy $(clangformatcfgfile) to $(tmpdir)\.clang-format if their temestamps are different cmd.exe /v /c " for %i in ("$(clangformatcfgfile)") do set date1="%~ti" && for %i in ("$(tmpdir)\.clang-format") do set date2="%~ti" && if not "!date1!"=="!date2!" ( echo !date1! != !date2! && echo COPYING $(clangformatcfgfile) to $(tmpdir)\ && copy "$(clangformatcfgfile)" "$(tmpdir)\" /Y )" if $(EXITCODE) != 0 then NPP_CONSOLE 1 echo ERROR copying "$(clangformatcfgfile)" to "$(tmpdir)" exit endif // Get selected text length sci_sendmsg SCI_GETSELTEXT // If nothing is selected - select the current line if $(MSG_RESULT) == 1 then sci_sendmsg SCI_VCHOMEWRAP sci_sendmsg SCI_LINEENDWRAPEXTEND endif // Save selected text to $(srcfiletmp) sel_saveto "$(srcfiletmp)" :a cmd.exe /c if exist "$(srcfiletmp)" (exit 0) else (exit 1) if $(EXITCODE) != 0 then NPP_CONSOLE 1 echo ERROR: "$(srcfiletmp)" not found exit endif // Run ClangFormat $(clangformatexe) -i -style=file "$(srcfiletmp)" if $(EXITCODE) != 0 then NPP_CONSOLE 1 echo ERROR running "$(clangformatexe)" exit endif // Replace selected text with $(srcfiletmp) sel_loadfrom "$(srcfiletmp)" // Delete $(srcfiletmp) file cmd.exe /c del "$(srcfiletmp)" 
 AprÚs avoir démarré le script, en fonction du style de mise en forme sélectionné spécifié dans la variable de 
style , sélectionne le fichier au 
.clang-format souhaité, vérifie la date de sa modification et, si nécessaire, le copie dans un répertoire temporaire. Là, le fragment sélectionné du code source est copié dans le fichier temporaire, aprÚs quoi 
clang-format.exe . Le fragment formatĂ© est recopiĂ© dans la fenĂȘtre Notepad ++. Ensuite, le fichier temporaire est supprimĂ©.
Dans ClangFormat, il n'y a aucun moyen de spécifier le chemin d'accÚs au fichier de configuration au 
.clang-format . ClangFormat le recherchera dans le répertoire du fichier formaté et, s'il ne le trouve pas, il ira le chercher dans les répertoires parents. Une fois le script 
.clang-format fichier au 
.clang-format restera dans le répertoire temporaire afin de ne pas le copier à chaque démarrage du formatage.
Ă toutes les Ă©tapes du script, les erreurs sont vĂ©rifiĂ©es et lorsqu'elles se produisent, la fenĂȘtre de la console NppExec s'ouvre, dans laquelle un message s'affiche.
6. Dans Notepad ++, ajoutez un nouvel élément de menu pour exécuter le script
Ouvrez 
Plugins â> NppExec â> Advanced Options... , dans la liste dĂ©roulante 
Associated script , sélectionnez le nom du script au 
clang-format et cliquez sur le bouton 
Add/Modify .
Nous redémarrons Notepad ++, aprÚs quoi l'élément de menu 
Plugins â> NppExec â> clang-format apparaĂźtra.

7. Dans Notepad ++, configurez le raccourci clavier pour exécuter le script
Nous utiliserons la combinaison 
Ctrl + I par analogie avec QtCreator. Ouvrez 
Settings â> Shortcut Mapper .
Par défaut, la combinaison 
Ctrl + I occupée, vous devez donc la libérer avec le bouton 
Clear dans l'onglet 
Main Menu (ligne 38 
Split Lines de 
Split Lines dans la version actuelle de Notepad ++). AprĂšs cela, dans l'onglet 
Plugin commands du 
Plugin commands , affectez la combinaison 
Ctrl + I au script au 
clang-format .
Terminé, nous pouvons l'utiliser!
Instruction d'utilisation
Ouvrez le fichier source dans Notepad ++, sélectionnez le fragment souhaité ou tout le texte et appuyez sur 
Ctrl + I Si rien n'est sélectionné, la ligne actuelle sera formatée.

Pour annuler les modifications, utilisez les outils d'édition standard ( 
Ctrl + Z ).
Pour modifier les rĂšgles de formatage, modifiez les fichiers de configuration au 
.clang-format dans le répertoire 
<Notepad++>/plugins/NppExec/clang-format/Si vous devez utiliser une autre version de ClangFormat, modifiez le chemin d'accÚs au fichier exécutable dans le script
set clangformat = "\path\to\clang-format.exe"Pour sélectionner un style de mise en forme différent, appuyez sur 
F6 et dans le texte du script au 
clang-format sélectionnez le style souhaité en décommentant l'une des lignes
set style = STYLE_NAME .
Tous les fichiers nécessaires sont dans l' 
archive .
Bon formatage!