From bbc65b11bb69e70707da51d291fe2e883b05f54a Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 7 Dec 2024 19:55:58 +0000 Subject: [PATCH] feat: basic rust nvim setup chore: Tidy up null-ls stuff that wasn't implemented right --- .../nvim/lua/custom/configs/null-ls-py.lua | 9 ----- .../nvim/lua/custom/configs/null-ls-ts.lua | 25 ------------ .../configs/{null-ls-go.lua => null-ls.lua} | 0 .../nvim/lua/custom/configs/rust-tools.lua | 11 ++++++ nvim/.config/nvim/lua/custom/plugins.lua | 38 ++++++++++++++++++- 5 files changed, 48 insertions(+), 35 deletions(-) delete mode 100644 nvim/.config/nvim/lua/custom/configs/null-ls-py.lua delete mode 100644 nvim/.config/nvim/lua/custom/configs/null-ls-ts.lua rename nvim/.config/nvim/lua/custom/configs/{null-ls-go.lua => null-ls.lua} (100%) create mode 100644 nvim/.config/nvim/lua/custom/configs/rust-tools.lua diff --git a/nvim/.config/nvim/lua/custom/configs/null-ls-py.lua b/nvim/.config/nvim/lua/custom/configs/null-ls-py.lua deleted file mode 100644 index 693ada0..0000000 --- a/nvim/.config/nvim/lua/custom/configs/null-ls-py.lua +++ /dev/null @@ -1,9 +0,0 @@ - -local null_ls = require("null-ls") -local opts = { - sources = { - null_ls.builtins.diagnostics.mypy, - null_ls.builtins.diagnostics.ruff, - }, -} -return opts diff --git a/nvim/.config/nvim/lua/custom/configs/null-ls-ts.lua b/nvim/.config/nvim/lua/custom/configs/null-ls-ts.lua deleted file mode 100644 index ee07773..0000000 --- a/nvim/.config/nvim/lua/custom/configs/null-ls-ts.lua +++ /dev/null @@ -1,25 +0,0 @@ -local null_ls = require("null-ls") -local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - -local opts = { - sources = { - null_ls.builtins.formatting.eslint, - null_ls.builtins.formatting.prettier, - }, - on_attach = function(client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ - group = augroup, - buffer = bufnr, - }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - vim.lsp.buf.format({ bufnr = bufnr }) - end, - }) - end - end, -} -return opts diff --git a/nvim/.config/nvim/lua/custom/configs/null-ls-go.lua b/nvim/.config/nvim/lua/custom/configs/null-ls.lua similarity index 100% rename from nvim/.config/nvim/lua/custom/configs/null-ls-go.lua rename to nvim/.config/nvim/lua/custom/configs/null-ls.lua diff --git a/nvim/.config/nvim/lua/custom/configs/rust-tools.lua b/nvim/.config/nvim/lua/custom/configs/rust-tools.lua new file mode 100644 index 0000000..3c462c2 --- /dev/null +++ b/nvim/.config/nvim/lua/custom/configs/rust-tools.lua @@ -0,0 +1,11 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities + +local options = { + server = { + on_attach = on_attach, + capabilities = capabilities, + } +} + +return options diff --git a/nvim/.config/nvim/lua/custom/plugins.lua b/nvim/.config/nvim/lua/custom/plugins.lua index 2fb6b8e..a444582 100644 --- a/nvim/.config/nvim/lua/custom/plugins.lua +++ b/nvim/.config/nvim/lua/custom/plugins.lua @@ -13,6 +13,7 @@ local plugins = { "gopls", "goimports", "debugpy", + "rust-analyzer", } } }, @@ -26,7 +27,7 @@ local plugins = { "jose-elias-alvarez/null-ls.nvim", ft = "go", opts = function() - return require "custom.configs.null-ls-go" + return require "custom.configs.null-ls" end, }, { "mfussenegger/nvim-dap", @@ -55,6 +56,41 @@ local plugins = { "NVChad/nvim-autopairs", enabled = false }, + { + "simrat39/rust-tools.nvim", + ft = "rust", + opts = function () + return require "custom.configs.rust-tools" + end, + config = function (_, opts) + require("rust-tools").setup(opts) + end, + dependencies = "neovim/nvim-lspconfig" + }, + { + "rust-lang/rust.vim", + ft = "rust", + init = function () + vim.g.rustfmt_autosave = 1 + end + }, + { + "saecki/crates.nvim", + ft = {"rust", "toml"}, + config = function(_, opts) + local crates = require("crates") + crates.setup(opts) + crates.show() + end + }, + { + "hrsh7th/nvim-cmp", + opts = function () + local M = require "plugins.configs.cmp" + table.insert(M.sources, {name = "crates"}) + return M + end + }, { "rcarriga/nvim-dap-ui", init = function()