On Wed, Sep 02, 2020 at 01:33:51AM +0000, brian m. carlson wrote: > Traditionally, editors had to learn about every language if they wanted > to add special functionality like refactoring (e.g., renaming "struct > foo" to "struct bar"), finding all the instances of a type, finding > where a type or function was declared, or similar IDE features. When > Microsoft developed Visual Studio Code, they decided that they did not > want to implement this functionality for every language under the sun, > and instead developed the Language Server Protocol[0]. > [...] Thanks for the explanation. I understand what LSP does, but the missing link for me was how "here are the command-line flags to the compiler" turned into something useful like "here's a list of identifiers". And clangd fills in that gap (presumably re-running the front-end bits of clang on the fly to pull out that kind of information). -Peff