Why manually adjust "c_cpp_properties.json"

In order to get this file structure working:

|  |
|  |--WiFiConfig
|  |  |--src
|  |     |- WiFiConfig.cpp
|  |     |- WiFiConfig.h

I’ve to manually adjust file “c_cpp_properties.json” like so:

    "configurations": [
            "name": "PlatformIO",
            "includePath": [

Why is that?

Well, “B” doesn’t work quite the way I expected to.

Why manually adjust “c_cpp_properties.json”

That should never be done, since the file is created automatically by PlatformIO based on the information it has about the project configuration. Will be overwritten as soon as a Intellisense rebuild occurrs (or is executed manually via Ctrl/Command + Shift + P → Rebuild IntelliSense).

Not reproducable. If I recreate your example above, build it, and rebuild the intellisense, there is src/ in the include include path.


            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "path": [

Thank you, that’s quite clear! I must have done something that made it impossible for PIO to create the file automatically.