diff --git a/neovim-ide/ftplugin/rust.lua b/neovim-ide/ftplugin/rust.lua deleted file mode 100644 index e484186..0000000 --- a/neovim-ide/ftplugin/rust.lua +++ /dev/null @@ -1,49 +0,0 @@ -local crates = require("crates") -require("which-key").register { - ["C"] = { name = "Crate", _ = "which_key_ignore" }, -} - -vim.g.rustaceanvim = { - server = { - settings = { - -- rust-analyzer language server configuration - ["rust-analyzer"] = { - check = { command = "clippy" }, - }, - }, - }, -} - -crates.setup { - null_ls = { - enabled = false, - name = "Crates", - }, -} - -local opts = function(opts) - return vim.tbl_deep_extend("force", { silent = true }, opts) -end - -vim.keymap.set("n", "Ct", crates.toggle, opts({ desc = "Crate toggle" })) -vim.keymap.set("n", "Cr", crates.reload, opts({ desc = "Crate reload" })) - -vim.keymap.set("n", "Cv", crates.show_versions_popup, opts({ desc = "Show version popup" })) -vim.keymap.set("n", "Cf", crates.show_features_popup, opts({ desc = "Show features popup" })) -vim.keymap.set("n", "Cd", crates.show_dependencies_popup, opts({ desc = "Show dependencies popup" })) - -vim.keymap.set("n", "Cu", crates.update_crate, opts({ desc = "Update crate" })) -vim.keymap.set("v", "Cu", crates.update_crates, opts({ desc = "Update Crates" })) -vim.keymap.set("n", "Cp", crates.update_all_crates, opts({desc = "Update all crates" })) -vim.keymap.set("n", "CU", crates.upgrade_crate, opts({ desc = "Upgrade crate" })) -vim.keymap.set("v", "CU", crates.upgrade_crates, opts({ desc = "Upgrade crate" })) -vim.keymap.set("n", "CP", crates.upgrade_all_crates, opts({ desc = "Upgrade all crates" })) - -vim.keymap.set("n", "Cx", crates.expand_plain_crate_to_inline_table, - opts({ desc = "Expand plain crate into inline table" })) -vim.keymap.set("n", "CX", crates.extract_crate_into_table, opts({ desc = "Extract crate into table" })) - -vim.keymap.set("n", "CH", crates.open_homepage, opts({ desc = "Open homepage" })) -vim.keymap.set("n", "CR", crates.open_repository, opts({ desc = "Open repository" })) -vim.keymap.set("n", "CD", crates.open_documentation, opts({ desc = "Open documentation" })) -vim.keymap.set("n", "CC", crates.open_crates_io, opts({ desc = "Open crates.io" })) diff --git a/neovim-ide/plugin/augroups.lua b/neovim-ide/plugin/augroups.lua index 0e08399..5e4bca3 100644 --- a/neovim-ide/plugin/augroups.lua +++ b/neovim-ide/plugin/augroups.lua @@ -75,7 +75,58 @@ vim.api.nvim_create_autocmd("LspAttach", { vim.keymap.set("n", "rn", vim.lsp.buf.rename, { desc = "Rename" }) vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, { desc = "Code action" }) vim.keymap.set("n", "fm", function() - vim.lsp.buf.format { async = true } + vim.lsp.buf.format({ async = true }) end, { desc = "Format Code" }) end, }) + +local cargo_toml_augroup = vim.api.nvim_create_augroup("cargo_toml", { clear = true }) +vim.api.nvim_create_autocmd({"BufEnter"}, { + group = cargo_toml_augroup, + pattern = { "Cargo.toml" }, + callback = function() + local crates = require("crates") + + require("which-key").register({ + ["C"] = { name = "Crate", _ = "which_key_ignore" }, + }) + + crates.setup({ + null_ls = { + enabled = false, + name = "Crates", + }, + }) + + local opts = function(opts) + return vim.tbl_deep_extend("force", { silent = true }, opts) + end + + vim.keymap.set("n", "Ct", crates.toggle, opts({ desc = "Crate toggle" })) + vim.keymap.set("n", "Cr", crates.reload, opts({ desc = "Crate reload" })) + + vim.keymap.set("n", "Cv", crates.show_versions_popup, opts({ desc = "Show version popup" })) + vim.keymap.set("n", "Cf", crates.show_features_popup, opts({ desc = "Show features popup" })) + vim.keymap.set("n", "Cd", crates.show_dependencies_popup, opts({ desc = "Show dependencies popup" })) + + vim.keymap.set("n", "Cu", crates.update_crate, opts({ desc = "Update crate" })) + vim.keymap.set("v", "Cu", crates.update_crates, opts({ desc = "Update Crates" })) + vim.keymap.set("n", "Cp", crates.update_all_crates, opts({ desc = "Update all crates" })) + vim.keymap.set("n", "CU", crates.upgrade_crate, opts({ desc = "Upgrade crate" })) + vim.keymap.set("v", "CU", crates.upgrade_crates, opts({ desc = "Upgrade crate" })) + vim.keymap.set("n", "CP", crates.upgrade_all_crates, opts({ desc = "Upgrade all crates" })) + + vim.keymap.set( + "n", + "Cx", + crates.expand_plain_crate_to_inline_table, + opts({ desc = "Expand plain crate into inline table" }) + ) + vim.keymap.set("n", "CX", crates.extract_crate_into_table, opts({ desc = "Extract crate into table" })) + + vim.keymap.set("n", "CH", crates.open_homepage, opts({ desc = "Open homepage" })) + vim.keymap.set("n", "CR", crates.open_repository, opts({ desc = "Open repository" })) + vim.keymap.set("n", "CD", crates.open_documentation, opts({ desc = "Open documentation" })) + vim.keymap.set("n", "CC", crates.open_crates_io, opts({ desc = "Open crates.io" })) + end, +}) diff --git a/neovim-ide/plugin/lsp.lua b/neovim-ide/plugin/lsp.lua index de7b64d..5b30371 100644 --- a/neovim-ide/plugin/lsp.lua +++ b/neovim-ide/plugin/lsp.lua @@ -77,3 +77,14 @@ for k, v in pairs(servers) do }, }, v)) end + +vim.g.rustaceanvim = { + server = { + settings = { + -- rust-analyzer language server configuration + ["rust-analyzer"] = { + check = { command = "clippy" }, + }, + }, + }, +}