[!IMPORTANT] We have enacted a feature freeze for IDE assists to cope with the PR backlog as well as allowing us to prepare for the rowan transition! If you submit a PR that adds new ide-assists, chances are very high that we will just close it on this basis alone until we have the capacity to deal with them again.
Thank you for your interest in contributing to rust-analyzer! There are many ways to contribute and we appreciate all of them.
To get a quick overview of the crates and structure of the project take a look at the Contributing section of the manual.
If you have any questions please ask them in the rust-analyzer zulip stream or if unsure where to start out when working on a concrete issue drop a comment on the related issue for mentoring instructions (general discussions are recommended to happen on zulip though).
Generally it's fine to just work on these kinds of things and put a pull-request out for it. If there is an issue accompanying it make sure to link it in the pull request description so it can be closed afterwards or linked for context.
If you want to find something to fix or work on keep a look out for the C-bug and C-enhancement labels.
It's advised to first open an issue for any kind of new feature so the team can tell upfront whether the feature is desirable or not before any implementation work happens. We want to minimize the possibility of someone putting a lot of work into a feature that is then going to waste as we deem it out of scope (be it due to generally not fitting in with rust-analyzer, or just not having the maintenance capacity). If there already is a feature issue open but it is not clear whether it is considered accepted feel free to just drop a comment and ask!
AI tool use is not discouraged on the rust-analyzer codebase, as long as it meets our quality standards. We kindly ask you to disclose usage of AI tools in your contributions. If you used them without disclosing it, we may reject your contribution on that basis alone due to the assumption that you likely not reviewed your own submission (so why should we?).
We may still reject AI-assisted contributions if we deem the quality of the contribution to be unsatisfactory as to reduce impact on the team's review budget.