This sounds like an excellent idea!
When running the complete build I think I would want to get new tools as they come out, but perhaps it doesn’t make quite as much sense for the other installations? Could you perhaps expand a bit on your reasoning here?
My basic reasoning is that people don’t seem to like having things installed which they haven’t opted in to. It also complicates implementation since the profile used needs to be preserved in Rustup’s state. I also wanted to avoid thinking about users who already use Rustup without having chosen a profile (although only doing something for ‘complete’ side-steps that.
one thing that greatly confused me when starting with rustup was the notion of toolchains
I think we could definitely do better about making the install instructions self-documenting.
The other thing that I think users would appreciate more visibility into is location of installation
I agree, but I think it is pretty orthogonal to the ideas here.
but right now it does not handle the scenario where the current nightly doesn’t have the RLS installed very gracefully
this is more of an implementation issue, in fact I think it should be somewhat improved already. The extensions use Rustup to manage the RLS, so installing by default won’t make any difference to their handling of it.
While VSCode does install RLS; the experience has not always been great I agree. In any case, I think the installation process would be smoother if rustup just did this and users would not have to go through an extra step. This would also be good for other editors as we can’t assume that everyone will be using VSCode.
Making installation of extensions slicker is a nice motivation. All editors that use the RLS should be able to install it too, not just VSCode.
As an extension of these ideas, it would be nice if the initial Rustup install offered options to install additional support for any particular editors:
This is definitely worth thinking about. Most editors allow installation of plugins from the command line, but I fear this is something that will easily go wrong for users with even slightly customised systems.
Some (most?) of these are probably out of scope for this RFC, but I wanted to let you know, in case anything pops up that you think is interesting.
These are good ideas (especially informing the user when a new version is available), but I think they are out of scope for this RFC.
FWIW, IntelliJ users won’t need the RLS (at least for now).
This is true, and will be for the foreseeable future and is one reason not to install the RLS by default. OTOH, it’s not a huge amount of disk space/bandwidth and is easy to remove.