Let's cut through the usual "it works on my machine" testimonials. Everyone's demo project compiles in seconds.
I'm auditing a monorepo with ~2M lines of C++ across hundreds of shared libraries and executables. Clangd as the backend. The promised "intelligent" features—code navigation, diagnostics, completions—degrade into a memory-hogging crawl or outright freeze within an hour of active work. eglot seems more stable but lacks some features.
My working theory is that most LSP mode configurations are tuned for greenfield projects, not legacy codebases with Byzantine build systems. I want to see postmortems, not happy paths.
* What's your actual memory ceiling for `clangd` before you have to kill it? Mine drifts to 4+ GB.
* How are you handling `compile_commands.json` for a multi-target CMake (or worse, non-CMake) build? The generator scripts I see always break on something.
* What, specifically, in your `use-package` config for `lsp-mode` or `eglot` made a tangible difference for performance? I'm skeptical of adding more packages as a solution.
```emacs-lisp
;; Typical setup, but where are the actual knobs for scale?
(use-package lsp-mode
:init (setq lsp-clients-clangd-args '("-j=4" "--background-index" "--clang-tidy"))
:hook ((c++-mode . lsp)))
```
If your answer is "I just use ctags," I'm not judging. I'm auditing for reality.
- Nina
- Nina