ClangFormat adalah salah satu alat terbaik untuk memformat kode sumber secara otomatis dalam C, C ++, Java, JavaScript, Objective-C, C #. Ada plugin untuk lingkungan pengembangan populer (IDE), tetapi sering kali Anda perlu memformat file atau bagian dari file sumber dengan cepat tanpa meluncurkan IDE yang rumit, bereksperimen dengan pengaturan format dan berbagai versi ClangFormat dengan kemampuan untuk cepat membatalkan perubahan. Menggunakan versi konsol ClangFormat untuk tujuan ini tidak nyaman. Solusi yang mungkin adalah dengan menelepon ClangFormat dari editor teks. Situs 
web resmi menjelaskan metode integrasi dengan Vim, Emacs dan beberapa lainnya, tetapi tidak ada informasi tentang integrasi dengan Notepad ++. Berikut ini adalah instruksi sederhana untuk Notepad ++ (untuk Windows).
Persyaratan awal
- memformat file yang dibuka di Notepad ++ dengan ClangFormat;
- memformat fragmen yang dipilih dalam file;
- buang perubahan;
- beralih format (set aturan);
- Beralih ke versi lain dari ClangFormat
- gunakan alat standar bila memungkinkan, tanpa membangun kembali ClangFormat dan tanpa menulis plugin baru untuk Notepad ++.
Instalasi dan pengaturan
1. Jika Notepad ++ belum diinstal, unduh dan instal
https://notepad-plus-plus.org2. Di Notepad ++ instal plugin NppExec
NppExec memungkinkan Anda memanggil aplikasi pihak ketiga dari Notepad ++ dan berinteraksi dengan komponen pustaka Scintilla, tempat Notepad ++ ditulis.
Plugins –> Plugin Admin... –> NppExec –> InstallNotepad ++ akan restart, setelah itu 
<Notepad++>/plugins/NppExec/ dan 
Plugins –> NppExec item menu 
Plugins –> NppExec akan 
Plugins –> NppExec3. Unduh ClangFormat yang dapat dieksekusi
Untuk melakukan ini, pada halaman 
https://llvm.org/builds/ kami menemukan dan mengunduh file instalasi untuk Windows, misalnya 
LLVM-XXX-rYYYYYY-win64.exe . Anda tidak dapat menginstal seluruh paket, cukup ekstrak file 
clang-format.exe oleh 
clang-format.exe . Anda dapat menggunakan 7-zip: hapus ekstensi 
.exe dari 
.exe , buka file dengan 7-zip dan ekstrak 
clang-format.exe dari 
bin/ subdirektori. Kami 
clang-format.exe di 
clang-format.exe <Notepad++>/plugins/NppExec/clang-format/ .
4. Tambahkan file konfigurasi untuk ClangFormat
File konfigurasi harus dinamai 
.clang-format atau 
_clang-format . Mereka berisi seperangkat aturan pemformatan (gaya), format yang dijelaskan dalam panduan 
Opsi Gaya ClangFormat .
Sebagai contoh, kami menggunakan file dari proyek 
Linux Kernel dan 
Qt .
.clang-format diunduh dari GitHub ditempatkan di direktori yang sesuai:
<Notepad++>/plugins/NppExec/clang-format/LINUX_KERNEL/
<Notepad++>/plugins/NppExec/clang-format/QT/5. Buat skrip untuk NppExec
Buka jendela untuk mengedit dan menjalankan skrip NppExec 
Plugins –> NppExec –> Execute... atau tekan 
F6 . Salin dan tempel teks skrip di bawah ini ke dalam jendela dan simpan skrip yang disebut 
clang-format dengan tombol 
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)" 
 Setelah memulai skrip, berdasarkan gaya pemformatan terpilih yang ditentukan dalam variabel 
style , memilih file 
.clang-format diinginkan, memeriksa tanggal perubahannya dan, jika perlu, menyalinnya ke direktori sementara. Di sana, fragmen yang dipilih dari kode sumber disalin ke file sementara, setelah 
clang-format.exe . Fragmen yang diformat disalin kembali ke jendela Notepad ++. Kemudian file sementara dihapus.
Di ClangFormat tidak ada cara untuk menentukan path ke file konfigurasi 
.clang-format . ClangFormat akan mencarinya di direktori file yang diformat dan, jika tidak menemukannya, ia akan mencari di direktori induk. Setelah skrip 
.clang-format file 
.clang-format akan tetap berada di direktori sementara agar tidak menyalinnya setiap kali pemformatan dimulai.
Pada semua tahap skrip, kesalahan diperiksa, dan ketika terjadi, jendela konsol NppExec terbuka, di mana pesan ditampilkan.
6. Di Notepad ++, tambahkan item menu baru untuk menjalankan skrip
Buka 
Plugins –> NppExec –> Advanced Options... , dalam daftar drop-down 
Associated script , pilih nama skrip 
clang-format dan klik pada tombol 
Add/Modify .
Kami me-restart Notepad ++, setelah itu item menu 
Plugins –> NppExec –> clang-format akan muncul.

7. Di Notepad ++, konfigurasikan pintasan keyboard untuk menjalankan skrip
Kami akan menggunakan kombinasi 
Ctrl + I dengan analogi dengan QtCreator. Buka 
Settings –> Shortcut Mapper .
Secara default, kombinasi 
Ctrl + I sibuk, jadi Anda harus melepaskannya dengan tombol 
Clear di tab 
Main Menu (baris 38 
Split Lines dalam Notepad ++ versi saat ini). Setelah itu, di tab 
Plugin commands , tetapkan kombinasi 
Ctrl + I ke skrip 
clang-format .
Selesai, kita bisa menggunakannya!
Instruksi untuk digunakan
Buka file sumber di Notepad ++, pilih fragmen yang diinginkan atau semua teks dan tekan 
Ctrl + I Jika tidak ada yang dipilih, baris saat ini akan diformat.

Untuk membatalkan perubahan, gunakan alat editor standar ( 
Ctrl + Z ).
Untuk mengubah aturan pemformatan, edit file konfigurasi 
.clang-format di direktori 
<Notepad++>/plugins/NppExec/clang-format/Jika Anda perlu menggunakan versi lain dari ClangFormat, maka ubah jalur ke file yang dapat dieksekusi dalam skrip
set clangformat = "\path\to\clang-format.exe"Untuk memilih gaya pemformatan yang berbeda, tekan 
F6 dan dalam teks skrip 
clang-format pilih gaya yang diinginkan dengan menghapus komentar salah satu baris
set style = STYLE_NAME .
Semua file yang diperlukan ada di 
arsip .
Pemformatan bagus!