[clangd] Track document versions, include them with diags, enhance logs
Summary: This ties to an LSP feature (diagnostic versioning) but really a lot of the value is in being able to log what's happening with file versions and queues more descriptively and clearly. As such it's fairly invasive, for a logging patch :-\ Key decisions: - at the LSP layer, we don't reqire the client to provide versions (LSP makes it mandatory but we never enforced it). If not provided, versions start at 0 and increment. DraftStore handles this. - don't propagate magically using contexts, but rather manually: addDocument -> ParseInputs -> (ParsedAST, Preamble, various callbacks) Context-propagation would hide the versions from ClangdServer, which would make producing good log messages hard - within ClangdServer, treat versions as opaque and unordered. std::string is a convenient type for this, and allows richer versions for embedders. They're "mandatory" but "null" is a reasonable default. Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75582
Loading
Please register or sign in to comment