Neovim-from-scratch
rust-analyzer
DISCONTINUED
Our great sponsors
Neovim-from-scratch | rust-analyzer | |
---|---|---|
81 | 207 | |
5,223 | 9,320 | |
1.3% | - | |
5.0 | 10.0 | |
15 days ago | almost 2 years ago | |
Lua | Rust | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
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.
Neovim-from-scratch
-
How to configure vim like an IDE
They also provide a "from-scratch" option, to be easier to understand
-
New User C Setup Help?
I would recommend the Neovim from Scratch series on Youtube with the addition of the code_runner.nvim plugin. It's a good config that will teach you a lot about configuring Neovim. code_runner.nvim is a nice addition, especially for a university student. Good luck!
-
How to learn neovim
I don't know myself how I learned neovim, but I started with using a repo called Neovim-from-scratch, but I'm not sure if it's still up to date, but I used it as my base config then started to add plugins I want and remove plugins I don't need. Most of the people recommend kickstart.nvim now as base config for neovim lua config.
- [nvChad] lspconfig
- Is there a good neovim plugin that integrates a pre-configured lsp+treesitter+telescope?
-
Help with getting started with Neovim
This is the GitHub repo for the aforementioned playlist.
-
Opinions on pre-made configurations (e.g. LunarVim, AstroNvim)
I would recommend LazyVim or Kickstart.nvim. If you don't want to do any configuration, LunarVim might be for you. I would recommend the Neovim from Scratch config since it is very good and essentially has an accompanying guide. However, it is slightly out of date and needs a few tweaks to work properly.
- Migrating from VSCode to Neovim
- Hey everyone . I am trying to write my nvim configuration in lua . I am following neovim from scratch but i am facing issues from plugin like cmp-buffer , cmp-path , cmp-cmdline . I can't figure whats is the actual problem . Thank You for reading
-
Any web developers here (front end back end full stack)?
This is my setup. I mostly develop in Python for work, but also develop a lot of .yaml and .sh for automation, docker, etc. A lot going on in this nvim setup. I took the base from neovim-from-scratch [here](https://github.com/LunarVim/Neovim-from-scratch) . And the make of LunarVim has some great videos to show you how to write out your neovim setup in Lua. If you're more of a WASM, Rust, JS guy, then ThePrimeagen might be a good place for you to go. I mixed and matched everything I have. Added copilot and chatGPT. You have to drive this thing though. And you really have to know what you're trying to write, otherwise those applications will take you down a deep dark path of trying to debug garbage code.
rust-analyzer
-
rust-analyzer changelog #164
I would like changes like https://github.com/rust-analyzer/rust-analyzer/pull/13799 to be listed in 'Breaking Changes' category, to приманка draw the users' attention.
-
Mun v0.4.0 released
For those of you who haven’t heard of Mun before, Mun is an embeddable programming language empowering creation through iteration. The idea to create Mun originated out of frustration with the Lua dynamic scripting language and a desire to have similar hot reloading functionality available in Rust. As such, it’s not a direct competitor with Rust, but instead is intended to be used with Rust (or C/C++) as a host/embedded language pairing. Actually, Mun is completely written in Rust, building on similar crates as rust-analyzer and rustc. Its key features include:
-
rust-analyzer changelog #159
#13728 upgrade chalk to make solver fuel work again (works around most trait solving hangs).
-
Does Rust need proc-macros 2.0?
Rust-analyzer has a good overview: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/syntax.md
-
rust-analyzer changelog #134
#12517 (first contribution) fix completion for methods in trait generated by macro.
-
LSP Rust Analyzer keeps telling me `Error NO_RESULT_CALLBACK_FOUND`
-- 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 = on_attach, settings = { -- to enable rust-analyzer settings visit: -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc ["rust-analyzer"] = { -- enable clippy on save checkOnSave = { command = "clippy" }, assist = { importGranularity = "module", importPrefix = "self", }, cargo = { loadOutDirsFromCheck = true }, procMacro = { enable = true }, } } },
-
rust-analyzer changelog #130
#12349 publish universal VSIX to make Code happy.
Big fan of #12263!
-
Anyone have autocomplete working with rust-tools, nvm-cmp, etc.?
-- 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?
LunarVim - 🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.
vscode-rust - Rust extension for Visual Studio Code
kickstart.nvim - A launch point for your personal nvim configuration
Clippy - A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
intellij-rust - Rust plugin for the IntelliJ Platform
rustfmt - Format Rust code
eglot - A client for Language Server Protocol servers
AstroNvim - AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins
rust - Empowering everyone to build reliable and efficient software.
coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
ale - Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support
sublime-rust - The official Sublime Text 4 package for the Rust Programming Language