aboutsummaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-05-19 18:21:33 +0200
committerThomas Vanbesien <tvanbesi@proton.me>2026-05-19 18:21:33 +0200
commitd7e21de6db0072b719c62089e432f9d67d44e18e (patch)
treee47853d2033f73eb93e026c8c55bf2ba0be315fd /plugin
parentfe6bee5ca3811ca6703d8687ae9800691c982bda (diff)
downloadnvim-config-d7e21de6db0072b719c62089e432f9d67d44e18e.tar.gz
nvim-config-d7e21de6db0072b719c62089e432f9d67d44e18e.zip
misc(nvim): embolden statusline diff/diagnostics, tidy lualine setup
Stamp bold onto lualine's generated lualine_b_diff*/diagnostics* highlight groups with nvim_set_hl update=true so only the bold bit changes (fg and section b background preserved), re-applied after each lualine (re)build: initial setup, theme switch, ColorScheme. Also carry the component/section separators into the background OptionSet handler so they survive the light/dark theme swap.
Diffstat (limited to 'plugin')
-rw-r--r--plugin/50-statusline.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugin/50-statusline.lua b/plugin/50-statusline.lua
index e32800e..10c88f6 100644
--- a/plugin/50-statusline.lua
+++ b/plugin/50-statusline.lua
@@ -23,6 +23,27 @@ local function statuses()
return (vim.b.autoformat and "+F" or "") .. (vim.o.spell and spell_status() or "")
end
+-- lualine builds its own section-b-backed highlights for the diff/diagnostics
+-- components (lualine_b_diff_added_normal, lualine_b_diagnostics_error_normal,
+-- ...). Stamp bold onto them with update=true so only the bold attribute
+-- changes -- fg and section b's background are left untouched. Must run after
+-- lualine (re)creates the groups: initial setup, theme switch, colorscheme.
+local function bold_diff_diag()
+ for name in pairs(vim.api.nvim_get_hl(0, {})) do
+ if name:find("^lualine_b_diff") or name:find("^lualine_b_diagnostics") then
+ vim.api.nvim_set_hl(0, name, { bold = true, update = true })
+ end
+ end
+end
+
+vim.api.nvim_create_autocmd("ColorScheme", {
+ desc = "Re-bold lualine diff/diagnostics after colorscheme rebuild",
+ group = vim.g.dotfiles.augroup,
+ callback = function()
+ vim.schedule(bold_diff_diag)
+ end,
+})
+
local lualine_sections = {
lualine_c = { statuses, "filename" },
lualine_x = { "encoding", "fileformat", "filetype", "lsp_status" },
@@ -38,8 +59,11 @@ vim.api.nvim_create_autocmd("OptionSet", {
options = {
theme = vim.o.background == "light" and "solarized_light" or "solarized_dark",
disabled_filetypes = { "netrw", "qf" },
+ component_separators = { left = "|", right = "|" },
+ section_separators = { left = "", right = "" },
},
})
+ vim.schedule(bold_diff_diag)
end,
})
@@ -47,6 +71,7 @@ lualine.setup({
options = { theme = vim.o.background == "light" and "solarized_light" or "solarized_dark" },
sections = lualine_sections,
})
+vim.schedule(bold_diff_diag)
vim.api.nvim_create_user_command("LualineConfig", function()
vim.notify(vim.inspect(lualine.get_config()))