extensions: Add a tabpanel extension

Add a new tabpanel extension that provides airline-styled formatting
for Vim's vertical tab panel feature. Uses airline tabline highlight
groups (TabPanelFill, TabPanelSel, TabPanel) and refreshes them on
theme changes. Requires a Vim version with 'tabpanel' support.

Extension implemented using Vim9Script so not Neovim compatible

fixes:  #2724
closes: #2746

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2026-04-12 08:12:11 +00:00
co-authored by Claude Opus 4.6
parent 723def3fa8
commit 7fe264257e
3 changed files with 148 additions and 0 deletions
+25
View File
@@ -1454,6 +1454,31 @@ groups:
airline_tabhid: hidden buffer
airline_tabhid_right: idem, but on the right
------------------------------------- *airline-tabpanel*
Vim supports a vertical tab panel (see |tabpanel|) that displays tab pages
in a vertical side column. This extension provides airline-styled formatting
for the tab panel. Requires a Vim version that supports 'tabpanel' (at least
Vim >9.1.1391).
* enable/disable tabpanel integration >
let g:airline#extensions#tabpanel#enabled = 1
< default: 0
* configure the width of the tab panel (in columns) >
let g:airline#extensions#tabpanel#columns = 20
< default: 20
* configure the alignment of the tab panel >
let g:airline#extensions#tabpanel#align = 'left'
< default: '' (uses Vim's default)
Note: The tabpanel extension reuses the tabline highlight groups
(|airline-tabline-hlgroups|) and respects the tabline tab number settings
(|g:airline#extensions#tabline#show_tab_nr|,
|g:airline#extensions#tabline#tab_nr_type|,
|g:airline#extensions#tabline#tabnr_formatter|).
------------------------------------- *airline-scrollbar*
Displays an Ascii Scrollbar for active windows with a width > 200.