Почему создавать Rust LSP так сложно
Why building a Rust LSP is hard

Автор Rust Glancer рассказывает, почему разработка LSP для Rust оказывается сложнее, чем кажется. В отличие от компилятора, LSP должен выдавать полезные ответы почти сразу, не имея полной информации о проекте. Приходится строить виртуальную файловую систему, управлять поколениями исходников и отменять устаревшие запросы. Разные запросы — documentSymbol, hover, inlay hints, references — требуют разного уровня анализа: от парсинга до вывода типов и поиска по всему workspace.
Создание LSP — это ВСЁ о патологических случаях, которые портят опыт пользователям, и это также одна из причин, почему LSP сложны.