ALE vs YouCompleteMe vs CoC-rust vs LanguageClient-neovim

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • rust-analyzer

    Discontinued A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer] (by rust-analyzer)

  • The extensions we use are listed here: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/lsp-extensions.md

  • vim-lsp

    async language server protocol plugin for vim and neovim

  • I use vim-lsp and ALE. In my case, ALE is used strictly for "fixers" (e.g. rustfmt/gofmt/etc.) and linters (when lints are not part of the language server).

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • ale

    Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support

  • But for one, signature help, which I quite like, seems to have not yet been implemented.

  • Visual Studio Code

    Visual Studio Code

  • Yes, there is a clear winner VS Code + rust-analyzer.

  • coc-rust-analyzer

    rust-analyzer extension for coc.nvim

  • CoC creates a VSCode like environment inside Vim, allowing easy porting of VSCode extension. This means that coc-rust-analyzer is a port of the VSCode extension for rust-analyzer that the rust-analyzer developers themselves are maintaining.

  • LanguageClient-neovim

    Language Server Protocol (LSP) support for vim and neovim.

  • Might migrate to Neovim's native LSP support at some point, however I find vim-lsp more feature complete out of the box. I used to use LanguageClient-neovim, however, I missed proper support for signature help.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts