diff --git a/lazy-lock.json b/lazy-lock.json index 670c781..23b093d 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,4 +1,5 @@ { + "crates.nvim": { "branch": "main", "commit": "786d12a70c9b91fa2d0d102bb07df02be0db31a1" }, "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, @@ -6,9 +7,10 @@ "neo-tree.nvim": { "branch": "v3.x", "commit": "7aad1bf3f6b849cbf108e02c55ad4d701cb4d33a" }, "noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" }, "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, + "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, - "nvim-treesitter": { "branch": "master", "commit": "3e10cffbb2a022cd8e2aaea9f4fffb514065e77c" }, + "nvim-treesitter": { "branch": "master", "commit": "208d504421e4ac53f4230a34cd4b831e8e76cb69" }, "nvim-web-devicons": { "branch": "master", "commit": "b3468391470034353f0e5110c70babb5c62967d3" }, "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "rustaceanvim": { "branch": "master", "commit": "3d3818a6e4f88e1ccf40088df0cc3f525e0cbdf8" } + "rustaceanvim": { "branch": "master", "commit": "efccc7d7c42e0849a6c85bfd6a8d746729cf08b5" } } \ No newline at end of file diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua new file mode 100644 index 0000000..6e527e1 --- /dev/null +++ b/lua/plugins/cmp.lua @@ -0,0 +1,12 @@ +return { + { + "hrsh7th/nvim-cmp", + dependencies = { + "Saecki/crates.nvim" + }, + opts = function(_, opts) + opts.sources = opts.sources or {} + table.insert(opts.sources, { name = "crates" }) + end + } +} diff --git a/lua/plugins/crates.lua b/lua/plugins/crates.lua new file mode 100644 index 0000000..7e3e06a --- /dev/null +++ b/lua/plugins/crates.lua @@ -0,0 +1,11 @@ +return { + { + "Saecki/crates.nvim", + event = { "BufRead Cargo.toml" }, + opts = { + src = { + cmp = { enabled = true } + } + } + } +} diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index cb85bc9..2432c2b 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -1,6 +1,13 @@ return { { "williamboman/mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { + "codelldb", + "rust-analyzer" + }) + end, config = function() require("mason").setup() end diff --git a/lua/plugins/rustaceanvim.lua b/lua/plugins/rustaceanvim.lua index db12f43..e3a0322 100644 --- a/lua/plugins/rustaceanvim.lua +++ b/lua/plugins/rustaceanvim.lua @@ -2,6 +2,36 @@ return { { "mrcjkb/rustaceanvim", version = "^4", - ft = { "rust" } + lazy = false, + ft = { "rust" }, + opts = { + server = { + default_settings = { + ["rust_analyzer"] = { + cargo = { + allFeatures = true, + loadOutDirsFromCheck = true, + runBuildScripts = true + }, + procMacro = { + enable = true, + ignored = { + ["async-trait"] = { "async_trait" }, + ["napi-derive"] = { "napi" }, + ["async-recursion"] = { "async_recursion" } + } + }, + checkOnSave = { + allFeatures = true, + command = "clippy", + extraArgs = { "--no-deps" } + } + } + } + } + }, + config = function(_, opts) + vim.g.rustaceanvim = vim.tbl_deep_extend("keep", vim.g.rustaceanvim or {}, opts or {}) + end } } diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 830e9cb..814674e 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -9,7 +9,9 @@ return { ensure_installed = { "c", "cpp", - "rust", + "rust", + "ron", + "toml", "javascript", "lua", "vim",