Why manually adjust "c_cpp_properties.json"

In order to get this file structure working:

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

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

{
    "configurations": [
        {
            "name": "PlatformIO",
            "includePath": [
                "/Users/janhkila/PlatformIO/Projects/Web_Radio_00/lib/WiFiConfig**/src**",

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": [
                    "C:/Users/Max/Documents/PlatformIO/Projects/lib_path_repro/include",
                    "C:/Users/Max/Documents/PlatformIO/Projects/lib_path_repro/src",
                    "C:/Users/Max/Documents/PlatformIO/Projects/lib_path_repro/lib/WiFiConfig/src",
                    "C:/Users/Max/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/config",
..

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