summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortriethyl <triethylammonium@pm.me>2025-08-05 22:43:51 -0400
committertriethyl <triethylammonium@pm.me>2025-08-05 22:43:51 -0400
commit88641682428c2f81eaff4a65e3898a694fbd641e (patch)
treeb71fdde43516d386499c5ab95e595c2a5f7e9c00
parente7fc04e57690eaa993b0d4219fb96355ed65e5cd (diff)
neovim: colored git status
-rw-r--r--pkgs/custom-neovim/config/lua/statusline.lua22
1 files changed, 19 insertions, 3 deletions
diff --git a/pkgs/custom-neovim/config/lua/statusline.lua b/pkgs/custom-neovim/config/lua/statusline.lua
index 5fcf7eb..72ce6ca 100644
--- a/pkgs/custom-neovim/config/lua/statusline.lua
+++ b/pkgs/custom-neovim/config/lua/statusline.lua
@@ -159,11 +159,27 @@ statusline_components.git_branch = function()
end
statusline_components.git_status = function()
- if vim.b.gitsigns_status then
- return string.format(' %s ', vim.b.gitsigns_status)
- else
+ if not vim.b.gitsigns_status_dict then
return ''
end
+
+ local status = {}
+
+ local gitsigns_status = vim.b.gitsigns_status_dict
+
+ if gitsigns_status.added > 0 then
+ table.insert(status, hi_pattern:format("Added", ("+%s"):format(gitsigns_status.added)))
+ end
+
+ if gitsigns_status.changed > 0 then
+ table.insert(status, hi_pattern:format("Changed", ("+%s"):format(gitsigns_status.changed)))
+ end
+
+ if gitsigns_status.removed > 0 then
+ table.insert(status, hi_pattern:format("Removed", ("+%s"):format(gitsigns_status.removed)))
+ end
+
+ return table.concat(status, " ")
end
statusline_components.working_directory = function()