diff options
| author | triethyl <triethylammonium@pm.me> | 2025-08-16 20:20:21 -0400 |
|---|---|---|
| committer | triethyl <triethylammonium@pm.me> | 2025-08-16 20:20:21 -0400 |
| commit | 58ceb817bb6ba195d1189160878f318f3bcda0ef (patch) | |
| tree | 6c17c013c92af8c6e410bb1d4fe3a2557841d0d3 /pkgs/custom-neovim/config/lua/lsp.lua | |
| parent | 94980b0be13a690128992d98a2ed5db3ab592642 (diff) | |
neovim: restarted config
Diffstat (limited to 'pkgs/custom-neovim/config/lua/lsp.lua')
| -rw-r--r-- | pkgs/custom-neovim/config/lua/lsp.lua | 81 |
1 files changed, 30 insertions, 51 deletions
diff --git a/pkgs/custom-neovim/config/lua/lsp.lua b/pkgs/custom-neovim/config/lua/lsp.lua index a01758c..a4a25bc 100644 --- a/pkgs/custom-neovim/config/lua/lsp.lua +++ b/pkgs/custom-neovim/config/lua/lsp.lua @@ -1,3 +1,23 @@ +-- Lua LS +vim.lsp.config("lua_ls", { + cmd = { 'lua-language-server' }, + filetypes = { 'lua' }, + root_markers = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + '.git', + }, + } +) +vim.lsp.enable("lua_ls") + +-- LSP Autocommands + -- Disable semantic tokens to stop weird highlighting. vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) @@ -16,22 +36,17 @@ vim.api.nvim_create_autocmd('LspAttach', { -- Enable completion triggered by <c-x><c-o> -- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - local mapkey = Utils.mapkey - - -- Workspace management - mapkey('n', "<leader>o", "Manage LSP workspace", "") - mapkey('n', '<leader>oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder) - mapkey('n', '<leader>or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder) - mapkey('n', '<leader>ol', "List Workspace Folders", function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end) + local mapkey = function(mode, key, desc, action, plugin) + local keymapper = plugin and require("lz.n").keymap(plugin).set or vim.keymap.set + keymapper(mode, key, action, {noremap = true, silent = true, desc = desc}) + end -- LSP Pickers mapkey('n', "<leader>a", "Perform code action", ":lua require('actions-preview').code_actions()<cr>") - -- mapkey("n", "<leader>I", "Open workspace diagnostic picker", ":Namu diagnostics<cr>") - mapkey("n", "<leader>i", "Open diagnostic picker", ":Namu diagnostics<cr>") - mapkey("n", "<leader>s", "Open symbol picker", ":Namu symbols<cr>") - mapkey("n", "<leader>S", "Open workspace symbol picker", ":Namu workspace<cr>") + mapkey("n", "<leader>S", "Open workspace symbol picker", [[:Pick lsp scope="workspace_symbol"<cr>]], "mini.pick") + mapkey("n", "<leader>s", "Open symbol picker", [[:Pick lsp scope="document_symbol"<cr>]], "mini.pick") + mapkey("n", "<leader>I", "Open workspace diagnostic picker", [[:Pick diagnostic scope="all"<cr>]], "mini.pick") + mapkey("n", "<leader>i", "Open diagnostic picker", [[:Pick diagnostic scope="current"<cr>]], "mini.pick") -- Goto Keys mapkey('n', 'gD', "Go to declaration", vim.lsp.buf.declaration) @@ -41,47 +56,11 @@ vim.api.nvim_create_autocmd('LspAttach', { -- Other LSP Keys mapkey('n', 'gs', "Signature Help", vim.lsp.buf.signature_help) - mapkey('n', 'gr', "Buffer References", vim.lsp.buf.references) + mapkey('n', 'gR', "Buffer References", vim.lsp.buf.references) + mapkey('n', 'gr', "Open ", vim.lsp.buf.references) mapkey('n', '<leader>r', "Rename Symbol", vim.lsp.buf.rename) mapkey('n', '<leader>h', "Format Buffer", function() vim.lsp.buf.format { async = true } end) end, }) - -local lspconfig = require('lspconfig') - --- Configure individual lsps -lspconfig.nil_ls.setup {} -lspconfig.lua_ls.setup { - on_init = function(client) - local path = client.workspace_folders[1].name - if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then - return - end - - client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { - runtime = { - -- Tell the language server which version of Lua you're using - -- (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT' - }, - -- Make the server aware of Neovim runtime files - workspace = { - checkThirdParty = false, - library = { - vim.env.VIMRUNTIME, - -- Depending on the usage, you might want to add additional paths here. - "${3rd}/luv/library" - -- "${3rd}/busted/library", - } - -- or pull in all of 'runtimepath'. NOTE: this is a lot slower - -- library = vim.api.nvim_get_runtime_file("", true) - } - }) - end, - settings = { - Lua = {} - } -} -lspconfig.marksman.setup {} |
