Simplify the tabs
This commit is contained in:
@@ -1,55 +1,5 @@
|
||||
local M = {}
|
||||
|
||||
local function truncate_label(label, max_width)
|
||||
if vim.fn.strdisplaywidth(label) <= max_width then
|
||||
return label
|
||||
end
|
||||
|
||||
return vim.fn.strcharpart(label, 0, max_width - 1) .. "…"
|
||||
end
|
||||
|
||||
local function terminal_label(bufnr)
|
||||
local term_title = vim.b[bufnr].term_title
|
||||
if type(term_title) == "string" and term_title ~= "" then
|
||||
local cmd = vim.fn.fnamemodify(term_title:match("^%S+") or "", ":t")
|
||||
if cmd ~= "" then
|
||||
return cmd
|
||||
end
|
||||
end
|
||||
|
||||
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||
local cmd = bufname:match("term://.*:(.+)$")
|
||||
if cmd then
|
||||
local first_word = vim.split(cmd, " ", { plain = true })[1] or ""
|
||||
local basename = vim.fn.fnamemodify(first_word, ":t")
|
||||
if basename ~= "" then
|
||||
return basename
|
||||
end
|
||||
end
|
||||
|
||||
return "terminal"
|
||||
end
|
||||
|
||||
local function tab_label(tabnr)
|
||||
local buflist = vim.fn.tabpagebuflist(tabnr)
|
||||
local winnr = vim.fn.tabpagewinnr(tabnr)
|
||||
local bufnr = buflist[winnr]
|
||||
local label
|
||||
|
||||
if vim.bo[bufnr].buftype == "terminal" then
|
||||
label = terminal_label(bufnr)
|
||||
else
|
||||
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||
label = bufname == "" and "[No Name]" or vim.fn.fnamemodify(bufname, ":t")
|
||||
end
|
||||
|
||||
if vim.bo[bufnr].modified then
|
||||
label = label .. " +"
|
||||
end
|
||||
|
||||
return truncate_label(label, 18)
|
||||
end
|
||||
|
||||
function M.render()
|
||||
local current = vim.fn.tabpagenr()
|
||||
local last = vim.fn.tabpagenr("$")
|
||||
@@ -58,7 +8,7 @@ function M.render()
|
||||
for index = 1, last do
|
||||
parts[#parts + 1] = index == current and "%#TabLineSel#" or "%#TabLine#"
|
||||
parts[#parts + 1] = "%" .. index .. "T"
|
||||
parts[#parts + 1] = " " .. index .. " " .. tab_label(index) .. " "
|
||||
parts[#parts + 1] = " " .. index .. " "
|
||||
end
|
||||
|
||||
parts[#parts + 1] = "%#TabLineFill#%T"
|
||||
|
||||
Reference in New Issue
Block a user