]> localhost Git - nvim.git/commitdiff
feat: moved lsps elsewhere
authorJansen <[email protected]>
Sun, 18 May 2025 22:15:00 +0000 (18:15 -0400)
committerJansen <[email protected]>
Sun, 18 May 2025 22:15:00 +0000 (18:15 -0400)
lua/keybindings.lua
lua/lsp.lua [new file with mode: 0644]
lua/plugins.lua

index 622a06e1b545d5d08fd4b0fb631be336f8296440..312aea31753a6d9f342d706117c8d4d77784d7bf 100644 (file)
@@ -1,5 +1,41 @@
 local P = {}
 
+P.lsp_keymaps = function(_, bufnr)
+  local bufopts = { noremap = true, silent = true, buffer = bufnr }
+
+  local function n(cmd) return "<cmd>lua " .. cmd .. "()<CR>" end
+  local function ns(cmd)
+    return "<cmd>split | wincmd j | lua " .. cmd .. "()<CR>"
+  end
+  local function nv(cmd)
+    return "<cmd>vsplit | wincmd l | lua " .. cmd .. "()<CR>"
+  end
+  local function nt(cmd)
+    return "<cmd>tab split | lua " .. cmd .. "()<CR>"
+  end
+
+  local function init_g_cmd(key, command)
+    vim.keymap.set('n', '<leader>' .. key, n(command), bufopts)
+    vim.keymap.set('n', '<leader>s' .. key, ns(command), bufopts)
+    vim.keymap.set('n', '<leader>v' .. key, nv(command), bufopts)
+    vim.keymap.set('n', '<leader>t' .. key, nt(command), bufopts)
+  end
+
+  init_g_cmd('gD', "vim.lsp.buf.declaration")
+  init_g_cmd('gd', "vim.lsp.buf.definition")
+  init_g_cmd('gi', "vim.lsp.buf.implementation")
+  init_g_cmd('gf', "vim.lsp.buf.type_definition")
+  vim.keymap.set('n', '<leader>gr', vim.lsp.buf.references, bufopts)
+
+  vim.keymap.set('n', '<leader>kd', vim.diagnostic.open_float, bufopts)
+  vim.keymap.set('n', '<leader>kk', vim.lsp.buf.signature_help, bufopts)
+  vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
+  vim.keymap.set('n', '<leader>ka', vim.lsp.buf.code_action, bufopts)
+  vim.keymap.set('n', '<leader>F', function()
+    vim.lsp.buf.format { async = true }
+  end, bufopts)
+end
+
 P.setup = function()
   vim.g.mapleader = vim.keycode ' '
 
