Reading this made me realize that I want two different things from an LSP that are sometimes at odds with each other:
1. Editing help
2. Reliable and comprehensive analysis
The editing help needs to deal with incomplete and inconsistent state and answers on a best effort basis.
This is good when I'm writing code.
When I'm trying to understand code it usually is in a complete and compiling state but best effort is not enough. I expect complete and exhaustive answers.
Independently of that I'd love to read a similar analysis that compares the approaches of rust-anslyzer, rust-glancer and the JetBrains analysis engine in Rust Rover.
This is a good observation, with the observation that there are two different levels of latency requirements. Most of the time, I would be pretty happy with an untyped, unsemantic, mildly smart heuristic based ident completion while the asynchronous semantic one finishes.
The nice thing about this dual setup is that I tend to only want the semantic one if I'm thinking more, so there's naturally a larger time budget for it.
One must always think about the experience they want in UX first, rather than the tools they want to build.
weinzierl · · focus · HN ↗
1. Editing help
2. Reliable and comprehensive analysis
The editing help needs to deal with incomplete and inconsistent state and answers on a best effort basis. This is good when I'm writing code.
When I'm trying to understand code it usually is in a complete and compiling state but best effort is not enough. I expect complete and exhaustive answers.
Independently of that I'd love to read a similar analysis that compares the approaches of rust-anslyzer, rust-glancer and the JetBrains analysis engine in Rust Rover.
ashkankiani · · focus · HN ↗
The nice thing about this dual setup is that I tend to only want the semantic one if I'm thinking more, so there's naturally a larger time budget for it.
One must always think about the experience they want in UX first, rather than the tools they want to build.