diff options
| author | Robert Günzler <r@gnzler.io> | 2022-10-14 20:57:03 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-10-14 21:01:15 +0200 |
| commit | 2d2009413f8be624a7cca95cf702e32d9315cbef (patch) | |
| tree | f024c1b5b27b886530e86221593e3cfdc3672d7e /.vim/lua/internal/statusline.lua | |
| parent | 6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 (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 |