Use a compile_commands.json that references a cl.exe with VS 2017, but have VS 2019 installed too.
Bug1: The VS 2019 paths get added to the browse.path still (in addition to the VS 2017 ones). The workaround is to set compilerPath to be blank or the VS 2017 compilerPath.
Bug2: Also, when I open a VS 2017 header, it tries to use VS 2019 as the compilerPath instead of the compile_commands.json compiler (VS 2017):
[ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\xstring ]:
Process ID: 2092
Memory Usage: 17 MB
Compiler Path: C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.27.28826/bin/Hostx64/x64/cl.exe
Includes:
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\PREVIEW\VC\TOOLS\MSVC\14.27.28826\INCLUDE
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2019\PREVIEW\VC\TOOLS\MSVC\14.27.28826\ATLMFC\INCLUDE
which causes squiggles to appear.
Expected: It seems like it should behave as if the compilerPath is the one used in compile_commands.json if compilerPath isn't set.