patch 9.1.1391: Vim does not have a vertical tabpanel
Problem: Vim does not have a tabpanel
Solution: include the tabpanel feature
(Naruhiko Nishino, thinca)
closes: #17263
Co-authored-by: thinca <thinca@gmail.com>
Signed-off-by: Naruhiko Nishino <naru123456789@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index afc2512..e17d533 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt* For Vim version 9.1. Last change: 2024 Jul 12
+*tabpage.txt* For Vim version 9.1. Last change: 2025 May 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -14,7 +14,8 @@
2. Commands |tab-page-commands|
3. Other items |tab-page-other|
4. Setting 'tabline' |setting-tabline|
-5. Setting 'guitablabel' |setting-guitablabel|
+5. Setting 'tabpanel' |setting-tabpanel|
+6. Setting 'guitablabel' |setting-guitablabel|
{not able to use multiple tab pages when the |+windows| feature was disabled
at compile time}
@@ -364,8 +365,8 @@
labels. This isn't easy, thus an example will be given here.
For basics see the 'statusline' option. The same items can be used in the
-'tabline' option. Additionally, the |tabpagebuflist()|, |tabpagenr()| and
-|tabpagewinnr()| functions are useful.
+'tabline' and 'tabpanel' option. Additionally, the |tabpagebuflist()|,
+|tabpagenr()| and |tabpagewinnr()| functions are useful.
Since the number of tab labels will vary, you need to use an expression for
the whole option. Something like: >
@@ -418,7 +419,74 @@
space available.
==============================================================================
-5. Setting 'guitablabel' *setting-guitablabel*
+5. Setting 'tabpanel' *tabpanel* *setting-tabpanel*
+
+The tabpanel is a vertical sidebar that displays tab page labels along the
+side of the window. It looks like this:
+>
+ +-----------+----------------------------------
+ |(1) |text text text text text text text
+ | ~/aaa.txt|text text text text text text text
+ |(2) |text text text text text text text
+ | ~/.vimrc |text text text text text text text
+ |(3) |text text text text text text text
+ | ~/bbb.js |text text text text text text text
+ | ~/ccc.css|text text text text text text text
+ | |text text text text text text text
+ | |text text text text text text text
+ | |text text text text text text text
+<
+To configure the tabpanel, use following options: 'tabpanel',
+'showtabpanel', 'tabpanelopt'.
+The 'tabpanel' and 'showtabpanel' options are function similar to the
+'statusline' or 'tabline'.
+
+The "columns:" of 'tabpanelopt' option specifies the width of the tabpanel:
+>
+ +------ This width
+ |
+ <----+----->
+ +-----------+----------------------------------
+ |(1) |text text text text text text text
+ | ~/aaa.txt|text text text text text text text
+ |(2) |text text text text text text text
+<
+The "align:" of 'tabpanelopt' option determines whether the tabpanel is
+displayed on the right side of the window:
+>
+ +----------------------------------+-----------
+ |text text text text text text text|(1)
+ |text text text text text text text| ~/aaa.txt
+ |text text text text text text text|(2)
+<
+The "wrap" of 'tabpanelopt' option controls whether lines in tabpanel are
+wraped:
+>
+ +-----------+----------------------------------
+ |(1) |text text text text text text text
+ | ~/long_lo|text text text text text text text
+ |ng_file_nam|text text text text text text text
+ |e.txt |text text text text text text text
+ |(2) |text text text text text text text
+
+The "vert" of 'tabpanelopt' option defines whether a vertical separator is
+displayed between the tabpanel and the main window:
+>
+ +------ This is
+ |
+ v
+ +-----------+----------------------------------
+ |(1) |text text text text text text text
+ | ~/aaa.txt|text text text text text text text
+ |(2) |text text text text text text text
+<
+The vertical separator is used "tpl_vert" of 'fillchars'.
+
+You can customize the appearance of the tab page labels using the highlight
+groups: |hl-TabPanel| |hl-TabPanelSel| |hl-TabPanelFill|
+
+==============================================================================
+6. Setting 'guitablabel' *setting-guitablabel*
When the GUI tab pages line is displayed, 'guitablabel' can be used to
specify the label to display for each tab page. Unlike 'tabline', which