rustfmt
rust-analyzer
DISCONTINUED
Our great sponsors
rustfmt | rust-analyzer | |
---|---|---|
36 | 200 | |
4,443 | 9,320 | |
2.9% | - | |
9.2 | 10.0 | |
3 days ago | 2 months ago | |
Rust | Rust | |
Apache License 2.0 | 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.
rustfmt
-
What are some good rust tools/extentions?
Hey so I've recently come across a few tools that make coding with rust just that little bit nicer. Things like automatic source code formatting; and cross compiling with docker. I'm only aware of a minor few > Rust src formatter
-
The curse of strong typing
Am I alone in wanting a semicolon after that? Let's see.
-
Why are most of Rustfmt features unstable?
I could list all the tracking issues for them like for control_brace_style but honestly I feel as that would be rude and that is not my intention here. But if you want you can scroll through their configuration page and see which features are stable. I'm not quite sure if I can use these even though they aren't stable yet.
-
Rustfmt
See: https://github.com/rust-lang/rustfmt/issues/2924
-
New crate - impl-tools - #[autoimpl] and impl_scope! macros
See here for my suggestion.
-
Why is is prettier used if eslint can format?
There isn't overlap between these concerns (formatting and linting), formatting is syntactic analysis and linting is semantic analysis. There's only overlap because ESLint has some formatting capabilities as well. In modern languages, these are separate tools because they are separate concerns (rustfmt and rust-clippy , gofmt and go vet ).
-
Questions about zero-cost abstraction
rustfmt
- Internet debates have raged for too long – Let's Settle This
-
Why is there no "standard" formatting tool for haskell?
I really wish Haskell had something like rustfmt. Pretty much all Rust code follows the same default rustfmt style. rustfmt is also deterministic, so the original formatting has no effect on the new formatting. This makes things very regular and predictable.
-
Does code formatting work for you in VSCode and in integration tests?
Reported.
rust-analyzer
-
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!
-
rust-analyzer changelog #126
#12037 remove rust-analyzer.inlayHints.enable and set language scope when toggling hints.
-
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 }, })
- Rust-Analyzer - A rust compiler front-end for ides
-
rust-analyzer changelog #123
This seems to solve a bug when using Pest
What are some alternatives?
vscode-rust - Rust extension for Visual Studio Code
Clippy - A bunch of lints to catch common mistakes and improve your Rust code
coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
eglot - A client for Language Server Protocol servers
ale - Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support
vim-lsp - async language server protocol plugin for vim and neovim
vim-lsp-settings - Auto configurations for Language Server for vim-lsp
rust - Empowering everyone to build reliable and efficient software.
typescript-language-server - TypeScript & JavaScript Language Server
intellij-lsp-server - Exposes IntelliJ IDEA features through the Language Server Protocol.
neovim-rust - Sample neovim and vim configurations for Rust development
vscode-rust