aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/config/statusline.lua
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2026-09-08 07:14:29 +0200
committerThomas Schmucker <ts@its1.de>2026-09-08 07:57:54 +0200
commit3da4c7f9209707af194de9538b2308be4e702e73 (patch)
treeab6b56ed2c965d29ec26380f255528474e761ace /nvim/lua/config/statusline.lua
parent8c43ebd619d724133e1063e3b686907d5aa56abe (diff)
downloaddotfiles-3da4c7f9209707af194de9538b2308be4e702e73.tar.gz
dotfiles-3da4c7f9209707af194de9538b2308be4e702e73.tar.bz2
dotfiles-3da4c7f9209707af194de9538b2308be4e702e73.zip
Konfiguration vereinfacht
Diffstat (limited to 'nvim/lua/config/statusline.lua')
-rw-r--r--nvim/lua/config/statusline.lua55
1 files changed, 6 insertions, 49 deletions
diff --git a/nvim/lua/config/statusline.lua b/nvim/lua/config/statusline.lua
index 8a9c75a..01339d0 100644
--- a/nvim/lua/config/statusline.lua
+++ b/nvim/lua/config/statusline.lua
@@ -17,60 +17,17 @@ local function mode()
17end 17end
18 18
19---------------------------------------------------------------------- 19----------------------------------------------------------------------
20-- Git branch (buffer-lokal, gecached, kein redraw-spam)
21----------------------------------------------------------------------
22
23-- /dev/null gibt es unter Windows nicht (cmd.exe versteht das nicht als
24-- Pfad und meldet "Das System kann den angegebenen Pfad nicht finden").
25local devnull = vim.fn.has("win32") == 1 and "NUL" or "/dev/null"
26
27local function update_git_branch(bufnr)
28 bufnr = bufnr or 0
29
30 -- nur in echten Dateien
31 if vim.bo[bufnr].buftype ~= "" then
32 vim.b[bufnr].git_branch = ""
33 return
34 end
35
36 -- kein Git → nichts tun
37 if vim.fn.executable("git") ~= 1 then
38 vim.b[bufnr].git_branch = ""
39 return
40 end
41
42 local branch = vim.fn.systemlist("git rev-parse --abbrev-ref HEAD 2>" .. devnull)[1]
43 if branch then
44 -- unter Windows bleibt an systemlist()-Zeilen mitunter ein
45 -- trailing \r haengen (^M in der Statuszeile sichtbar)
46 branch = branch:gsub("\r$", "")
47 end
48
49 if branch and branch ~= "" then
50 vim.b[bufnr].git_branch = "  " .. branch .. " "
51 else
52 vim.b[bufnr].git_branch = ""
53 end
54end
55
56----------------------------------------------------------------------
57-- Autocmd: Git nur bei Bedarf aktualisieren
58----------------------------------------------------------------------
59
60vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained" }, {
61 callback = function(args)
62 update_git_branch(args.buf)
63 end,
64})
65
66----------------------------------------------------------------------
67-- Statusline-Sektionen (reine Darstellung, keine IO) 20-- Statusline-Sektionen (reine Darstellung, keine IO)
68---------------------------------------------------------------------- 21----------------------------------------------------------------------
69 22
70-- Git-Branch (buffer-lokal, gecached, kein redraw-spam) 23-- Git-Branch (gitsigns setzt vim.b.gitsigns_head asynchron pro Buffer)
71 24
72local function git() 25local function git()
73 return vim.b.git_branch or "" 26 local head = vim.b.gitsigns_head
27
28 if not head or head == "" then return "" end
29
30 return "  " .. head .. " "
74end 31end
75 32
76-- Git-Diff (buffer-lokal, kein redraw-spam) 33-- Git-Diff (buffer-lokal, kein redraw-spam)