Skip to content

compile_commands.json are not getting reloaded on change. #2306

@omicronns

Description

@omicronns

Type: LanguageService

I can not find a way to reload compile_commands.json file other than restart vscode.

  • OS and Version: Linux 4.17.6-1-ARCH
  • VS Code Version: 1.25.1
  • C/C++ Extension Version: 0.17.7
  • Clang Version: 6.0.1

To Reproduce

Take example from #2305 and having everything set up, change in a line in CMakeLists.txt:

add_definitions("-D__weak=__attribute__((weak))" -DABC=\"asd\")

asd to qwe, rebuild, resave c_cpp_properties.json. Hover over ABC in lib.cxx in editor and it still shows asd. Restarting vscode helps with that.

Expected behavior

compile_commands.json being reloaded on change.

Additional context

I tried to debug the extension in order to investigate this issue and #2305 further and I found something interesting:

https://github.com/Microsoft/vscode-cpptools/blob/2cbc90d98b52349ad929e587c250803aee414f6f/Extension/src/LanguageServer/configurations.ts#L482

This conditional (second part fs.existsSync(c.compileCommands)) is not satisfied when compileCommands in c_cpp_properties.json have ${workspaceFolder} in the path. I believe it should not behave like that. Setting path to absolute does not fix reloading issue though.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions