local lsp_status = require "lsp-status"
lsp_status.register_progress()
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
capabilities = vim.tbl_extend('keep', capabilities or {}, lsp_status.capabilities)
require("nvim-lsp-installer").on_server_ready(function(server)
local status_handler = lsp_status.extensions[server.name] or {setup = function() end}
local cfg = {
handlers = status_handler.setup(),
capabilities = capabilities,
on_attach = on_attach,
flags = {
-- This will be the default in neovim 0.7+
debounce_text_changes = 150,
},
}
if server.name == "rust_analyzer" then
cfg.settings ={ ['rust-analyzer'] = ra_config }
elseif server.name == "denols" then
cfg.init_options = {
lint = true,
}
end
server:setup(cfg)
end)
vim.cmd [[
function! LspStatus() abort
if luaeval('#vim.lsp.buf_get_clients() > 0')
return luaeval("require('lsp-status').status()")
endif
return ''
endfunction
]]