summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-05-18 16:26:54 +0200
committerRobert Günzler <r@gnzler.io>2022-05-27 14:08:50 +0200
commit218dc8598caa03dc8f6beb8d4e1fafce87597bf4 (patch)
tree3f93cb2698662402be44569f4b5b27281fd65e28
parentcfb3bccc73a959ecf34661b2a1b00f0315f707cb (diff)
vim: gracefully handle absence of spinner.nvim
-rw-r--r--.vim/lua/job.lua4
-rw-r--r--.vim/lua/lsp.lua5
-rw-r--r--.vim/lua/plugins.lua1
-rw-r--r--.vim/lua/statusline.lua19
4 files changed, 15 insertions, 14 deletions
diff --git a/.vim/lua/job.lua b/.vim/lua/job.lua
index 0969861..d3f4b81 100644
--- a/.vim/lua/job.lua
+++ b/.vim/lua/job.lua
@@ -1,5 +1,5 @@
 local Job = require ('plenary.job')
-local spinner = require('spinner.core')
+local spinner_ok, spinner = pcall(require, 'spinner.core')
 
 local M = {
   current_jobs = {}
@@ -16,7 +16,7 @@ function M.jobstart(opts)
 
   -- default options
   -- opts.enable_recording = true
-  opts.enable_spinner = opts.enable_spinner or true
+  opts.enable_spinner = (opts.enable_spinner or true) and spinner_ok
   opts.populate_quickfix = opts.populate_quickfix or true
 
   local title
diff --git a/.vim/lua/lsp.lua b/.vim/lua/lsp.lua
index 215b269..9d80889 100644
--- a/.vim/lua/lsp.lua
+++ b/.vim/lua/lsp.lua
@@ -1,5 +1,4 @@
 local lsp         = require('lspconfig')
--- local spinner_lsp = require('spinner.lsp')
 local lspstatus   = require('lsp-status')
 
 local my_attach = function(client, bufnr)
@@ -27,7 +26,6 @@ local my_attach = function(client, bufnr)
     end,
   })
 
-  -- spinner_lsp.on_attach(client, bufnr)
   lspstatus.on_attach(client)
 
   if client.supports_method('textDocument/definition') then
@@ -98,7 +96,6 @@ local my_attach = function(client, bufnr)
 end
 
 local my_exit = function(_, _, _)
-  -- spinner_lsp.on_exit(code, signal, client_id)
 end
 
 local capabilities = function()
@@ -231,8 +228,6 @@ local servers = {
 
 local setup = function()
   local caps = capabilities()
-  -- spinner_lsp.setup()
-  -- spinner_lsp.init_capabilities(caps)
   for server, opts in pairs(servers) do
     if not opts.disabled then
       opts = vim.tbl_extend('error', opts, {
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua
index c29d2c2..f553966 100644
--- a/.vim/lua/plugins.lua
+++ b/.vim/lua/plugins.lua
@@ -350,7 +350,6 @@ require('packer').startup({function()
     end} -- }}}
 
   use {'neovim/nvim-lspconfig', -- {{{
-    requires = {'~/devel/projects/spinner.nvim'},
     config = function()
       require('lsp').setup()
     end} -- }}}
diff --git a/.vim/lua/statusline.lua b/.vim/lua/statusline.lua
index 796342e..e0dc104 100644
--- a/.vim/lua/statusline.lua
+++ b/.vim/lua/statusline.lua
@@ -1,8 +1,13 @@
 
-require('spinner').setup {
-  spinner = {'⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'},
-  interval = 120, -- spinner frame rate in ms
-}
+local spinner_ok, spinner = pcall(require, 'spinner')
+if not spinner_ok then
+  vim.notify('spinner not found')
+else
+  spinner.setup {
+    spinner = {'⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'},
+    interval = 120, -- spinner frame rate in ms
+  }
+end
 
 function _G.statusline()
   local bufnr = vim.fn.bufnr() or 0
@@ -23,8 +28,10 @@ function _G.statusline()
   local lsp_status = require('lsp-status').status()
   sl = sl .. statusline_append(vim.trim(lsp_status), '%#StatusLineLsp#', hi)
 
-  local lsp_spinner = require('spinner').status(bufnr)
-  sl = sl .. statusline_append(lsp_spinner, '%#StatusLineJobs#', hi)
+  if spinner_ok then
+    local lsp_spinner = spinner.status(bufnr)
+    sl = sl .. statusline_append(lsp_spinner, '%#StatusLineJobs#', hi)
+  end
 
   local lsp_diagnostics = statusline_lsp_diagnostics(bufnr, hi)
   sl = sl .. statusline_append(lsp_diagnostics, '%#StatusLineDiagnostics#', hi)