rls-2.0 Working Group

rls-2.0 Working Group

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.