VSCode + PlatformIO, Seltsame Intellisense-Fehler
-
Hi,
ich stehe grad mal ein bisschen auf dem Schlauch. Ich bin kürzlich von PlatformIO in Atom auf PlatformIO in VSCode umgestiegen, weil die Atom-Version nicht mehr gepflegt wird. In VSCode gibt es ja "Intellisense", das während des Editierens schon Querverweise und Hintergrund-Compilation bietet, um frühzeitig auf Fehler hinzuweisen.
Nette Sache, aber jetzt habe ich einen Fall, den ich partout nicht verstehe: ich habe eine einfache enum in einem .H-File geschrieben:
// States of a request enum RequestState : uint8_t { RQ_EMPTY=0, RQ_REQUESTING, RQ_RESPONSE };
Das meckert VSCode an (ich musste das kommentieren - Screenshot geht hier ja leider nicht ) :
Es wurde ein Bezeichner erwartet. (Das bezieht sich auf den ":" vor uint8_t) Der Bezeichner ""RQ_EMPTY"" ist nicht definiert. (und die beiden anderen werden auch angemeckert)
Dann kommen noch ein paar Folgefehler, wo
RequestState
benutzt wird.Compiliere ich den Code, geht das aber problemlos, ohne Fehlermeldung.
Wo bin ich blind?
-
@Miq sagte in VSCode + PlatformIO, Seltsame Intellisense-Fehler:
Compiliere ich den Code, geht das aber problemlos, ohne Fehlermeldung.
Dann ist der Code in Ordnung.
-
@manni66
Hihi, danke, das weiß ich! (ich schreibe schon einige Jahrzehnte C++...)Es geht mir mehr darum, wie ich die IDE VSCode wieder zum Begreifen zwingen kann.
-
Wie schaut deine "c_cpp_properties.json" dazu aus? Hast du dort
"cppStandard": "c++14" // <- oder "c++17"
aktiviert?
-
@Th69 sagte in VSCode + PlatformIO, Seltsame Intellisense-Fehler:
Wie schaut deine "c_cpp_properties.json" dazu aus? Hast du dort
"cppStandard": "c++14" // <- oder "c++17"
aktiviert?
"cppStandard": "c++11"
steht da. Die enum-Variante mit type ist mit C++11 gekommen, meine ich.
-
Ich habe VSCode jetzt sicher zum dritten Mal neu gestartet und jetzt ist der Spuk weg?!? Ich wüsste trotzdem gerne, wie das kam...
-
OK, "c++11" sollte auch schon funktionieren.
Schau mal in PlatformIO: pio generates wrong __cplusplus value in c_cpp_properties.json resulting in IDE build errors for std::unique_ptr in Visual Studio Code, d.h. welchen Wert hast du bei "__cplusplus=..." stehen?
-
@Th69 sagte in VSCode + PlatformIO, Seltsame Intellisense-Fehler:
OK, "c++11" sollte auch schon funktionieren.
Schau mal in PlatformIO: pio generates wrong __cplusplus value in c_cpp_properties.json resulting in IDE build errors for std::unique_ptr in Visual Studio Code, d.h. welchen Wert hast du bei "__cplusplus=..." stehen?Ah, interessant, das hatte ich noch nicht gefunden. Allerdings ist in meiner c_cpp_properties.json nur das
cppStandard
drin, kein__cplusplus
. Ich bin allerdings auch erst vor kurzem zu VSCode gekommen - mag sein, dass das inzwischen im PlatformIO-Plugin behoben ist.
-
@Miq Seitdem ich mit VS-Code arbeite habe ich generell viele Probleme mit Intellisense. Fehler die durch ein Neustarten plötzlich behoben sind, habe ich relativ häufig. Besonders oft auch, weil Header nicht gefunden werden obwohl ich sie brav hinzugefügt habe. Ich verlasse mich mittlerweile nicht mehr auf Intellisense
-
@Zhavok Geh gleich zum Schmied und nicht zum Schmiedl.
-
@Swordfish Ich war über zwei Jahre beim Schmied und es waren schöne Zeiten. Allerdings konzentriert sich der Schmied sehr auf seinen Standort. Der Schmiedl hingegen hat überall ein paar Geschäfte und da ich viel reise kommt mir das ganz gelegen. Der Schmiedl kann alles was ich brauche und die vielen Werkzeuge die der Schmied hat kenne und brauche ich gar nicht alle. Beim Schmiedl kann ich zur Not auch noch genug nachbestellen, falls ich mal etwas mehr brauche.