From 3da4c7f9209707af194de9538b2308be4e702e73 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Tue, 8 Sep 2026 07:14:29 +0200 Subject: Konfiguration vereinfacht --- nvim/lua/config/statusline.lua | 55 +++++------------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) (limited to 'nvim/lua/config/statusline.lua') 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 @@ -16,61 +16,18 @@ local function mode() return string.format("%%#%s# %s %%#StatusLine#", entry[2], entry[1]) end ----------------------------------------------------------------------- --- Git branch (buffer-lokal, gecached, kein redraw-spam) ----------------------------------------------------------------------- - --- /dev/null gibt es unter Windows nicht (cmd.exe versteht das nicht als --- Pfad und meldet "Das System kann den angegebenen Pfad nicht finden"). -local devnull = vim.fn.has("win32") == 1 and "NUL" or "/dev/null" - -local function update_git_branch(bufnr) - bufnr = bufnr or 0 - - -- nur in echten Dateien - if vim.bo[bufnr].buftype ~= "" then - vim.b[bufnr].git_branch = "" - return - end - - -- kein Git → nichts tun - if vim.fn.executable("git") ~= 1 then - vim.b[bufnr].git_branch = "" - return - end - - local branch = vim.fn.systemlist("git rev-parse --abbrev-ref HEAD 2>" .. devnull)[1] - if branch then - -- unter Windows bleibt an systemlist()-Zeilen mitunter ein - -- trailing \r haengen (^M in der Statuszeile sichtbar) - branch = branch:gsub("\r$", "") - end - - if branch and branch ~= "" then - vim.b[bufnr].git_branch = "  " .. branch .. " " - else - vim.b[bufnr].git_branch = "" - end -end - ----------------------------------------------------------------------- --- Autocmd: Git nur bei Bedarf aktualisieren ----------------------------------------------------------------------- - -vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained" }, { - callback = function(args) - update_git_branch(args.buf) - end, -}) - ---------------------------------------------------------------------- -- Statusline-Sektionen (reine Darstellung, keine IO) ---------------------------------------------------------------------- --- Git-Branch (buffer-lokal, gecached, kein redraw-spam) +-- Git-Branch (gitsigns setzt vim.b.gitsigns_head asynchron pro Buffer) local function git() - return vim.b.git_branch or "" + local head = vim.b.gitsigns_head + + if not head or head == "" then return "" end + + return "  " .. head .. " " end -- Git-Diff (buffer-lokal, kein redraw-spam) -- cgit v1.3