From 1cebfd8c89a469abc06420293f879427337a138e Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Sun, 12 Oct 2025 13:56:19 +0200 Subject: Ensure nvim v3.0.0 LSP api compliance --- init.lua | 53 ++++++++++++++++++++++++++++++++++++++++++----------- lazy-lock.json | 8 ++++---- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/init.lua b/init.lua index b42faf2..9942d1b 100644 --- a/init.lua +++ b/init.lua @@ -241,28 +241,59 @@ require("lazy").setup( local lsp_servers = { clangd = {filetypes = {"c", "h"}}, svelte = {filetypes = {"svelte"}}, - ts_ls = {filetypes = {"typescript", "typescriptreact", "javascript", "javascriptreact"}}, - rust_analyzer = {filetypes = {"rust"}} + ts_ls = {filetypes = { + "typescript", + "typescriptreact", + "javascript", + "javascriptreact"} + }, + rust_analyzer = { + filetypes = {"rust"}, + imports = { + granularity = { + group = "module", + }, + prefix = "self", + }, + cargo = { + buildScripts = { + enable = true, + }, + }, + procMacro = { + enable = true + }, + } } local function server_maps(opts) local buf = opts.buffer end + + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require("coq").lsp_ensure_capabilities(capabilities) + for server_name, config in pairs(lsp_servers) do - require("lspconfig")[server_name].setup( - coq.lsp_ensure_capabilities( - { + vim.api.nvim_create_autocmd("FileType", { + pattern = config.filetypes, + callback = function() + vim.lsp.start({ + name = server_name, + cmd = vim.lsp.get_server_capabilities(server_name).cmd or { server_name }, + root_dir = vim.fs.dirname(vim.api.nvim_buf_get_name(0)), + capabilities = capabilities, + settings = config.settings, on_attach = function(client, bufnr) server_maps({buffer = bufnr}) - end, - filetypes = config.filetypes, - settings = config.settings or {} - } - ) - ) + end + }) + end + }) end + set_highlights() vim.g.mapleader = " " diff --git a/lazy-lock.json b/lazy-lock.json index 1c6069e..36b9fc6 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,8 +1,8 @@ { "coq.artifacts": { "branch": "artifacts", "commit": "ef5f21d638ccc456cfa5b8d0ab37093cefe48c8b" }, - "coq_nvim": { "branch": "coq", "commit": "2732cfa52fffd32d535c782f418da6fb8bf331ea" }, - "fzf-lua": { "branch": "main", "commit": "ce5a5fa2902933e7b4563ca78210254169463cb6" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "nvim-lspconfig": { "branch": "master", "commit": "c8b90ae5cbe21d547b342b05c9266dcb8ca0de8f" }, + "coq_nvim": { "branch": "coq", "commit": "a63d28a9aa59c20a503ce38608fb6bc7cb3842f4" }, + "fzf-lua": { "branch": "main", "commit": "db3ccffe79480543d8e0f7b0cac0d9b220f9486e" }, + "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, "vim-gitgutter": { "branch": "main", "commit": "488c0555e47e2aabe273c635f7dd233e985311a6" } } -- cgit v1.2.3