Wie kann die Fehlerhighlighting (rote Welle unter dem Code) für C ++ 11-Zyklus-Bereich-basierte Operatoren deaktiviert werden?
%Vor% Die Hover-Eingabeaufforderung zeigt "Unerwartetes Token :
" an. Der Code kompiliert perfekt.
Ein weiteres Problem - die automatische Vervollständigung zeigt unique_ptr
in std::
namespace nicht an, kompiliert jedoch OK.
Wenn Sie in C ++ 11 schreiben, sollten Sie von der Verwendung von QT Creator als IDE zur Verwendung von Eclipse CDT wechseln. Zumindest habe ich so dieses Problem gelöst. QT Creator scheint keine Möglichkeit zu haben, diese Syntaxprüfung in Echtzeit anzupassen. Eclipse dagegen ist in dieser Hinsicht weitgehend anpassbar.
Update: Ich denke, dass QtCreator seine Unterstützung für neuere Versionen von C ++ verbessert hat, seit diese Antwort gegeben wurde, also ist es nicht mehr korrekt. Ich kann es nicht löschen, da es eine akzeptierte Antwort ist.
Ich verstehe die Argumentationslinie in Andrews Antwort nicht. Warum sollte eine Anpassung der Syntax sinnvoll sein? Die Syntax ist entweder korrekt, wenn der Kontext von der Compilerbefehlszeile festgelegt wird, oder sie ist falsch. Wenn es falsch ist, sollte es als solches gekennzeichnet werden, wenn nicht, nicht. Wenn korrekter Code als falsch markiert wird, handelt es sich um einen Fehler oder zumindest um ein nicht unterstütztes Feature in der IDE, und es bedarf einer Korrektur, nicht einer "Anpassung".
Nachdem das gesagt wurde, das zitierte Beispiel
%Vor%funktioniert hier gut (ziemlich neuer Build vom Masterzweig).
Zum anderen Kommentar zu Kate: Kates Syntaxhervorhebung wird von Qt Creator als Fallback in Fällen verwendet, in denen es keine spezifischere Syntaxhervorhebung für eine Datei gibt. Im Fall von C ++ (98/03/11) wird ein echtes Codemodell verwendet, nicht Kates Definitionen.
Es gibt "Syntax Highlighting" (Färbung) und es gibt "Syntaxprüfung" (wellige Unterstreichungen). Die Syntaxfarbe scheint mit Kate in Zusammenhang zu stehen, wie @Koying andeutet. Sie können die Farben ändern und sie ausschalten. Ab Qt Creator 2.5.0 scheint es kein Problem mit meisten C ++ 11 Beispielen zu geben, die ich aus dem Internet einfügen möchte, obwohl Ihr Beispiel tatsächlich immer noch die Unterstreichung aufweist:
Zum Zeitpunkt des Schreibens (13. Juni 2012, etwa einen Monat nach der Veröffentlichung) ist das neueste integrierte SDK-Paket leider immer noch Qt Creator 2.4.1 installiert. : - /
Wenn dies das Boot ist, in dem jemand ist und das Neueste versuchen möchte, tu nicht, was ich getan habe , indem du deine Qt SDK-Installation mit /opt/QtSDK/SDKMaintenanceTool
gelöscht hast ! Das verschwendete Zeit mit einer Neuinstallation, nach der ich ein sudo rm -r /opt/QtSDK/QtCreator
ausführte und dann der neuen Qt Creator-Version mitteilte, dass sie auf /opt/QtSDK/QtCreator
installiert werden sollte. Ich werde diesen Beitrag aktualisieren, wenn ich einen Haken mit dieser Wahl treffe!
ABER Obwohl es mit vielen C ++ 11-Konstrukten zu funktionieren scheint, tut es nichts für Ihr Beispiel oder den speziellen Fall, über den ich gestolpert bin, nämlich die unspaced<nested<syntax>>
für Vorlagen.
(Anmerkung: Es mag wie eine kleine Sache erscheinen, aber es ist eine große C ++ 11-Funktion für mich. Ich hasse mit tailspaced<nested<syntax> >
... tun zu müssen führte mich dazu, immer fullyspaced< nested< syntax > >
auf all Templates zu machen, um die Dinge konsistent zu halten, sogar in einfachen Fällen wie vector< int >
. Jetzt, da sie den Compiler repariert haben, bin ich bereit, all dieses Whitespace-Rauschen zu eliminieren. )
Es scheint keine Möglichkeit zu geben, die wellenförmigen Unterstreichungen abzuschalten (, außer du kompilierst Qt Creator ) ??).
%Vor%Wie auch immer, es ist eine verrückte Folge, die Arbeit des Compilers in der IDE zu duplizieren, anstatt die beiden Front-End-Codes zu teilen. Wir leben im dunklen Zeitalter der Software. Wird nicht jemand uns retten ? [/ rant]
Hier ist ein Teil des relevanten Codes (glaube ich):
... und der Lexer hier, notiere das Mitglied _cxx0xEnabled
:
Neben der for-Syntax ist der Vorlagenabstand das einzige, was ich in C ++ 11 gefunden habe, das die Zeilen verursacht. Das ist wichtig genug für mich, dass ich meinen eigenen QtCreator bauen könnte, um es anzugehen!
Tags und Links c++ qt c++11 qt-creator