Config UI

Command Pallet (CTRL + SHIFT + P) > Edit Configurations UI

This will give you a UI view, instead of editing the c_cpp_properties.json file directly

Compiler config files

.vscode/c_cpp_properties.json

https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference

Include Paths

.vscode/c_cpp_properties.json > “includePath”

/** on the end of a path makes it recursive, meaning that all sub directories will also be searched.

Using Long Path Names

The below should work, but doesn’t. It seems you simply have to ensure all of your project files and all of the \build\ output files (which are loooong) will fit within a 250 character limit. See https://www.esp32.com/viewtopic.php?f=13&t=31805

The registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD) must exist and be set to 1.

If it isn’t you can set it using the PowerShell command:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force

Resolving path issues with duplicated files

The compiler is finding the same multiple files with the same name. E.g. when you right click > Show definition VS shows you the definition is available from multiple files.

Open “.vscode/c_cpp_properties.json”

In the “includePath” field, alter the paths order and make one of them a specific folder (without /** on the end). In this example, the files in “${workspaceFolder}/build/config/” will be used in priority to any other files of the same name that are in subdirectories off “${workspaceFolder}/**”

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${config:idf.espIdfPath}/components/**",
                "${config:idf.espIdfPathWin}/components/**",
                "${workspaceFolder}/build/config/",
                "${workspaceFolder}/**"
            ],

Compiler arguments

Places you can alter compiler arguments

.vscode/c_cpp_properties.json > “compilerArgs” field

Compiler to use

.vscode/c_cpp_properties.json > “compilerPath” field