diff --git a/init.lua b/init.lua index 9d38526f..51581a67 100644 --- a/init.lua +++ b/init.lua @@ -736,7 +736,19 @@ require('lazy').setup({ -- by the server configuration above. Useful when disabling -- certain features of an LSP (for example, turning off formatting for ts_ls) server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) - require('lspconfig')[server_name].setup(server) + + -- Use new vim.lsp.config API for Neovim 0.11+ + local lspconfig_servers = require('lspconfig.configs') + local config = lspconfig_servers[server_name] + if config then + vim.lsp.config(server_name, { + cmd = server.cmd or config.default_config.cmd, + filetypes = server.filetypes or config.default_config.filetypes, + root_markers = config.default_config.root_dir, + capabilities = server.capabilities, + settings = server.settings, + }) + end end, }, } diff --git a/lua/custom/plugins/python.lua b/lua/custom/plugins/python.lua index 6638fb2e..3735f749 100644 --- a/lua/custom/plugins/python.lua +++ b/lua/custom/plugins/python.lua @@ -35,26 +35,32 @@ return { -- Get shared LSP capabilities from blink.cmp local capabilities = require('blink.cmp').get_lsp_capabilities() - -- Setup pyright LSP server - require('lspconfig').pyright.setup { - capabilities = capabilities, - settings = { - python = { - analysis = { - -- Type checking mode: "off", "basic", or "strict" - typeCheckingMode = 'basic', - -- Auto-import completions - autoImportCompletions = true, - -- Automatically search for stubs - autoSearchPaths = true, - -- Use library code for types - useLibraryCodeForTypes = true, - -- Diagnostic mode: "openFilesOnly" or "workspace" - diagnosticMode = 'openFilesOnly', + -- Setup pyright LSP server using new vim.lsp.config API (Neovim 0.11+) + local pyright_config = require('lspconfig.configs').pyright + if pyright_config then + vim.lsp.config('pyright', { + cmd = pyright_config.default_config.cmd, + filetypes = pyright_config.default_config.filetypes, + root_markers = pyright_config.default_config.root_dir, + capabilities = capabilities, + settings = { + python = { + analysis = { + -- Type checking mode: "off", "basic", or "strict" + typeCheckingMode = 'basic', + -- Auto-import completions + autoImportCompletions = true, + -- Automatically search for stubs + autoSearchPaths = true, + -- Use library code for types + useLibraryCodeForTypes = true, + -- Diagnostic mode: "openFilesOnly" or "workspace" + diagnosticMode = 'openFilesOnly', + }, }, }, - }, - } + }) + end -- Install Python tools via Mason require('mason-tool-installer').setup { diff --git a/lua/custom/plugins/svelte.lua b/lua/custom/plugins/svelte.lua index 8ca48362..971dcbb5 100644 --- a/lua/custom/plugins/svelte.lua +++ b/lua/custom/plugins/svelte.lua @@ -38,47 +38,62 @@ return { -- Get shared LSP capabilities from blink.cmp local capabilities = require('blink.cmp').get_lsp_capabilities() - -- Setup Svelte LSP server - require('lspconfig').svelte.setup { - capabilities = capabilities, - settings = { - svelte = { - plugin = { - html = { completions = { enable = true, emmet = true } }, - svelte = { completions = { enable = true } }, - css = { completions = { enable = true } }, - typescript = { diagnostics = { enable = true } }, + -- Setup Svelte LSP server using new vim.lsp.config API (Neovim 0.11+) + local svelte_config = require('lspconfig.configs').svelte + if svelte_config then + vim.lsp.config('svelte', { + cmd = svelte_config.default_config.cmd, + filetypes = svelte_config.default_config.filetypes, + root_markers = svelte_config.default_config.root_dir, + capabilities = capabilities, + settings = { + svelte = { + plugin = { + html = { completions = { enable = true, emmet = true } }, + svelte = { completions = { enable = true } }, + css = { completions = { enable = true } }, + typescript = { diagnostics = { enable = true } }, + }, }, }, - }, - } + }) + end - -- Optional: Setup TypeScript LSP for .ts/.js files in Svelte projects - require('lspconfig').ts_ls.setup { - capabilities = capabilities, - -- Configure to work well with Svelte - filetypes = { - 'javascript', - 'javascriptreact', - 'typescript', - 'typescriptreact', - }, - } + -- Setup TypeScript LSP for .ts/.js files in Svelte projects + local tsserver_config = require('lspconfig.configs').ts_ls + if tsserver_config then + vim.lsp.config('ts_ls', { + cmd = tsserver_config.default_config.cmd, + filetypes = { + 'javascript', + 'javascriptreact', + 'typescript', + 'typescriptreact', + }, + root_markers = tsserver_config.default_config.root_dir, + capabilities = capabilities, + }) + end - -- Optional: Setup Tailwind CSS LSP if you're using Tailwind - require('lspconfig').tailwindcss.setup { - capabilities = capabilities, - filetypes = { - 'svelte', - 'html', - 'css', - 'scss', - 'javascript', - 'javascriptreact', - 'typescript', - 'typescriptreact', - }, - } + -- Setup Tailwind CSS LSP if you're using Tailwind + local tailwind_config = require('lspconfig.configs').tailwindcss + if tailwind_config then + vim.lsp.config('tailwindcss', { + cmd = tailwind_config.default_config.cmd, + filetypes = { + 'svelte', + 'html', + 'css', + 'scss', + 'javascript', + 'javascriptreact', + 'typescript', + 'typescriptreact', + }, + root_markers = tailwind_config.default_config.root_dir, + capabilities = capabilities, + }) + end -- Install web development tools via Mason require('mason-tool-installer').setup {