2011-10-22 16 views
42

twierdzi, że jest zbudowany, między innymi, lepszą integrację z IDE przez zapewnienie API dla IDE do użycia w takich zadaniach jak parsowanie kodu.clang oparte na platformie C++ IDE? Kompilator C++ w wersji

Czy są zatem jakieś dobre IDE C++, które używają klangów do zapewniania takich cech, jak podświetlanie semantyczne, refaktoryzacja oraz znajdowanie i pokazywanie błędów semantycznych w czasie rzeczywistym?

Używam Eclipse CDT, ale jego parser C++ jest pełen niedoskonałości, które powodują, że IDE zgłasza wiele denerwujących fałszywych pozytywnych błędów w kodzie. Chciałbym mieć IDE, które zgłasza błąd, wtedy i tylko wtedy, gdy kompilator zgłosiłby ten sam błąd, stąd moje zainteresowanie IDE zbudowanym na wewnętrznych kompilatorach.

Jestem zainteresowany przede wszystkim wieloplatformowym IDE, chociaż ja nie wiedząc o nich pojedynczej platformy dla systemu Windows lub Linux (tak nie Xcode), o ile są one FOSS (kolejny powód nie Xcode).

Odpowiedz

4

wypróbowałeś clang complete?

jeśli jesteś punk rock, następnie wystarczy vim ide;)

Często pracuję z Xcode tak naprawdę ... nie można dzielić doświadczenie z pierwszej ręki, ale wiedziałem o jej istnieniu.

+0

@lurscher serdecznie zapraszamy - zamierzam również spróbować zrobić to w ten weekend. – justin

15

Qt Creator jest oparcie ich analizowania kodu Next-Gen i powiązanych funkcjonalności na Clang:

http://blog.qt.digia.com/blog/2011/10/19/qt-creator-and-clang/

Wygląda bardzo obiecująco!

+0

Niezły chwyt! Właśnie ogłosiłem to kilka dni temu. – HighCommander4

+1

HighCommander4: pomaga, jeśli jesteś na liście mailingowej Clang ;-) – rubenvb

+0

Miałem trochę nadziei, że będzie więcej ... ale myślę, że klang jest dość młodym projektem, a więcej pojawi się na czas. Na razie odpowiedź została zaakceptowana :) – HighCommander4

3

Wygląda na to, że CodeLite v3.5 starts obsługuje Clang natywnie. Jednak nie znalazłem jest możliwe, aby ustawić LLVM jako backend.

+0

I wydaje się (10 minut testowania) do pracy ... – g2mk

+0

niesamowite !! proszę nie powstrzymywać się od aktualizacji tej odpowiedzi, jeśli napotkasz problemy – lurscher

1

Nie FOSS, ale JetBrains (z pomysłem i Resharper FAME) buduje się ich produkt AppCode w full C++ IDE supporting Win/Linux/Mac and using clang.

Yes, really.

+0

Czy masz jakieś dowody, że jest to oparte na klangach, nie będąc zintegrowanym z statycznym analizatorem klang? – HighCommander4

+0

Nie wiem, czy używa on klangów lub odskakuje na toolchain platformy dla rzeczywistej kompilacji, ale nie o to chodziło w oryginalnym pytaniu. Jestem pewien, że użyje klangu do wszystkiego innego - do tego przeznaczono klang, a nie jest tak, jakby istniały jakieś realne alternatywy. – mrec

+0

Miałem na myśli funkcje, takie jak uzupełnianie kodu, nawigacja kodu, podświetlanie składni i refaktoryzacja zasilana przez klang. Nie dotyczy to żadnego z innych IDE C++, które znam - Eclipse, Code :: Blocks, CodeLite, NetBeans, KDevelop, Qt Creator - z wyjątkiem XCode i twórcy Qt nowej generacji, o którym mówił @rubenvb, więc to jest dlaczego zapytałem. – HighCommander4

3

KDevelop ma teraz wsparcie oparte na cl i C++, w tym analizę semantyczną i autouzupełnianie. Dotyczy to głównie Linuksa, ale od października 2016 r. Ma wersję beta dla systemów Windows i Mac.

Dla emacs są irony-mode i rtags, które zapewniają funkcje, takie jak autouzupełnianie, sprawdzanie błędów latania i przeskakiwanie do symbolu. W połączeniu z cmake-ide są bardzo potężnymi narzędziami, a jeden dobrze zorientowany w emacs może być wysoce produktywny w tym środowisku.

3

Odpowiednia nowość w tym obszarze w projekcie Language Server Protocol (LSP), który ma na celu być agronomicznym językowo interfejsem API, który umożliwia oddzielenie edytorów/IDE od backendów udostępniających analizę/analizę kodu.

Trwają prace nad stworzeniem zaplecza C++ opartego na kliencie o nazwie Clangd.

Trwają również prace nad several editors/IDEs w celu obsługi LSP jako klienta.

Po dojściu do implementacji backendu, wszyscy redaktorzy wspierający LSP będą mogli w zasadzie wykorzystać możliwości klangów jako udostępnione przez Clangd.