rls-2.0 Working Group
- Team: wg-rls-2 on rust-lang/team
- Notes: All
- FAQs: FAQ
Scope and purpose
Discover ideal architecture for IDE-compiler by starting a “from scratch” implementation. Especially, how to handle the two hardest things:
- name resolution/macro expansion
- trait resolution
Quantify how hard would be to port existing rustc to the IDE architecture.
Secondary Goals
- provide better RLS experience by making a “better racer”
- facilitate rustc librarification by discovering and prototyping separable libraries
- facilitate specification of the language, by producing “more declarative” implementation
Deliverables
- a language server which provides compiler-based code completion for a subset of the Rust language.
- “design knowledge”: which approaches do and do not work in IDE contexts.
- (optional) improvements to existing tooling, like replacing racer in RLS with something more powerful, or making rustfmt capable of dealing with incomplete code.
Current status
An initial language-server is implemented in the rust-analyzer.
How to participate
Chat forum
On the rust-lang Zulip, in the #t-compiler/rust-analyzer
stream.
Meetings
We don’t have a regular meeting schedule yet, check Zulip to learn about the next one. However, we maintain work list – a paper document that shows what everyone is working on right now. If you want to (this is not mandatory), add yourself to the list!
rust-analyzer
Currently the bulk of work is happening in the rust-analyzer repository. It has E-mentor issues and a guide.
Getting up to speed
There’s some documentation in rust-analyzer repository which should be useful. There’s a YouTube playlist with videos which cover various subsystems of the analyzer.