aboutsummaryrefslogtreecommitdiff
path: root/lua/config/statusline.lua
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2022-09-10 22:54:52 +0800
committerjdhao <jdhao@hotmail.com>2022-09-10 22:55:22 +0800
commite5f1b4d22459efa51b5c570d5960f04a361777d7 (patch)
tree6af94be7e56237ec0285ae2398ceed52a634297a /lua/config/statusline.lua
parenteaddee0c5cbf7581a73be77c7bb95c8e88640130 (diff)
use gitsigns for diff
Lualine's builtin diff often disappears and is not reliable, which is really frustrating for me.
Diffstat (limited to 'lua/config/statusline.lua')
-rw-r--r--lua/config/statusline.lua23
1 files changed, 22 insertions, 1 deletions
diff --git a/lua/config/statusline.lua b/lua/config/statusline.lua
index 30600bc..bb018ce 100644
--- a/lua/config/statusline.lua
+++ b/lua/config/statusline.lua
@@ -74,6 +74,21 @@ local function mixed_indent()
end
end
+local diff = function()
+ local git_status = vim.b.gitsigns_status_dict
+ if git_status == nil then
+ return
+ end
+
+ local modify_num = git_status.changed
+ local remove_num = git_status.removed
+ local add_num = git_status.added
+
+ local info = { added = add_num, modified = modify_num, removed = remove_num }
+ -- vim.pretty_print(info)
+ return info
+end
+
require("lualine").setup({
options = {
icons_enabled = true,
@@ -87,7 +102,13 @@ require("lualine").setup({
},
sections = {
lualine_a = { "mode" },
- lualine_b = { "branch", "diff" },
+ lualine_b = {
+ "branch",
+ {
+ 'diff',
+ source = diff
+ }
+ },
lualine_c = {
"filename",
{