diff --git a/templates/nvim/lua/lua-line.lua.j2 b/templates/nvim/lua/lua-line.lua.j2 index 4b3369f..e271750 100644 --- a/templates/nvim/lua/lua-line.lua.j2 +++ b/templates/nvim/lua/lua-line.lua.j2 @@ -4,15 +4,35 @@ local lualine = require('lualine'); local function active_lsps() local buffer = vim.api.nvim_get_current_buf() - local client_count = #vim.lsp.get_clients({ bufnr = buffer }) + local attached_clients = vim.lsp.get_clients({ bufnr = buffer }) - return ('LSP: %d'):format(client_count) + if #attached_clients == 0 then return 'LSP: 0' end + + local preview_client = attached_clients[1] + + return ('LSP: %s (%d)'):format(preview_client.name, #attached_clients) +end + +local function diff_source() + local gitsigns = vim.b.gitsigns_status_dict + if gitsigns then + return { + added = gitsigns.added, + modified = gitsigns.changed, + removed = gitsigns.removed + } + end end lualine.setup { sections = { lualine_a = {'mode'}, - lualine_b = {'branch', 'diff', 'diagnostics', active_lsps }, + lualine_b = { + {'b:gitsigns_head', icon = ''}, + {'diff', source = diff_source}, + 'diagnostics', + active_lsps + }, lualine_c = { { 'filename',