ilya-biryukov added a comment.
Herald added a subscriber: arphaman.

Thanks for putting up this change! It can be really annoying that clangd does 
not pick up the compile commands that got updated.

A few things of the top of my head on why we might want to punt on using the 
LSP watches:

- File watching may not be implemented in the language server at all. That's 
certainly the case for our hacked-up ycmd<->lsp bridge.
- At some point we'll be interested in changes to the headers our sources have 
included. This would involve a **lot** of watches for a dynamically changing 
set of files. There's a good chance we'll have to consider using native file 
watch APIs instead of the LSP methods to handle those (e.g., for performance 
reasons).

We've been talking about starting to implement a better buildsystem integration 
lately and taking compile_commands.json changes into account is certainly on 
the table. We'll probably have some concrete proposals in August/September.

In the meanwhile, maybe removing the caching of compile commands could fix the 
problem? I don't have any data on how important the caching is to performance 
(I would assume it to not be very important, since we only request compile 
commands on the file changes; completion, findDefinitions, etc reuse the last 
compile command anyway). 
https://reviews.llvm.org/D48071 added an option to disable the caching, it 
never landed because we didn't agree on the default, but we can make it happen.
It looks like a simpler workaround that works on all clients and we can figure 
out how to properly integrate file watching later. WDYT?


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D49267



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to