Currently, the implementation of the Rust Language Server (RLS) is blocked by the lack of incremental compilation. However, I think there are some issues that could be addressed right now, without waiting for incremental compilation to land:
- Enhancing the compiler to be more tolerant to invalid programs. This would in turn allow the RLS to provide analysis information even though a program doesn’t compile (this seems especially interesting for the code completion use case).
save-analysis, since it will be the base upon the RLS is built. Currently, one of the biggest shortcomings of
save-analysisis its unreliability given the lack of tests (see https://github.com/rust-lang/rust/issues/34481).
- Figure out a way to handle conditional compilation in
save-analysis. Otherwise, the RLS will be unable to provide information about part of the conditionally compiled code (see https://github.com/rust-lang/rust/issues/1998).
Are there other items that can be addressed right now in order to pave the way for the RLS? Would it make sense to file an issue to lay out a roadmap for RLS-related improvements?