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/wg-rls-2.0 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.