En İyi C ++ Kod Formatlayıcı / Güzelleştirici


127

Piyasada çok sayıda kaynak kodu biçimlendirme aracı var. C ++ için en iyisi hangisi?

Komut satırı araçlarıyla veya kod giriş / çıkışını kontrol ederken, tercihen bir düzenleyici veya IDE başlatmaya gerek kalmadan otomatik olarak çalıştırılabilen diğer şeylerle ilgileniyorum.

(Beğendiğiniz yanıtın zaten bir yanıt olarak listelendiğini görürseniz, oy verin. Orada değilse ekleyin.)

Yanıtlar:


120

AStyle , C ++ ve Java (ve diğerleri de) için çok ayrıntılı olarak özelleştirilebilir

Bu bir kaynak kodu biçimlendirme aracıdır.


clang-format , en belirsiz dil yapılarını bile tutarlı bir şekilde yöneten clang derleyicisiyle birlikte gelen güçlü bir komut satırı aracıdır.

Visual Studio, Emacs, Vim (ve diğerleri) ile entegre edilebilir ve sadece seçilen satırları (veya bazı farkları biçimlendirmek için git / svn ile) biçimlendirebilir.

Burada listelenen çeşitli seçeneklerle yapılandırılabilir .

Yapılandırma dosyalarını (adlandırılmış .clang-format) kullanırken, stiller dizin başına olabilir - belirli bir dosya için ana dizinlerdeki bu tür en yakın dosya kullanılmalıdır.

Stiller bir ön ayardan (örneğin LLVM veya Google) miras alınabilir ve daha sonra farklı seçenekleri geçersiz kılabilir

Google ve diğerleri tarafından kullanılır ve üretime hazırdır.


Ayrıca UniversalIndentGUI projesine bakın . Bunu kullanarak birkaç girintiyi deneyebilirsiniz: AStyle, Uncrustify, GreatCode, ... ve sizin için en iyisini seçin. Bunlardan herhangi biri daha sonra bir komut satırından çalıştırılabilir.


Uncrustify , birçok yapılandırılabilir seçeneğe sahiptir. Yapılandırmak için muhtemelen Universal Indent GUI'ye (Konstantin'in cevabında) ihtiyacınız olacak.


1
Kodun nasıl değiştirileceğini veya kesme noktalarının nasıl ayarlanacağını anlamamızı zorlaştıran karmaşık makrolarla dolu bazı dağınık kaynak dosyalarımız var. Bunu gcc -E ile makro çözdük, bu da çok uzun satırlar iç içe geçmiş döngüler, eğer ifadeler vb. İle sonuçlandı. Astyle bunu okunabilir olacak şekilde düzelterek bizi çok fazla sorundan kurtardı. Astyle'ın yazılım araç rafımda kalıcı bir yeri var!
DarenW

8
Vim ipucu: Düzenlemekte olduğunuz bir dosyadaki kodu güzelleştirmek istiyorsanız şunu kullanın:%! Astyle
tonylo

Bu harika bir araçtır. Aynı proje üzerinde hem Windows'ta (işte) hem de Linux'ta (evde) emacs ile çalışmak zorunda olduğum her seferde astyle çalıştırıyorum. BSD stilini emacs ve astyle ile kullanıyorum (MSVC editörü ile kullandığım stile yakın) ve her zaman doğru şekilde girintili kaynak kodum var. Hatta sekme boyutundan bağımsız olarak güzel görünüyor!
Alexandre C.

1
Denedim. Hızlı sonuç almak çok kolaydır (doc iyidir). Yine de çok fazla seçenek olmaması utanç verici! Bazı programcılar kodlarını boşluklarla doldurma konusunda çok yaratıcıdır ve AStyle bu yaratıcılığın tamamını işlemez.
öfke

Maksimum çizgi genişliği seçeneği yoktur. Bu bir zorunluluk olmalı.
Sogartar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.