···11+vim.api.nvim_create_user_command("LspDetach", function (arg)
22+ local buf = vim.api.nvim_get_current_buf()
33+ local servers = vim.lsp.get_clients({ bufnr = buf })
44+ local function detach_server(server)
55+ vim.notify("detaching server '" .. server.name .. "' from current buffer")
66+ vim.lsp.buf_detach_client(buf, server.id)
77+ end
88+ if #servers == 0 then
99+ vim.notify("no LSP client attached to current buffer", vim.log.levels.WARN)
1010+ elseif #servers == 1 then
1111+ detach_server(servers[1])
1212+ else
1313+ -- TODO: detach all servers when arg.bang is true
1414+ vim.ui.select(servers, {
1515+ prompt = "Select Server to detach",
1616+ format_item = function (server)
1717+ return server.name
1818+ end
1919+ }, detach_server)
2020+ end
2121+end, {
2222+ bang = true,
2323+ desc = "Detach Language Server from current buffer",
2424+})
2525+vim.api.nvim_create_user_command("LspLog", function()
2626+ vim.cmd.edit(vim.lsp.log.get_filename())
2727+end, {
2828+ desc = "Open lsp.log file",
2929+})