Incorrectly generated c_ccp_properties.json for VS Code

The c_ccp_properties.json generated by the editor does not include all the required dependencies so vs code can not properly use intellisense. The #include statements show files missing but the project builds fine using the editor.

I had to add these to the includePath and browse.path to silence those warnings

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1
 /usr/local/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /usr/include

Also it seems like intellisense is not working correctly but that might be a problem with vs code cpp tools so I’m still using the “tag parser” setting

Hi ,

What are the exact warnings that you are seeing? I created a new basic code project and opened it in VS Code, and noticed a couple warnings about a dependency to an Engine file that couldn’t be found. Adding your change above to the c_ccp_properties.json file did not seem to clear up those particular warnings, but setting the Tag Parser setting did. I am wondering if I am seeing something different than you were.

I think we were seeing the same thing. It complains about random source files ie. cannot open source file “new” (dependency of “***GameInstance.h”). Do you have xcode 9+ installed? Even after I fix those issues, if I have the “Default” intellisense engine selected vscode starts to complain about UE classes so I don’t think it is correctly parsing it. So I still have to use “Tag Parser” to get intellisense to work.

Please see

here: link text
and here: link text

Some include files are missing, when you create the c_cpp_properties.json.

But we still get errors. This might be because Microsofts VSCode cpp_tools will not accept Unreal Header Tools Decorations like USRUCT(). The result: strange errors.

i.e.: I tried to use an enum like this:

UENUM(BlueprintType)
enum class ETestEnum : uint8
{
// SNIP
};

Intellisense tells me, that I cannot use enum class here and I should use enum.