From ff5d0a1d4569ab77e8bcea139514098aa3f67f4b Mon Sep 17 00:00:00 2001
From: Alexander Gehrke <github@qwertyuiop.de>
Date: Fri, 10 Dec 2021 10:53:10 +0100
Subject: [PATCH] Update LSP plugins

---
 lua/my-lsp.lua | 25 ++++++++++++++-----------
 packages.vim   |  2 +-
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/lua/my-lsp.lua b/lua/my-lsp.lua
index 0cdfab3..39b6213 100644
--- a/lua/my-lsp.lua
+++ b/lua/my-lsp.lua
@@ -1,4 +1,5 @@
-local nvim_lsp = require('lspconfig')
+local lspconfig = require('lspconfig')
+local configs = require('lspconfig.configs')
 
 -- enable snippet support
 local capabilities = vim.lsp.protocol.make_client_capabilities()
@@ -42,17 +43,19 @@ local on_attach = function(client, bufnr)
 	--require'completion'.on_attach(client, bufnr)
 end
 
+local lsp_installer = require("nvim-lsp-installer")
+lsp_installer.on_server_ready(function(server)
+    local opts = {}
 
-require'lspinstall'.setup() -- important
-
-local servers = require'lspinstall'.installed_servers()
-for _, server in pairs(servers) do
-  require'lspconfig'[server].setup{
-    on_attach = on_attach,
-    capabilities = capabilities,
-  }
-end
+    -- (optional) Customize the options passed to the server
+    -- if server.name == "tsserver" then
+    --     opts.root_dir = function() ... end
+    -- end
 
+    -- This setup() function is exactly the same as lspconfig's setup function.
+    -- Refer to https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
+    server:setup(opts)
+end)
 
 metals_config = require("metals").bare_config()
 metals_config.init_options.statusBarProvider = "on"
@@ -68,7 +71,7 @@ vim.cmd [[augroup end]]
 -- map buffer local keybindings when the language server attaches
 local servers = { "lemminx" }
 for _, lsp in ipairs(servers) do
-	nvim_lsp[lsp].setup {
+	lspconfig[lsp].setup {
 		on_attach = on_attach,
 		capabilities = capabilities,
 		flags = {
diff --git a/packages.vim b/packages.vim
index 15a77a5..842fc6e 100644
--- a/packages.vim
+++ b/packages.vim
@@ -29,7 +29,7 @@ Plug 'mhinz/vim-signify'
 
 " Plug 'neoclide/coc.nvim', {'branch': 'release'}
 Plug 'neovim/nvim-lspconfig'
-Plug 'kabouzeid/nvim-lspinstall'
+Plug 'williamboman/nvim-lsp-installer'
 Plug 'scalameta/nvim-metals'
 "Plug 'hrsh7th/nvim-compe'
 Plug 'hrsh7th/nvim-cmp'