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.
- 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
- 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.
An initial language-server is implemented in the rust-analyzer.
How to participate
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!
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.