• 1 Post
  • 3 Comments
Joined 1 year ago
cake
Cake day: June 25th, 2023

help-circle
  • After hours of trying out different plugins the closest I could find is the lualine & tabby combination:

    About to test it during work, at first look it looks like it has everything I need, only shows current buffers in tab, and in correct order

    local lualine_theme = require("highlight").lualine_theme
    require("lualine").setup({
    	options = {
    		icons_enabled = true,
    		theme = lualine_theme,
    		component_separators = { left = "", right = "" },
    		section_separators = { left = "", right = "" },
    		disabled_filetypes = {
    			statusline = {},
    			winbar = {},
    		},
    		ignore_focus = {},
    		globalstatus = true,
    		refresh = {
    			statusline = 1000,
    			tabline = 1000,
    			winbar = 1000,
    		},
    	},
    	sections = {
    		lualine_a = { "branch" },
    		lualine_b = { empty_section },
    		lualine_c = {},
    		lualine_x = {},
    		lualine_y = { { "diagnostics", sections = { "error", "warn" } } },
    		lualine_z = { "location" },
    	},
    	inactive_sections = {},
    	tabline = {},
    	winbar = {},
    	inactive_winbar = {},
    	extensions = { "fugitive", "nvim-tree" },
    })
    
    local theme = {
    	fill = "TabLineFill",
    	-- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
    	head = "TabLine",
    	current = "TabLineSel",
    	tab = "TabLine",
    	win = "TabLine",
    	tail = "TabLine",
    }
    
    vim.o.showtabline = 2
    local tabby_theme = require("highlight").tabby_theme
    require("tabby.tabline").set(function(line)
    	return {
    		line.tabs().foreach(function(tab)
    			local hl = tab.is_current() and tabby_theme.current or tabby_theme.tab
    
    			return {
    				line.sep("", hl, tabby_theme.fill),
    				tab.number(),
    				tab.name(),
    				line.sep("", hl, tabby_theme.fill),
    				hl = hl,
    				margin = " ",
    			}
    		end),
    		line.spacer(),
    		line.wins_in_tab(line.api.get_current_tab()).foreach(function(win)
    			local hl = win.is_current() and tabby_theme.current or tabby_theme.tab
    
    			return {
    				line.sep("", hl, tabby_theme.fill),
    				win.buf_name(),
    				line.sep("", hl, tabby_theme.fill),
    				hl = hl,
    				margin = " ",
    			}
    		end),
    		hl = tabby_theme.fill,
    	}
    end)