crates.nvim VS rust-tools.nvim

Compare crates.nvim vs rust-tools.nvim and see what are their differences.

crates.nvim

A neovim plugin that helps managing crates.io dependencies (by Saecki)

rust-tools.nvim

Tools for better development in rust using neovim's builtin lsp (by simrat39)
Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • talent.io - Download talent.ioโ€™s Tech Salary Report
  • Scout APM - Less time debugging, more time building
crates.nvim rust-tools.nvim
4 36
287 1,165
- -
9.2 8.8
5 days ago 17 days ago
Lua Lua
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

crates.nvim

Posts with mentions or reviews of crates.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-02-18.

rust-tools.nvim

Posts with mentions or reviews of rust-tools.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-19.
  • How to get bordered ui for hover actions in lspconfig for gopls
    3 projects | reddit.com/r/neovim | 19 Aug 2022
    Is there a way to configure https://github.com/neovim/nvim-lspconfig so that its hover actions render a nice border UI like https://github.com/simrat39/rust-tools.nvim or https://github.com/hrsh7th/nvim-cmp use?
  • [Question] [Help] How to set up nvim-dap to debug Rust?
    2 projects | reddit.com/r/neovim | 17 Aug 2022
    I believe you want https://github.com/simrat39/rust-tools.nvim, that was how i got it working
  • Rust and Neovim - A Thorough Guide and Walkthrough
    11 projects | dev.to | 15 Aug 2022
    rust-tools is a fantastic plugin to setup rust-analyzer with Neovim's LSP .
  • Keep LSP running in the background.
    7 projects | reddit.com/r/neovim | 11 Aug 2022
    like what? I'm not rust dev (yet :P) so I don't really know the details of possible config here but right from the start with https://github.com/simrat39/rust-tools.nvim and config from readme - rust-analyzer starts instantly.
  • Ways to always show the information from vim.lsp.buf.hover
    3 projects | reddit.com/r/neovim | 25 Jun 2022
    At first, the thing from my question (the last one was, obviously, made really bad and miss-called its object) is called inlay-hints and, specially for rust, is provided directly from rust-analyzer. It was implemented in https://github.com/simrat39/rust-tools.nvim for Neovim and needs some configuration work to turn it on, but I use it in my case anyway at the moment.
    3 projects | reddit.com/r/neovim | 25 Jun 2022
  • rust-tools.nvim inlay hints not working
    2 projects | reddit.com/r/neovim | 12 May 2022
  • How can I display args type virtually like vscode?
    3 projects | reddit.com/r/neovim | 24 Apr 2022
    For those of you who met same issue: This feature is called inlay hints. installing rust-tools.nvimshould work out of box
    3 projects | reddit.com/r/neovim | 24 Apr 2022
    https://github.com/simrat39/rust-tools.nvim works but it has not be updated to native LSP inlay hints (so you need an older version of rust-analyzer. You probably want to subscribe to https://github.com/neovim/neovim/issues/18086 and https://github.com/neovim/neovim/issues/14409
  • Anyone have autocomplete working with rust-tools, nvm-cmp, etc.?
    6 projects | reddit.com/r/neovim | 14 Apr 2022
    -- Provide some indication that rust-analyzer is busy! local lsp_status = require('lsp-status') lsp_status.register_progress() -- Basic rust/lsp/cmp settings from https://sharksforarms.dev/posts/neovim-rust/ local nvim_lsp = require('lspconfig') local opts = { tools = { -- rust-tools options autoSetHints = true, hover_with_actions = true, inlay_hints = { show_parameter_hints = false, parameter_hints_prefix = "", other_hints_prefix = "=> ", }, }, -- all the opts to send to nvim-lspconfig -- these override the defaults set by rust-tools.nvim -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer server = { -- on_attach is a callback called when the language server attachs to the buffer on_attach = lsp_status.on_attach, capabilities = lsp_status.capabilities, settings = { -- to enable rust-analyzer settings visit: -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc -- and more: https://github.com/simrat39/rust-tools.nvim/wiki/Server-Configuration-Schema ["rust-analyzer"] = { -- enable clippy on save checkOnSave = { command = "clippy" }, } } }, } require('rust-tools').setup(opts) -- Setup Completion -- See https://github.com/hrsh7th/nvim-cmp#basic-configuration -- Used for super-tab functionality local has_words_before = function() local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil end local feedkey = function(key, mode) vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) end local lspkind = require('lspkind') local cmp = require'cmp' cmp.setup({ completion = { autocomplete = true }, -- Enable LSP snippets snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }), -- Add tab support [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif vim.fn["vsnip#available"](1) == 1 then feedkey("(vsnip-expand-or-jump)", "") elseif has_words_before() then cmp.complete() else fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. end end, { "i", "s" }), [""] = cmp.mapping(function() if cmp.visible() then cmp.select_prev_item() elseif vim.fn["vsnip#jumpable"](-1) == 1 then feedkey("(vsnip-jump-prev)", "") end end, { "i", "s" }), }, -- Installed sources sources = { { name = 'nvim_lsp' }, --, trigger_characters={'.', ":"} }, { name = 'vsnip' }, { name = 'path' }, { name = 'buffer' }, { name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_document_symbol' }, }, -- Fancy symbols formatting = { format = lspkind.cmp_format({ mode = 'symbol_text', -- show both symbol & text for now maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) --before = function (entry, vim_item) --... --return vim_item --end }) }, completion = { autocomplete = true }, })

What are some alternatives?

When comparing crates.nvim and rust-tools.nvim you can also consider the following projects:

LunarVim - An IDE layer for Neovim with sane defaults. Completely free and community driven.

nvim-cmp - A completion plugin for neovim coded in Lua.

helix - A post-modern modal text editor.

NvChad - An attempt to make neovim cli functional like an IDE while being very beautiful, blazing fast startuptime ~ 14ms to 67ms

lsp_extensions.nvim - Repo to hold a bunch of info & extension callbacks for built-in LSP. Use at your own risk :wink:

coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.

nvim-treesitter - Nvim Treesitter configurations and abstraction layer

neovim - Vim-fork focused on extensibility and usability

lsp-status.nvim - Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline

nvim-compe - Auto completion Lua plugin for nvim

lvim - My lvim configration, based on kylo252's

vim-crates - Handle Cargo dependencies like a Rustavimean.