diff options
Diffstat (limited to '.vim/lua/statusline.lua')
| -rw-r--r-- | .vim/lua/statusline.lua | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/.vim/lua/statusline.lua b/.vim/lua/statusline.lua index cb9d166..7cd36b1 100644 --- a/.vim/lua/statusline.lua +++ b/.vim/lua/statusline.lua @@ -12,32 +12,32 @@ function _G.statusline() local hi = statusline_color(vim.fn.mode()) local sl = hi - -- sl = sl .. statusline_append([[ ⢷]], '%#StatusLineIcon#', hi) + -- sl = sl .. statusline_append([[ ⢷]], 'StatusLineIcon', hi) sl = sl .. statusline_append(statusline_ts(), - '%#StatusLineTreesitter#', hi) + 'StatusLineTreesitter', hi) sl = sl .. statusline_append(statusline_lsp_diagnostics(bufnr, hi), - '%#StatusLineDiagnostics#', hi) + 'StatusLineDiagnostics', hi) sl = sl .. statusline_append(vim.trim(require('lsp-status').status()), - '%#StatusLineLsp#', hi) + 'StatusLineLsp', hi) sl = sl .. statusline_append(statusline_dap(), - '%#StatusLineDap#', hi) + 'StatusLineDap', hi) sl = sl .. [[ %= ]] -- spacer sl = sl .. statusline_append(statusline_notify(hi), - '%#StatusLineNotify#', hi) + 'StatusLineNotify', hi) if spinner_ok then sl = sl .. statusline_append(spinner.status(bufnr), - '%#StatusLineJobs#', hi) + 'StatusLineJobs', hi) end sl = sl .. statusline_append(require('nvim-lightbulb').get_status_text(), - '%#StatusLineLightbulb#', hi) + 'StatusLineLightbulb', hi) sl = sl .. statusline_append([[ %l:%v --%p%%-- %y]], hi, hi) @@ -65,6 +65,7 @@ function _G.statusline_append(element, hi, default_hi, opts) if not element or element == '' then return '' end opts = opts or { append_space = true } + if hi ~= nil then hi = '%#' .. hi .. '#' end if not (default_hi == '%*') then hi = default_hi end local el = hi .. element .. default_hi if opts.append_space then el = el .. ' ' end @@ -78,18 +79,18 @@ function _G.statusline_lsp_diagnostics(bufnr, default_hi) local s = '' if #error_num > 0 then local errs = vim.fn.sign_getdefined('DiagnosticSignError')[1].text .. #error_num - s = s .. statusline_append(errs, '%#'..statusline_combine_hi('StatusLineDiagnostics', 'DiagnosticError')..'#', default_hi) + s = s .. statusline_append(errs, statusline_combine_hi('StatusLineDiagnostics', 'DiagnosticError'), default_hi) end if #warn_num > 0 then local warns = vim.fn.sign_getdefined('DiagnosticSignWarn')[1].text .. #warn_num - s = s .. statusline_append(warns, '%#'..statusline_combine_hi('StatusLineDiagnostics', 'DiagnosticWarn')..'#', default_hi) + s = s .. statusline_append(warns, statusline_combine_hi('StatusLineDiagnostics', 'DiagnosticWarn'), 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_name(outer_name, true) - local inner = vim.api.nvim_get_hl_by_name(inner_name, true) + 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 @@ -137,9 +138,9 @@ function _G.statusline_notify(default_hi) local s = '' if n.hi then - s = s .. statusline_append(n.lvl_string .. ' ', '%#'..statusline_combine_hi('StatusLineNotify', n.hi)..'#', default_hi, { append_space = false }) + s = s .. statusline_append(n.lvl_string .. ' ', statusline_combine_hi('StatusLineNotify', n.hi), default_hi, { append_space = false }) end - s = s .. statusline_append(n.message, '%#StatusLineNotify#', default_hi) + s = s .. statusline_append(n.message, 'StatusLineNotify', default_hi) return vim.trim(s) end |