diff options
| author | triethyl <triethylammonium@pm.me> | 2025-08-05 22:43:51 -0400 |
|---|---|---|
| committer | triethyl <triethylammonium@pm.me> | 2025-08-05 22:43:51 -0400 |
| commit | 88641682428c2f81eaff4a65e3898a694fbd641e (patch) | |
| tree | b71fdde43516d386499c5ab95e595c2a5f7e9c00 /pkgs/custom-neovim/config/lua/statusline.lua | |
| parent | e7fc04e57690eaa993b0d4219fb96355ed65e5cd (diff) | |
neovim: colored git status
Diffstat (limited to 'pkgs/custom-neovim/config/lua/statusline.lua')
| -rw-r--r-- | pkgs/custom-neovim/config/lua/statusline.lua | 22 |
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() |
