summary refs log tree commit diff
path: root/.vim/lua/internal/statusline.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-10-14 20:57:03 +0200
committerRobert Günzler <r@gnzler.io>2022-10-14 21:01:15 +0200
commit2d2009413f8be624a7cca95cf702e32d9315cbef (patch)
treef024c1b5b27b886530e86221593e3cfdc3672d7e /.vim/lua/internal/statusline.lua
parent6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 (diff)
vim: move custom modules under internal/
Diffstat (limited to '')
-rw-r--r--.vim/lua/internal/statusline.lua (renamed from .vim/lua/statusline.lua)76
1 files changed, 39 insertions, 37 deletions
diff --git a/.vim/lua/statusline.lua b/.vim/lua/internal/statusline.lua
index c0c185d..97f5031 100644
--- a/.vim/lua/statusline.lua
+++ b/.vim/lua/internal/statusline.lua
@@ -1,12 +1,3 @@
-
-local spinner_ok, spinner = pcall(require, 'spinner')
-if spinner_ok then
-  spinner.setup {
-    spinner = {'⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'},
-    interval = 120, -- spinner frame rate in ms
-  }
-end
-
 function _G.statusline()
   local bufnr = vim.fn.bufnr() or 0
   local hi = statusline_color(vim.fn.mode())
@@ -14,13 +5,16 @@ function _G.statusline()
   local sl = hi
   -- sl = sl .. statusline_append([[ ⢷]], 'StatusLineIcon', hi)
 
+  sl = sl .. statusline_append(statusline_lightbulb(),
+    'StatusLineLightbulb', hi)
+
   sl = sl .. statusline_append(statusline_ts(),
     'StatusLineTreesitter', hi)
 
   sl = sl .. statusline_append(statusline_lsp_diagnostics(bufnr, hi),
     'StatusLineDiagnostics', hi)
 
-  sl = sl .. statusline_append(vim.trim(require('lsp-status').status()),
+  sl = sl .. statusline_append(statusline_lspstatus(),
     'StatusLineLsp', hi)
 
   sl = sl .. statusline_append(statusline_dap(),
@@ -31,13 +25,8 @@ function _G.statusline()
   sl = sl .. statusline_append(statusline_notify(hi),
     'StatusLineNotify', hi)
 
-  if spinner_ok then
-    sl = sl .. statusline_append(spinner.status(bufnr),
-      'StatusLineJobs', hi)
-  end
-
-  sl = sl .. statusline_append(require('nvim-lightbulb').get_status_text(),
-    'StatusLineLightbulb', hi)
+  sl = sl .. statusline_append(statusline_spinner(bufnr),
+    'StatusLineJobs', hi)
 
   sl = sl .. statusline_append([[ %l:%v --%p%%-- %y]], hi, hi)
 
@@ -58,8 +47,6 @@ function _G.statusline_color(mode)
   -- return '%{g:actual_curwin==win_getid()?'.. hi ..':%#StatusLineNC#}'
   return hi
 end
-
--- statusline_append
 -- does item highlighting and conditionnal spacing
 function _G.statusline_append(element, hi, default_hi, opts)
   if not element or element == '' then return '' end
@@ -71,6 +58,18 @@ function _G.statusline_append(element, hi, default_hi, opts)
   if opts.append_space then el = el .. ' ' end
   return el
 end
+function _G.statusline_combine_hi(outer_name, inner_name)
+  local outer = vim.api.nvim_get_hl_by_id(vim.api.nvim_get_hl_id_by_name(outer_name), true)
+  local inner = vim.api.nvim_get_hl_by_id(vim.api.nvim_get_hl_id_by_name(inner_name), true)
+  local hi = 'auto' .. outer_name .. inner_name
+  if pcall(vim.api.nvim_get_hl_by_name, hi, true)  then return hi end
+  local gui
+  gui = inner.bold and 'bold'
+  gui = inner.italic and 'italic'
+  gui = inner.underline and 'underline'
+  vim.api.nvim_set_hl(0, hi, {bg = outer.background, fg = inner.foreground, gui = gui})
+  return hi
+end
 
 function _G.statusline_lsp_diagnostics(bufnr, default_hi)
   local error_num = vim.diagnostic.get(bufnr, {severity=vim.diagnostic.severity.ERROR})
@@ -87,21 +86,10 @@ function _G.statusline_lsp_diagnostics(bufnr, default_hi)
   end
   return vim.trim(s)
 end
-
-function _G.statusline_combine_hi(outer_name, inner_name)
-  local outer = vim.api.nvim_get_hl_by_id(vim.api.nvim_get_hl_id_by_name(outer_name), true)
-  local inner = vim.api.nvim_get_hl_by_id(vim.api.nvim_get_hl_id_by_name(inner_name), true)
-  local hi = 'auto' .. outer_name .. inner_name
-  if pcall(vim.api.nvim_get_hl_by_name, hi, true)  then return hi end
-  local gui
-  gui = inner.bold and 'bold'
-  gui = inner.italic and 'italic'
-  gui = inner.underline and 'underline'
-  vim.api.nvim_set_hl(0, hi, {bg = outer.background, fg = inner.foreground, gui = gui})
-  return hi
-end
 function _G.statusline_ts()
-  local data = require('nvim-navic').get_data()
+  local navic = package.loaded['nvim-navic']
+  if not navic then return '' end
+  local data = navic.get_data()
   if not data then return '' end
   local s = {}
   for i = 1, #data do
@@ -109,10 +97,24 @@ function _G.statusline_ts()
   end
   return table.concat(s, ' > ')
 end
+function _G.statusline_lspstatus()
+  local lst = package.loaded['lsp-status']
+  if not lst then return '' end
+  return vim.trim(lst.status())
+end
+function _G.statusline_lightbulb()
+  local lb = package.loaded['nvim-lightbulb']
+  if not lb then return '' end
+  return lb.get_status_text()
+end
+function _G.statusline_spinner(bufnr)
+  local sp = package.loaded.spinner
+  if not sp then return '' end
+  return sp.status(bufnr)
+end
 function _G.statusline_dap()
-  local dap_ok, dap = pcall(require, 'dap')
-  if not dap_ok then return '' end
-
+  local dap = package.loaded.dap
+  if not dap then return '' end
   local s = dap.status()
   if s == '' then return s end
   return '[DAP: ' .. s .. ']'
@@ -186,7 +188,7 @@ local notify = function(m, l, o)
     end
     table.insert(args, 'nvim')
     table.insert(args, display)
-    require('job').jobstart { command = 'notify-send', args = args }
+    require('internal.job').jobstart { command = 'notify-send', args = args }
   end
 end