From 1ee103951abbf54a37077a31174bd33532f18866 Mon Sep 17 00:00:00 2001 From: kalmenn Date: Wed, 27 Dec 2023 00:52:20 +0100 Subject: [PATCH] lsp: added rust-tools --- init.lua | 6 ----- lazy-lock.json | 10 ++++--- lua/plugins/lsp.lua | 66 ++++++++++++++++++++++++++++++--------------- 3 files changed, 51 insertions(+), 31 deletions(-) diff --git a/init.lua b/init.lua index aa7c164..d79b525 100644 --- a/init.lua +++ b/init.lua @@ -16,12 +16,6 @@ vim.opt.rtp:prepend(lazypath) require('lazy').setup({ { import = "plugins" } }) ---[[ - To add: - - https://github.com/nvim-lualine/lualine.nvim - - https://github.com/simrat39/rust-tools.nvim -]]-- - require("sets") require("remaps") diff --git a/lazy-lock.json b/lazy-lock.json index 16c04f7..799f496 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,16 +1,18 @@ { - "fd": { "branch": "master", "commit": "266311ca33a78924dcad1fc13f99974098286ed0" }, + "crates.nvim": { "branch": "main", "commit": "8437522d12a8c523da2aee9db2979d070b2ecc33" }, + "fd": { "branch": "master", "commit": "00b64f3ccbfb832ef744bb42bbdfabaf929b5ee2" }, "feline.nvim": { "branch": "main", "commit": "a6bebd903e84d5ce0e97c597e0ca85cd24109002" }, "gitsigns.nvim": { "branch": "main", "commit": "d195f0c35ced5174d3ecce1c4c8ebb3b5bc23fa9" }, "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "77d9f484b88fd380386b46ed9206e5374d69d9d8" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "230ff118613fa07138ba579b89d13ec2201530b9" }, "nui.nvim": { "branch": "main", "commit": "c9b4de623d19a85b353ff70d2ae9c77143abe69c" }, "nvim": { "branch": "main", "commit": "079500a625f3ae5aa6efb758f1a17fe4c7a57e52" }, - "nvim-lspconfig": { "branch": "master", "commit": "6772c1ccec801f2bd099065bebc09debc6474892" }, - "nvim-treesitter": { "branch": "master", "commit": "c153019e11052f38cdf2bdd338750cd103877eba" }, + "nvim-lspconfig": { "branch": "master", "commit": "eb81c7ea08d6f01d5fa4cf09e58c708efadf9b2f" }, + "nvim-treesitter": { "branch": "master", "commit": "25ddfde8d7167d7d81403d6809242439037d2b68" }, "nvim-web-devicons": { "branch": "master", "commit": "a1425903ab52a0a0460622519e827f224e5b4fee" }, "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, "ripgrep": { "branch": "master", "commit": "3f2fe0afee0d1a1eeb3235904cfef4f35c4644dc" }, + "rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" }, "telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, "undotree": { "branch": "master", "commit": "36ff7abb6b60980338344982ad4cdf03f7961ecd" } } \ No newline at end of file diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index f8152e7..8784c48 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -28,31 +28,55 @@ vim.api.nvim_create_autocmd('LspAttach', { }) return { - "neovim/nvim-lspconfig", - config = function() - local lspconfig = require("lspconfig") + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require("lspconfig") - lspconfig.pyright.setup({}) + lspconfig.pyright.setup({}) - lspconfig.rust_analyzer.setup({}) + lspconfig.rust_analyzer.setup({}) - lspconfig.lua_ls.setup({ - settings = { - Lua = { - runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = "LuaJIT", - }, - workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, + lspconfig.lua_ls.setup({ + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = "LuaJIT", + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file("", true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, }, }, + }) + end + }, + { + "simrat39/rust-tools.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + { + "Saecki/crates.nvim", + tag = 'stable', }, - }) - end + }, + opts = { + server = { + on_attach = function(_, bufnr) + local rt = require("rust-tools"); + -- Hover actions + vim.keymap.set("n", "", rt.hover_actions.hover_actions, { buffer = bufnr }) + -- Code action groups + vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) + end, + }, + }, + event = { "LspAttach *.rs" }, + } }