summary refs log tree commit diff
path: root/.vim/lua/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/lsp.lua')
-rw-r--r--.vim/lua/lsp.lua23
1 files changed, 17 insertions, 6 deletions
diff --git a/.vim/lua/lsp.lua b/.vim/lua/lsp.lua
index 364ec86..eb31b94 100644
--- a/.vim/lua/lsp.lua
+++ b/.vim/lua/lsp.lua
@@ -1,6 +1,7 @@
 local lsp        = require('lspconfig')
 local nnoremap   = require('astronauta.keymap').nnoremap
-local spinner_lsp= require('spinner.lsp')
+-- local spinner_lsp = require('spinner.lsp')
+local lspstatus   = require('lsp-status')
 
 require('lspconfig/configs').zk = {
   default_config = {
@@ -20,7 +21,8 @@ local my_attach = function(client, bufnr)
     return
   end
 
-  spinner_lsp.on_attach(client, bufnr)
+  -- spinner_lsp.on_attach(client, bufnr)
+  lspstatus.on_attach(client, bufnr)
 
   if client.resolved_capabilities.goto_definition then
     vim.keymap.set('n', '<C-]>'     , vim.lsp.buf.definition)
@@ -65,10 +67,10 @@ local my_attach = function(client, bufnr)
 end
 
 local my_exit = function(code, signal, client_id)
-  spinner_lsp.on_exit(code, signal, client_id)
+  -- spinner_lsp.on_exit(code, signal, client_id)
 end
 
-local setup = function()
+local capabilities = function()
   local caps = vim.lsp.protocol.make_client_capabilities()
   -- enable lsp-based snippets
   caps.textDocument.completion.completionItem.snippetSupport = true
@@ -79,9 +81,15 @@ local setup = function()
       'additionalTextEdits',
     }
   }
+  -- add window/workDoneProgress capability
+  caps = vim.tbl_extend('keep', caps or {}, lspstatus.capabilities)
+  return caps
+end
 
-  spinner_lsp.setup()
-  spinner_lsp.init_capabilities(caps)
+local setup = function()
+  local caps = capabilities()
+  -- spinner_lsp.setup()
+  -- spinner_lsp.init_capabilities(caps)
 
   -- handler overwrites
   -- configure builtin diagnositics
@@ -224,7 +232,10 @@ end
 
 return {
   my_attach = my_attach,
+  my_exit = my_exit,
+  capabilities = capabilities,
   setup = setup,
+
   format = function(afile)
     local doit = true
     doit = doit and not string.match(afile, "^/home/robert/devel/upstream")