rust-lang / rust-lang/rust-analyzer

Neovim configuration support

Open
#2,344 8 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-third-party-client C-support S-unactionable
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

I recently added a built-in language server client for neovim, and in the process we began https://github.com/neovim/nvim-lsp, which is aiming to be a reference database of how to work with LSP servers as a non-VSCode/third-party editor. It's written in Lua, but written in an abstracted way so as to easily be used as a reference and make it easy for contributors. Someone recently opened a PR to add support for it here and I wanted to notify you guys about the project so that we could make sure it's correct and see about improving the definition beyond the basics.

The enhancements are, for example:

  • Adding a way to install rust-analyzer without superuser permissions. We provide a local directory to download binaries to or install code. As an example, we have this working with npm servers.
  • We have support for commands definitions for custom rust-analyzer commands, if any.
  • We allow specifying default settings. We currently scrape the VSCode package.json to generate documentation in the README right now, so that helps. You can see an example of these generated docs for rls here
  • We allow configuration for rust-analyzer specific quirks or enhancements regarding callbacks for client requests/server requests/notifications via callbacks.

Any help would be appreciated. Thanks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the referenced nvim-lsp project and its PR #43, then compare its rust-analyzer definition with the requested installation, commands, default settings, and callbacks support. Check the generated README documentation and the VSCode package.json scraping described in the issue. Done means agreeing on and implementing a defined set of compatible enhancements, but the issue does not identify rust-analyzer files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua, neovim, rust
Domain
developer-experience, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.