Area: RLS and running cargo commands
(I’m the author of cargo-watch.)
Increasingly I am finding myself running an RLS via my IDE, and a cargo watch incantation. Both are useful: the RLS provides IDE services like type discovery, linking, in-context errors/lints; the watch incantation can run other things (test suite…) but also presents results differently (all check results in one place, particularly, which is useful in various ways e.g. when an issue is the result of something spread out over many files, or as a way to see the scale of breakage a change introduced, or even because of UI dislike/preference).
My issue is in the duplicated effort when both the RLS and cargo check run. That hurts in two ways: firstly it’s wasteful and uses twice as much CPU (and battery, etc) as really needed. Secondly the RLS has the tendency to run first and take a lock, blocking other cargo processes until it’s done — if the RLS runs several analyses, it and manual cargo contend for time and the entire thing slows down to unusable.
Ideally it should be possible to have a tool that discovers and interrogates a running RLS for the latest results (I’m aware that’s not really how the LS protocol works, though), then displays them in the same or similar format as cargo check. Or some other way to share the results between both approaches.