aboutsummaryrefslogtreecommitdiff
path: root/lua/cleantab
diff options
context:
space:
mode:
authorTim Keller <tjkeller.xyz>2024-11-27 22:04:23 -0600
committerTim Keller <tjkeller.xyz>2024-11-27 22:04:23 -0600
commit4d6d9cb297b67753056787054e7b6616a895318c (patch)
tree5c9ab9cb963ebd601f4dce3ec2e0767749abe5b3 /lua/cleantab
parent35e36ce317d8ac8fa579118f5a16ca35bd47e353 (diff)
downloadminitab.nvim-4d6d9cb297b67753056787054e7b6616a895318c.tar.xz
minitab.nvim-4d6d9cb297b67753056787054e7b6616a895318c.zip
cleantab -
Diffstat (limited to 'lua/cleantab')
-rw-r--r--lua/cleantab/init.lua100
1 files changed, 0 insertions, 100 deletions
diff --git a/lua/cleantab/init.lua b/lua/cleantab/init.lua
deleted file mode 100644
index aa4a974..0000000
--- a/lua/cleantab/init.lua
+++ /dev/null
@@ -1,100 +0,0 @@
-local M = {}
-
-M.fileTitle = function(file)
- file = vim.fn.fnamemodify(file, ':p:~')
- local tail = vim.fn.fnamemodify(file, ':t')
-
- if not tail then
- return vim.fn.fnamemodify(file, ':p:~:h') .. '/' -- e.g. ~/dir/
- elseif tail == 'init.lua'
- or tail == '__init__.py' then
- return vim.fn.fnamemodify(vim.fn.fnamemodify(file, ':h'), ':t') .. '/' .. tail -- e.g. luatab/init.lua
- else
- return tail
- end
-end
-
-M.title = function(bufnr)
- local file = vim.fn.bufname(bufnr)
- local buftype = vim.fn.getbufvar(bufnr, '&buftype')
- local filetype = vim.fn.getbufvar(bufnr, '&filetype')
-
- if buftype == 'help' then
- return 'help:' .. vim.fn.fnamemodify(file, ':t:r')
- elseif buftype == 'quickfix' then
- return 'quickfix'
- elseif filetype == 'TelescopePrompt' then
- return 'Telescope'
- elseif filetype == 'git' then
- return 'Git'
- elseif filetype == 'fugitive' then
- return 'Fugitive'
- elseif filetype == 'NvimTree' then
- return 'NvimTree'
- elseif filetype == 'oil' then
- return 'Oil'
- elseif file:sub(file:len()-2, file:len()) == 'FZF' then
- return 'FZF'
- elseif buftype == 'terminal' then
- local _, mtch = string.match(file, "term:(.*):(%a+)")
- return mtch ~= nil and mtch or vim.fn.fnamemodify(vim.env.SHELL, ':t')
- elseif file == '' then
- return '[No Name]'
- else
- return M.fileTitle(vim.fn.simplify(file))
- end
-end
-
-M.modified = function(bufnr)
- return vim.fn.getbufvar(bufnr, '&modified') == 1 and '+' or ''
-end
-
-M.windowCount = function(index, hl)
- local nwins = vim.fn.tabpagewinnr(index, '$')
- return nwins > 1 and '%#TabLineSel#' .. nwins .. hl or ''
-end
-
-M.separator = function(index)
- return (index < vim.fn.tabpagenr('$') and '%#TabLine#|' or '')
-end
-
-M.cell = function(index)
- local isSelected = vim.fn.tabpagenr() == index
- local buflist = vim.fn.tabpagebuflist(index)
- local winnr = vim.fn.tabpagewinnr(index)
- local bufnr = buflist[winnr]
- local hl = (isSelected and '%#TabLineSel#' or '%#TabLine#')
-
- local prefix = M.windowCount(index, hl) .. M.modified(bufnr) .. ' '
- return hl .. '%' .. index .. 'T' .. ' ' ..
- (prefix == ' ' and '' or prefix) ..
- M.title(bufnr) .. ' ' ..
- M.separator(index)
-end
-
-M.tabline = function()
- local line = ''
- for i = 1, vim.fn.tabpagenr('$'), 1 do
- line = line .. M.cell(i)
- end
- line = line .. '%#TabLineFill#%='
- if vim.fn.tabpagenr('$') > 1 then
- line = line .. '%#TabLine#%999XX'
- end
- return line
-end
-
-local setup = function(opts)
- if opts then
- for key, value in pairs(opts) do
- M[key] = value
- end
- end
-
- vim.opt.tabline = '%!v:lua.require\'luatab\'.helpers.tabline()'
-end
-
-return {
- helpers = M,
- setup = setup,
-}