tags: IDE, rust-analyzer, RLS, rustc
# compiler team IDE strategy and planning
## This document
We have been having a series of discussions on how to manage our IDE strategy. This document links to meeting logs and serves as a master "table of contents".
## The plan in short
* maintain rustc and rust-analyzer, using library-ification to gradually eliminate code duplication
* make an immediate goal to ship rust-analyzer to users as the RLS component via rustup and have it become the "RLS 2.0" that we recommend users use
* to that end, we need to achieve feature parity with existing RLS, which we do by building up a temporary mechanism (see below) that can handle error reporting, find all usages, and rename (which builds on find-all-usages), while we build up "native incremental" support for those things (via library-ification etc)
## Current action items and unresolved details
* Write an RFC that covers the plan from the perspective of "what end-users have to know"
* How will we distribute rust-analyzer? How will it be kept in sync
* How will we interface with the compiler to obtain precise errors and results for Find All Usages, at least in the interim until native support is ready?
## Documents and notes
* [Integrate RLS and rust-analyzer RFC](https://hackmd.io/NKMNjAYoRE6AP_XRot3z0w)
* [Zulip thread discussing the big idea](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/design.20meeting.202019-12-13.20follow-up)
* [Batch vs Server architecture for stripped down RLS](/sMospvYyTtisAnLMdlrUgQ)
* [2019.12.13]: design meeting
* [2019.11.18]: discussion of how precisely to manage RLS / rust-analyzer transition
* Yet to be scheduled meeting, see [doodle poll](https://doodle.com/poll/x35wtanin5y5impw)
* [2019.11.06]: pnkfelix, nmatsakis and matklad discuss library-ification
* main take-aways: keeping rust-analyzer + rustc as two active projects, and extracting shared code base, provides faster value to users
* attempting to port approach from rust-analyzer to rustc will take longer to get things going and creates more "ordering dependencies" where users don't see benefit as quickly, but also involves a similar amount of work (more work, in some cases)
* also discussed repo structure somewhat as well as quality metrics for rust-analyzer
* [2019.09.18]: rls/ rust-analyzer planning, how could they be integrated?
* Notes from a Zulip discussion digging into options for integration RLS / rust-analyzer