neovim configuration using rocks.nvim plugin manager
at main 1.6 kB view raw
1vim.api.nvim_create_user_command("LspDetach", function (arg) 2 local buf = vim.api.nvim_get_current_buf() 3 local servers = vim.lsp.get_clients({ bufnr = buf }) 4 local function detach_server(server) 5 vim.notify("detaching server '" .. server.name .. "' from current buffer") 6 vim.lsp.buf_detach_client(buf, server.id) 7 end 8 if #servers == 0 then 9 vim.notify("no LSP client attached to current buffer", vim.log.levels.WARN) 10 elseif #servers == 1 then 11 detach_server(servers[1]) 12 else 13 -- TODO: detach all servers when arg.bang is true 14 vim.ui.select(servers, { 15 prompt = "Select Server to detach", 16 format_item = function (server) 17 return server.name 18 end 19 }, detach_server) 20 end 21end, { 22 bang = true, 23 desc = "Detach Language Server from current buffer", 24}) 25vim.api.nvim_create_user_command("LspLog", function() 26 vim.cmd.edit(vim.lsp.log.get_filename()) 27end, { 28 desc = "Open lsp.log file", 29}) 30vim.api.nvim_create_user_command("TSEditQuery", function (opts) 31 local lang = opts.fargs[1] 32 local query = opts.fargs[2] 33 local files = vim.treesitter.query.get_files(lang, query) 34 if #files == 1 then 35 vim.cmd.edit(files[1]) 36 return 37 elseif #files < 1 then 38 vim.notify(("can't find '%s' query for language '%s'"):format(query, lang)) 39 return 40 end 41 vim.ui.select(files, { 42 prompt = "Select query file", 43 }, function (choice) 44 vim.cmd.edit(choice) 45 end) 46end, { 47 nargs = "+", 48 desc = "", 49})