aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-11-04 18:24:30 -0500
committerToby Vincent <tobyv13@gmail.com>2022-11-04 18:24:30 -0500
commit5cc68af4e781e2c7353d90ad7626d686f8a014c5 (patch)
tree64c534213860d3e387d57733b1c4b891fe723910
parentc02cb8fb802e86cad8ccc6df57936b75e9643f98 (diff)
feat(lualine): add highlights to workspace diagnostics
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua36
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils/diagnostic.lua8
2 files changed, 29 insertions, 15 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua b/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua
index 5b66f4b..a165811 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/lualine.lua
@@ -19,7 +19,7 @@ M.setup = function()
return vim.bo.buflisted
end
- local workspace = {
+ local git = {
"branch",
{
"diff",
@@ -37,6 +37,25 @@ M.setup = function()
},
}
+ local workspace = {
+ {
+ function()
+ return utils.diagnostic
+ .indicator(nil)
+ :gsub("DiagnosticSignError", "lualine_b_diagnostics_error_normal")
+ :gsub("DiagnosticSignWarn", "lualine_b_diagnostics_warn_normal")
+ :gsub("DiagnosticSignInfo", "lualine_b_diagnostics_info_normal")
+ :gsub("DiagnosticSignHint", "lualine_b_diagnostics_hint_normal")
+ end,
+ padding = { left = 1, right = 0 },
+ color = "StatusLineNC",
+ },
+ {
+ "filename",
+ path = 1,
+ },
+ }
+
local buffer = {
{
"filename",
@@ -72,19 +91,8 @@ M.setup = function()
sections = {
lualine_a = { { "mode", fmt = M.to_char } },
- lualine_b = workspace,
- lualine_c = {
- {
- function()
- return utils.diagnostic.indicator(nil)
- end,
- padding = { left = 1, right = 0 },
- },
- {
- "filename",
- path = 1,
- },
- },
+ lualine_b = git,
+ lualine_c = workspace,
lualine_x = {
"encoding",
"fileformat",
diff --git a/nvim/.config/nvim/lua/tobyvin/utils/diagnostic.lua b/nvim/.config/nvim/lua/tobyvin/utils/diagnostic.lua
index 6b90c64..9e02c16 100644
--- a/nvim/.config/nvim/lua/tobyvin/utils/diagnostic.lua
+++ b/nvim/.config/nvim/lua/tobyvin/utils/diagnostic.lua
@@ -16,6 +16,8 @@ setmetatable(M.signs, {
end,
})
+---@param bufnr number?
+---@return table
M.count = function(bufnr)
local items = {}
for i, level in ipairs(vim.diagnostic.severity) do
@@ -34,12 +36,16 @@ M.count = function(bufnr)
return items
end
+---@param bufnr number?
+---@return string
M.indicator = function(bufnr)
local diagnostic_count = M.count(bufnr)
local tbl = {}
for level, count in pairs(diagnostic_count) do
if count > 0 then
- table.insert(tbl, M.signs[level].text .. count)
+ local color = "%#" .. M.signs[level].texthl .. "#"
+ local indicator = color .. M.signs[level].text .. count
+ table.insert(tbl, indicator)
end
end
return table.concat(tbl, " ")