summary refs log tree commit diff
path: root/.vim/init.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2021-11-02 17:41:56 +0100
committerRobert Günzler <r@gnzler.io>2021-11-02 19:06:48 +0100
commita1149828dd403d4811e3615540cf8bbd98c56a6b (patch)
treee8207a118e4bdd2e5a2a21b4809ddb18b78da336 /.vim/init.lua
parenta7b411e639eaaf6ec1f651292a884f15f3703a97 (diff)
vim: bring lightbulb to statusline
Diffstat (limited to '')
-rw-r--r--.vim/init.lua20
1 files changed, 13 insertions, 7 deletions
diff --git a/.vim/init.lua b/.vim/init.lua
index a3d7487..51f3ade 100644
--- a/.vim/init.lua
+++ b/.vim/init.lua
@@ -163,24 +163,30 @@ function _G.statusline()
   local sl = ''
   -- left
   sl = sl .. hi
-  sl = sl .. statusline_hi(' ⢷', '%#StatusLineIcon#', hi)
+  sl = sl .. statusline_append(' ⢷', '%#StatusLineIcon#', hi)
   sl = sl .. [[ %<%F %-m %-r ]]
+
   -- right
   sl = sl .. [[ %= ]] -- spacer
 
   local lsp_spinner = require('spinner').status(vim.fn.bufnr())
+  sl = sl .. statusline_append(lsp_spinner, '%#StatusLineJobs#', hi)
+
   local lsp_diagnostics = statusline_lsp_diagnostics(vim.fn.bufnr())
+  sl = sl .. statusline_append(lsp_diagnostics, '%#StatusLineDiagnostics#', hi)
+
+  local lsp_lightbulb = require('nvim-lightbulb').get_status_text()
+  sl = sl .. statusline_append(lsp_lightbulb, '%#StatusLineLightbulb#', hi)
 
-  sl = sl .. statusline_hi(lsp_spinner, '%#StatusLineJobs#', hi)
-  sl = sl .. ' '
-  sl = sl .. statusline_hi(lsp_diagnostics, '%#StatusLineDiagnostics#', hi)
   sl = sl .. [[  %l:%v %y ]]
   return sl
 end
-function _G.statusline_hi(element, hi, default)
+-- statusline_append
+-- does item highlighting and conditionnal spacing
+function _G.statusline_append(element, hi, default_hi)
   if not element or element == '' then return '' end
-  if not (default == '%*') then hi = '' end
-  return hi .. element .. default
+  if not (default_hi == '%*') then hi = '' end
+  return hi .. element .. default_hi .. ' '
 end
 function _G.statusline_color(mode)
   local hi = '%*'