diff --git a/lazy-lock.json b/lazy-lock.json index 72f9d95..a4cddcf 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,39 +1,38 @@ { - "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, + "LuaSnip": { "branch": "master", "commit": "5271933f7cea9f6b1c7de953379469010ed4553a" }, + "catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "crates.nvim": { "branch": "main", "commit": "73d2c590c74a0c582144987a4decb4a642755859" }, + "crates.nvim": { "branch": "main", "commit": "5d8b1bef686db0fabe5f1bb593744b617e8f1405" }, "diagflow.nvim": { "branch": "main", "commit": "b13321b517ff64bf42eeac2214085d3c76d83a0d" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, - "gitsigns.nvim": { "branch": "main", "commit": "2149fc2009d1117d58e86e56836f70c969f60a82" }, + "gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lsp-zero.nvim": { "branch": "v3.x", "commit": "77550f2f6cbf0959ef1583d845661af075f3442b" }, "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, - "lualine.nvim": { "branch": "master", "commit": "86fe39534b7da729a1ac56c0466e76f2c663dc42" }, + "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, "mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" }, "mini.indentscope": { "branch": "main", "commit": "8af2569a7d7fd37300dfa760e44e71efbbf322fd" }, "mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" }, "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, - "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lspconfig": { "branch": "master", "commit": "747de98ca607615f66af5864f3eeaa2eeeb3d2da" }, - "nvim-navic": { "branch": "master", "commit": "39231352aec0d1e09cebbffdd9dc20a5dc691ffe" }, - "nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" }, + "nvim-lspconfig": { "branch": "master", "commit": "a182334ba933e58240c2c45e6ae2d9c7ae313e00" }, + "nvim-navic": { "branch": "master", "commit": "f887d794a0f4594882814d7780980a949200a238" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, - "nvim-web-devicons": { "branch": "master", "commit": "855c97005c8eebcdd19846f2e54706bffd40ee96" }, + "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "ripgrep": { "branch": "master", "commit": "6dfaec03e830892e787686917509c17860456db1" }, + "ripgrep": { "branch": "master", "commit": "cbc598f245f3c157a872b69102653e2e349b6d92" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" }, - "telescope.nvim": { "branch": "master", "commit": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" }, - "vim-illuminate": { "branch": "master", "commit": "1fa4b23409e22a03823648e344c77f260e2572cb" }, + "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, "vim-lumen": { "branch": "master", "commit": "97157aac9f0d24c144a3defdfe5057ee61e18dcb" }, "vim-numbertoggle": { "branch": "main", "commit": "075b7478777e694fbac330ee34a74590dad0fee1" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, - "vimtex": { "branch": "master", "commit": "cfd4e528b0b44804b51a2929ddcde0b99ebae52f" }, + "vimtex": { "branch": "master", "commit": "22d9ae5265df069cb68310449a7218b836875c5b" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/lua/plugins/lang/bash.lua b/lua/plugins/lang/bash.lua index 72926fc..456e225 100644 --- a/lua/plugins/lang/bash.lua +++ b/lua/plugins/lang/bash.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { bashls = {}, diff --git a/lua/plugins/lang/c.lua b/lua/plugins/lang/c.lua index 0ed56fd..0238965 100644 --- a/lua/plugins/lang/c.lua +++ b/lua/plugins/lang/c.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { clangd = { diff --git a/lua/plugins/lang/go.lua b/lua/plugins/lang/go.lua index dbfb57b..4a74f53 100644 --- a/lua/plugins/lang/go.lua +++ b/lua/plugins/lang/go.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { gopls = {}, diff --git a/lua/plugins/lang/python.lua b/lua/plugins/lang/python.lua index 8bd9d16..96183a0 100644 --- a/lua/plugins/lang/python.lua +++ b/lua/plugins/lang/python.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { pylsp = {}, diff --git a/lua/plugins/lang/racket.lua b/lua/plugins/lang/racket.lua index 4d485e3..0126b39 100644 --- a/lua/plugins/lang/racket.lua +++ b/lua/plugins/lang/racket.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { racket_langserver = {}, diff --git a/lua/plugins/lang/rust.lua b/lua/plugins/lang/rust.lua index 615fbbc..d4c9473 100644 --- a/lua/plugins/lang/rust.lua +++ b/lua/plugins/lang/rust.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { rust_analyzer = { diff --git a/lua/plugins/lang/tex.lua b/lua/plugins/lang/tex.lua index aff45ec..503d175 100644 --- a/lua/plugins/lang/tex.lua +++ b/lua/plugins/lang/tex.lua @@ -1,6 +1,6 @@ return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { texlab = {}, diff --git a/lua/plugins/lang/typst.lua b/lua/plugins/lang/typst.lua index 2aaf442..86c9023 100644 --- a/lua/plugins/lang/typst.lua +++ b/lua/plugins/lang/typst.lua @@ -29,7 +29,7 @@ vim.api.nvim_create_autocmd("FileType", { return { { - "VonHeikemen/lsp-zero.nvim", + "neovim/nvim-lspconfig", opts = { my_servers = { tinymist = { diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 5c0f19d..db2ca16 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,53 +1,58 @@ return { { - "VonHeikemen/lsp-zero.nvim", - branch = "v3.x", + "neovim/nvim-lspconfig", + event = { "BufReadPre", "BufNewFile" }, dependencies = { - "neovim/nvim-lspconfig", "SmiteshP/nvim-navic", }, opts = { - -- Servers configured in my_servers will automatically have - -- require("lspconfig")[server].setup(server_opts) called on them + -- Servers configured in my_servers will be automatically configured my_servers = {}, }, config = function(_, opts) - local lsp_zero = require("lsp-zero") local lspconfig = require("lspconfig") - -- enable lsp-zero - lsp_zero.on_attach(function(client, buffnr) - -- set lsp keybinds - -- NOTE: this check is needed since crates.nvim will overwrite "K" - if not vim.fn.mapcheck("K", "n") then - vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show documentation" }) - end - vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" }) - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Go to declaration" }) - vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { desc = "Go to implementation" }) - vim.keymap.set("n", "r", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" }) - vim.keymap.set("n", "", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" }) - vim.keymap.set("n", "a", vim.lsp.buf.code_action, { desc = "Open code actions" }) - vim.keymap.set("n", "m", vim.lsp.buf.format, { desc = "Format current file" }) + -- configure keybinds + navic at attach time + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local client = assert(vim.lsp.get_client_by_id(args.data.client_id)) - -- use telescope for LSP references, etc - vim.keymap.set("n", "gr", "Telescope lsp_references", { buffer = buffnr, desc = "Go to references" }) - vim.keymap.set("n", "go", "Telescope lsp_type_definitions", { desc = "Go to object type definition" }) - vim.keymap.set("n", "d", "Telescope diagnostics bufnr=0", { desc = "Open file diagnostic list" }) - vim.keymap.set("n", "D", "Telescope diagnostics", { desc = "Open workspace diagnostic list" }) + -- set lsp keybinds + -- NOTE: this check is needed since crates.nvim will overwrite "K" + if not vim.fn.mapcheck("K", "n") then + vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show documentation" }) + end + vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" }) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Go to declaration" }) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { desc = "Go to implementation" }) + vim.keymap.set("n", "r", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" }) + vim.keymap.set("n", "", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" }) + vim.keymap.set("n", "a", vim.lsp.buf.code_action, { desc = "Open code actions" }) + vim.keymap.set("n", "m", vim.lsp.buf.format, { desc = "Format current file" }) - -- Use navic for context hints - if client.supports_method("textDocument/documentSymbol") then - require("nvim-navic").attach(client, buffnr) - end - end) + -- use telescope for LSP references, etc + vim.keymap.set("n", "gr", "Telescope lsp_references", { buffer = buffnr, desc = "Go to references" }) + vim.keymap.set("n", "go", "Telescope lsp_type_definitions", { desc = "Go to object type definition" }) + vim.keymap.set("n", "d", "Telescope diagnostics bufnr=0", { desc = "Open file diagnostic list" }) + vim.keymap.set("n", "D", "Telescope diagnostics", { desc = "Open workspace diagnostic list" }) + + -- Use navic for context hints + if client.supports_method("textDocument/documentSymbol") then + require("nvim-navic").attach(client, args.buf) + end + end, + }) -- use pretty icons instead of 'W', 'E', ... - lsp_zero.set_sign_icons({ - error = '✘', - warn = '▲', - hint = '⚑', - info = '»' + vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = '✘', + [vim.diagnostic.severity.WARN] = '▲', + [vim.diagnostic.severity.HINT] = '⚑', + [vim.diagnostic.severity.INFO] = '»', + }, + }, }) -- disable LSP logging @@ -56,7 +61,8 @@ return { -- Set up language servers local servers = opts.my_servers for server, server_opts in pairs(servers) do - require("lspconfig")[server].setup(server_opts) + vim.lsp.config(server, server_opts) + vim.lsp.enable(server) end end, }, @@ -116,6 +122,8 @@ return { { name = "buffer" }, }), mapping = { + [""] = cmp.mapping.select_prev_item({}, {'i'}), + [""] = cmp.mapping.select_next_item({}, {'i'}), -- Use "Enter" for auto completion [""] = cmp.mapping.confirm({select = false}), [""] = tab_mapping, @@ -150,6 +158,9 @@ return { event = "LspAttach", opts = { scope = "line", + + -- don't show diagnostics in insert mode + toggle_event = { "InsertEnter" }, }, },