From e90a4f3f66c6e64d187b9f0cbb67133f1a77c0f2 Mon Sep 17 00:00:00 2001 From: pml68 Date: Tue, 16 Sep 2025 23:07:41 +0200 Subject: feat: move lsp configs to `lsp/` --- init.lua | 1 + lsp/asm_lsp.lua | 3 ++ lsp/clangd.lua | 9 ++++ lsp/emmet_language_server.lua | 3 ++ lsp/gopls.lua | 10 +++++ lsp/jsonls.lua | 8 ++++ lsp/lua_ls.lua | 21 +++++++++ lsp/pyright.lua | 14 ++++++ lsp/rust_analyzer.lua | 9 ++++ lua/pml68/configs/lspconfig.lua | 52 ---------------------- lua/pml68/configs/mason.lua | 2 +- lua/pml68/configs/settings/asm_lsp.lua | 3 -- lua/pml68/configs/settings/clangd.lua | 9 ---- .../configs/settings/emmet_language_server.lua | 3 -- lua/pml68/configs/settings/gopls.lua | 10 ----- lua/pml68/configs/settings/jsonls.lua | 8 ---- lua/pml68/configs/settings/lua_ls.lua | 21 --------- lua/pml68/configs/settings/pyright.lua | 14 ------ lua/pml68/configs/settings/rust_analyzer.lua | 9 ---- lua/pml68/lsp.lua | 41 +++++++++++++++++ lua/pml68/plugins/lsp.lua | 3 -- 21 files changed, 120 insertions(+), 133 deletions(-) create mode 100644 lsp/asm_lsp.lua create mode 100644 lsp/clangd.lua create mode 100644 lsp/emmet_language_server.lua create mode 100644 lsp/gopls.lua create mode 100644 lsp/jsonls.lua create mode 100644 lsp/lua_ls.lua create mode 100644 lsp/pyright.lua create mode 100644 lsp/rust_analyzer.lua delete mode 100644 lua/pml68/configs/lspconfig.lua delete mode 100644 lua/pml68/configs/settings/asm_lsp.lua delete mode 100644 lua/pml68/configs/settings/clangd.lua delete mode 100644 lua/pml68/configs/settings/emmet_language_server.lua delete mode 100644 lua/pml68/configs/settings/gopls.lua delete mode 100644 lua/pml68/configs/settings/jsonls.lua delete mode 100644 lua/pml68/configs/settings/lua_ls.lua delete mode 100644 lua/pml68/configs/settings/pyright.lua delete mode 100644 lua/pml68/configs/settings/rust_analyzer.lua create mode 100644 lua/pml68/lsp.lua diff --git a/init.lua b/init.lua index 4207fc1..164a954 100644 --- a/init.lua +++ b/init.lua @@ -1,3 +1,4 @@ require("pml68.settings") require("pml68.remap") +require("pml68.lsp") require("pml68.lazy") diff --git a/lsp/asm_lsp.lua b/lsp/asm_lsp.lua new file mode 100644 index 0000000..da468c7 --- /dev/null +++ b/lsp/asm_lsp.lua @@ -0,0 +1,3 @@ +return { + single_file_support = true, +} diff --git a/lsp/clangd.lua b/lsp/clangd.lua new file mode 100644 index 0000000..c5d4994 --- /dev/null +++ b/lsp/clangd.lua @@ -0,0 +1,9 @@ +return { + cmd = { + vim.fn.stdpath('data') .. "/mason/bin/clangd", + "--header-insertion=never" + }, + on_attach = function(client, bufnr) + client.server_capabilities.signatureHelpProvider = false + end +} diff --git a/lsp/emmet_language_server.lua b/lsp/emmet_language_server.lua new file mode 100644 index 0000000..18073fd --- /dev/null +++ b/lsp/emmet_language_server.lua @@ -0,0 +1,3 @@ +return { + filetypes = { "html", "typescript", "javascript", "css", "sass", "scss", "less", "svelte" }, +} diff --git a/lsp/gopls.lua b/lsp/gopls.lua new file mode 100644 index 0000000..a2b5212 --- /dev/null +++ b/lsp/gopls.lua @@ -0,0 +1,10 @@ +return { + settings = { + gopls = { + completeUnimported = true, + analyses = { + unusedparams = true, + }, + }, + }, +} diff --git a/lsp/jsonls.lua b/lsp/jsonls.lua new file mode 100644 index 0000000..c6c0776 --- /dev/null +++ b/lsp/jsonls.lua @@ -0,0 +1,8 @@ +return { + settings = { + json = { + schemas = require('schemastore').json.schemas(), + validate = { enable = true }, + }, + }, +} diff --git a/lsp/lua_ls.lua b/lsp/lua_ls.lua new file mode 100644 index 0000000..a212aff --- /dev/null +++ b/lsp/lua_ls.lua @@ -0,0 +1,21 @@ +return { + settings = { + Lua = { + runtime = { + version = 'LuaJIT' + }, + diagnostics = { + globals = { "vim" }, + }, + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy", + }, + maxPreload = 100000, + preloadFileSize = 10000, + } + } + } +} diff --git a/lsp/pyright.lua b/lsp/pyright.lua new file mode 100644 index 0000000..b7e9a2a --- /dev/null +++ b/lsp/pyright.lua @@ -0,0 +1,14 @@ +return { + single_file_support = true, + settings = { + python = { + analysis = { + typeCheckingMode = true, + reportUnusedImport = true, + autoSearchPaths = true, + diagnosticMode = "workspace", + useLibraryCodeForTypes = true, + }, + }, + }, +} diff --git a/lsp/rust_analyzer.lua b/lsp/rust_analyzer.lua new file mode 100644 index 0000000..3b687c6 --- /dev/null +++ b/lsp/rust_analyzer.lua @@ -0,0 +1,9 @@ +return { + settings = { + ['rust-analyzer'] = { + cargo = { + allFeatures = true, + }, + }, + }, +} diff --git a/lua/pml68/configs/lspconfig.lua b/lua/pml68/configs/lspconfig.lua deleted file mode 100644 index 0460b4c..0000000 --- a/lua/pml68/configs/lspconfig.lua +++ /dev/null @@ -1,52 +0,0 @@ -local capabilities = vim.tbl_deep_extend("force", - vim.lsp.protocol.make_client_capabilities(), - require('cmp_nvim_lsp').default_capabilities() -) -local lspconfig = require("lspconfig") - -local servers = { - -- "asm_lsp", - "html", - "ts_ls", - "cssls", - "svelte", - "bashls", - "clangd", - "pyright", - "emmet_language_server", - "jsonls", - "rust_analyzer", - "kotlin_language_server", - "lua_ls", - "glsl_analyzer", - "csharp_ls", - "gopls", - "unocss", -} - -vim.api.nvim_create_autocmd({ "BufEnter" }, { - pattern = { "build.sh", "*.subpackage.sh", "PKGBUILD", "*.install", - "makepkg.conf", "*.ebuild", "*.eclass", "color.map", "make.conf" }, - callback = function() - vim.lsp.start({ - name = "termux", - cmd = { "termux-language-server" } - }) - end, -}) - -for _, server in pairs(servers) do - local opts = { - capabilities = capabilities, - on_attach = function(client, bufnr) - require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr) - end - } - - local require_ok, conf_opts = pcall(require, "pml68.configs.settings." .. server) - if require_ok then - opts = vim.tbl_deep_extend("force", opts, conf_opts) - end - - lspconfig[server].setup(opts) -end diff --git a/lua/pml68/configs/mason.lua b/lua/pml68/configs/mason.lua index a317aaa..8635109 100644 --- a/lua/pml68/configs/mason.lua +++ b/lua/pml68/configs/mason.lua @@ -16,7 +16,7 @@ return { "typescript-language-server", "pyright", "glsl_analyzer", - "kotlin-language-server", + "kotlin-lsp", "jdtls", "csharp-language-server", "gopls", diff --git a/lua/pml68/configs/settings/asm_lsp.lua b/lua/pml68/configs/settings/asm_lsp.lua deleted file mode 100644 index da468c7..0000000 --- a/lua/pml68/configs/settings/asm_lsp.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - single_file_support = true, -} diff --git a/lua/pml68/configs/settings/clangd.lua b/lua/pml68/configs/settings/clangd.lua deleted file mode 100644 index c5d4994..0000000 --- a/lua/pml68/configs/settings/clangd.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - cmd = { - vim.fn.stdpath('data') .. "/mason/bin/clangd", - "--header-insertion=never" - }, - on_attach = function(client, bufnr) - client.server_capabilities.signatureHelpProvider = false - end -} diff --git a/lua/pml68/configs/settings/emmet_language_server.lua b/lua/pml68/configs/settings/emmet_language_server.lua deleted file mode 100644 index 18073fd..0000000 --- a/lua/pml68/configs/settings/emmet_language_server.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - filetypes = { "html", "typescript", "javascript", "css", "sass", "scss", "less", "svelte" }, -} diff --git a/lua/pml68/configs/settings/gopls.lua b/lua/pml68/configs/settings/gopls.lua deleted file mode 100644 index a2b5212..0000000 --- a/lua/pml68/configs/settings/gopls.lua +++ /dev/null @@ -1,10 +0,0 @@ -return { - settings = { - gopls = { - completeUnimported = true, - analyses = { - unusedparams = true, - }, - }, - }, -} diff --git a/lua/pml68/configs/settings/jsonls.lua b/lua/pml68/configs/settings/jsonls.lua deleted file mode 100644 index c6c0776..0000000 --- a/lua/pml68/configs/settings/jsonls.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - settings = { - json = { - schemas = require('schemastore').json.schemas(), - validate = { enable = true }, - }, - }, -} diff --git a/lua/pml68/configs/settings/lua_ls.lua b/lua/pml68/configs/settings/lua_ls.lua deleted file mode 100644 index a212aff..0000000 --- a/lua/pml68/configs/settings/lua_ls.lua +++ /dev/null @@ -1,21 +0,0 @@ -return { - settings = { - Lua = { - runtime = { - version = 'LuaJIT' - }, - diagnostics = { - globals = { "vim" }, - }, - workspace = { - checkThirdParty = false, - library = { - vim.env.VIMRUNTIME, - vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy", - }, - maxPreload = 100000, - preloadFileSize = 10000, - } - } - } -} diff --git a/lua/pml68/configs/settings/pyright.lua b/lua/pml68/configs/settings/pyright.lua deleted file mode 100644 index b7e9a2a..0000000 --- a/lua/pml68/configs/settings/pyright.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - single_file_support = true, - settings = { - python = { - analysis = { - typeCheckingMode = true, - reportUnusedImport = true, - autoSearchPaths = true, - diagnosticMode = "workspace", - useLibraryCodeForTypes = true, - }, - }, - }, -} diff --git a/lua/pml68/configs/settings/rust_analyzer.lua b/lua/pml68/configs/settings/rust_analyzer.lua deleted file mode 100644 index 3b687c6..0000000 --- a/lua/pml68/configs/settings/rust_analyzer.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - settings = { - ['rust-analyzer'] = { - cargo = { - allFeatures = true, - }, - }, - }, -} diff --git a/lua/pml68/lsp.lua b/lua/pml68/lsp.lua new file mode 100644 index 0000000..08a6b00 --- /dev/null +++ b/lua/pml68/lsp.lua @@ -0,0 +1,41 @@ +local servers = { + -- "asm_lsp", + "html", + "ts_ls", + "cssls", + "svelte", + "bashls", + "clangd", + "pyright", + "emmet_language_server", + "jsonls", + "rust_analyzer", + "kotlin_lsp", + "lua_ls", + "glsl_analyzer", + "csharp_ls", + "gopls", + "unocss", +} + +vim.api.nvim_create_autocmd({ "BufEnter" }, { + pattern = { "build.sh", "*.subpackage.sh", "PKGBUILD", "*.install", + "makepkg.conf", "*.ebuild", "*.eclass", "color.map", "make.conf" }, + callback = function() + vim.lsp.start({ + name = "termux", + cmd = { "termux-language-server" } + }) + end, +}) + +vim.lsp.config('*', { + -- capabilities = vim.tbl_deep_extend("force", + -- vim.lsp.protocol.make_client_capabilities(), + -- require('cmp_nvim_lsp').default_capabilities()), + on_attach = function(client, bufnr) + require("workspace-diagnostics").populate_workspace_diagnostics(client, bufnr) + end +}) + +vim.lsp.enable(servers) diff --git a/lua/pml68/plugins/lsp.lua b/lua/pml68/plugins/lsp.lua index 90cc935..999320e 100644 --- a/lua/pml68/plugins/lsp.lua +++ b/lua/pml68/plugins/lsp.lua @@ -2,9 +2,6 @@ return { { "neovim/nvim-lspconfig", event = { "BufReadPost", "BufNewFile" }, - config = function() - require("pml68.configs.lspconfig") - end }, { "mason-org/mason.nvim", -- cgit v1.2.3