diff --git a/lua/lsp.lua b/lua/lsp.lua
new file mode 100644 (file)
index 0000000..91e18e7
--- /dev/null
@@ -0,0 +1,81 @@
+local lsp_keymaps_on_attach = require('keybindings').lsp_keymaps
+
+local P = {}
+
+local function automatic_setup(lsps)
+  local lspconfig = require("lspconfig")
+
+  for i in pairs(lsps) do
+    lspconfig[lsps[i]].setup { 
+      on_attach = lsp_keymaps_on_attach 
+    }
+  end
+end
+
+local function manual_setup_zig()
+  vim.g.zig_fmt_autosave = 0
+end
+
+local function manual_setup_rust()
+  require("lspconfig")['rust_analyzer'].setup {
+    on_attach = lsp_keymaps_on_attach
+  }
+end
+
+local function manual_setup_lua() 
+  require("lspconfig").lua_ls.setup {
+    on_attach = lsp_keymaps_on_attach,
+    settings = {
+      Lua = {
+        diagnostics = {
+          globals = { 'vim', 'require' },
+        },
+        workspace = { library = vim.api.nvim_get_runtime_file("", true) },
+        telemetry = { enable = false, },
+      },
+    },
+  }
+end
+
+local function manual_setup_deno()
+  local lspconfig = require('lspconfig')
+
+  lspconfig.denols.setup {
+    on_attach = lsp_keymaps_on_attach,
+    root_dir = lspconfig.util.root_pattern("deno.json", "deno.jsonc"),
+  }
+end
+
+local function manual_setup_node()
+  local lspconfig = require('lspconfig')
+
+  lspconfig.ts_ls.setup {
+    on_attach = lsp_keymaps_on_attach,
+    root_dir = lspconfig.util.root_pattern("package.json"),
+    single_file_support = false
+  }
+end
+
+local function manual_setup()
+  manual_setup_zig()
+  manual_setup_rust()
+  manual_setup_lua()
+  manual_setup_deno()
+  manual_setup_node()
+end
+
+P.config = function() 
+  require('mason-lspconfig').setup({ automatic_installation = false })
+
+  local automatic_setup_lsps = {
+    "clangd",
+    "gopls",
+    "zls",
+    "dartls",
+  }
+
+  automatic_setup(automatic_setup_lsps)
+  manual_setup()
+end
+
+return P
index 97ac4a5c76964b2f3f157bb8f408b83770470ded..053b57433f58f156cddbf2b041f709512772097e 100644 (file)
@@ -122,100 +122,6 @@ require("lazy").setup({
   {
     "neovim/nvim-lspconfig",
     dependencies = { "williamboman/mason-lspconfig.nvim", },
-    config = function()
-      local manual = {
-        "deno_ls",
-        "lua_ls",
-        "ts_ls",
-      }
-      local automatic = {
-        "clangd",
-        "gopls",
-        "zls",
-      }
-
-      -- Install LSPs
-      local ensure_installed = {}
-      for k, v in pairs(manual) do ensure_installed[k] = v end
-      for k, v in pairs(automatic) do ensure_installed[k] = v end
-      require('mason-lspconfig').setup({
-        ensure_installed = ensure_installed,
-        automatic_installation = false,
-      })
-
-      -- LSP =========================================================================
-      local function lsp_keymaps_on_attach(_, bufnr)
-        local bufopts = { noremap = true, silent = true, buffer = bufnr }
-
-        -- Open in a new tab
-        local function n(cmd) return "<cmd>lua " .. cmd .. "()<CR>" end
-        local function ns(cmd)
-          return "<cmd>split | wincmd j | lua " .. cmd .. "()<CR>"
-        end
-        local function nv(cmd)
-          return "<cmd>vsplit | wincmd l | lua " .. cmd .. "()<CR>"
-        end
-        local function nt(cmd)
-          return "<cmd>tab split | lua " .. cmd .. "()<CR>"
-        end
-
-        local function init_g_cmd(key, command)
-          vim.keymap.set('n', '<leader>' .. key, n(command), bufopts)
-          vim.keymap.set('n', '<leader>s' .. key, ns(command), bufopts)
-          vim.keymap.set('n', '<leader>v' .. key, nv(command), bufopts)
-          vim.keymap.set('n', '<leader>t' .. key, nt(command), bufopts)
-        end
-
-        init_g_cmd('gD', "vim.lsp.buf.declaration")
-        init_g_cmd('gd', "vim.lsp.buf.definition")
-        init_g_cmd('gi', "vim.lsp.buf.implementation")
-        init_g_cmd('gf', "vim.lsp.buf.type_definition")
-        vim.keymap.set('n', '<leader>gr', vim.lsp.buf.references, bufopts)
-
-        vim.keymap.set('n', '<leader>kd', vim.diagnostic.open_float, bufopts)
-        vim.keymap.set('n', '<leader>kk', vim.lsp.buf.signature_help, bufopts)
-        vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, bufopts)
-        vim.keymap.set('n', '<leader>ka', vim.lsp.buf.code_action, bufopts)
-        vim.keymap.set('n', '<leader>F', function()
-          vim.lsp.buf.format { async = true }
-        end, bufopts)
-      end
-
-      local lspconfig = require("lspconfig")
-      -- Automatic setup
-      for i in pairs(automatic) do
-        lspconfig[automatic[i]].setup { on_attach = lsp_keymaps_on_attach }
-      end
-      lspconfig['dartls'].setup { on_attach = lsp_keymaps_on_attach }
-
-      -- Manual setup
-      vim.g.zig_fmt_autosave = 0
-
-      lspconfig['rust_analyzer'].setup { on_attach = lsp_keymaps_on_attach }
-
-      lspconfig.lua_ls.setup {
-        on_attach = lsp_keymaps_on_attach,
-        settings = {
-          Lua = {
-            diagnostics = {
-              globals = { 'vim', 'require' },
-            },
-            workspace = { library = vim.api.nvim_get_runtime_file("", true) },
-            telemetry = { enable = false, },
-          },
-        },
-      }
-
-      lspconfig.denols.setup {
-        on_attach = lsp_keymaps_on_attach,
-        root_dir = lspconfig.util.root_pattern("deno.json", "deno.jsonc"),
-      }
-
-      lspconfig.ts_ls.setup {
-        on_attach = lsp_keymaps_on_attach,
-        root_dir = lspconfig.util.root_pattern("package.json"),
-        single_file_support = false
-      }
-    end
+    config = require('lsp').config
   },
 })