patch 9.1.1819: Cannot configure the inner foldlevel indicator
Problem: Cannot configure the inner foldlevel indicator for the
foldcolumn
Solution: Add "foldinner" suboption value to the 'fillchar' option
(Maria José Solano).
closes: #18365
Signed-off-by: Maria José Solano <majosolano99@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
09b1ce0860
commit
1a691afd27
@ -1,4 +1,4 @@
|
|||||||
*fold.txt* For Vim version 9.1. Last change: 2025 Jul 15
|
*fold.txt* For Vim version 9.1. Last change: 2025 Oct 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -595,7 +595,8 @@ A closed fold is indicated with a '+'.
|
|||||||
These characters can be changed with the 'fillchars' option.
|
These characters can be changed with the 'fillchars' option.
|
||||||
|
|
||||||
Where the fold column is too narrow to display all nested folds, digits are
|
Where the fold column is too narrow to display all nested folds, digits are
|
||||||
shown to indicate the nesting level.
|
shown to indicate the nesting level. To override this behavior you can use
|
||||||
|
the "foldinner" character of the 'fillchars' option.
|
||||||
|
|
||||||
The mouse can also be used to open and close folds by clicking in the
|
The mouse can also be used to open and close folds by clicking in the
|
||||||
fold column:
|
fold column:
|
||||||
|
|||||||
@ -3853,6 +3853,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
foldopen '-' mark the beginning of a fold
|
foldopen '-' mark the beginning of a fold
|
||||||
foldclose '+' show a closed fold
|
foldclose '+' show a closed fold
|
||||||
foldsep '|' open fold middle character
|
foldsep '|' open fold middle character
|
||||||
|
foldinner none character to show instead of the
|
||||||
|
numeric foldlevel when it would be
|
||||||
|
repeated in a narrow 'foldcolumn'
|
||||||
diff '-' deleted lines of the 'diff' option
|
diff '-' deleted lines of the 'diff' option
|
||||||
eob '~' empty lines below the end of a buffer
|
eob '~' empty lines below the end of a buffer
|
||||||
lastline '@' 'display' contains lastline/truncate
|
lastline '@' 'display' contains lastline/truncate
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 29
|
*version9.txt* For Vim version 9.1. Last change: 2025 Oct 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -322,6 +322,8 @@ Improvements in 'fillchars':
|
|||||||
"eob" in 'fillchars'.
|
"eob" in 'fillchars'.
|
||||||
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
|
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
|
||||||
"foldclose" and "foldsep" items in the 'fillchars' option.
|
"foldclose" and "foldsep" items in the 'fillchars' option.
|
||||||
|
- Support for configuring the character used inside a fold level region using
|
||||||
|
"foldinner" in 'fillchars'.
|
||||||
|
|
||||||
Support for the XChaCha20 encryption method. 'cryptmethod'
|
Support for the XChaCha20 encryption method. 'cryptmethod'
|
||||||
|
|
||||||
@ -41702,7 +41704,9 @@ Options: ~
|
|||||||
- new option values for 'fillchars':
|
- new option values for 'fillchars':
|
||||||
"trunc" - configure truncation indicator, 'pummaxwidth'
|
"trunc" - configure truncation indicator, 'pummaxwidth'
|
||||||
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
|
"truncrl" - like "trunc" but in 'rl' mode, 'pummaxwidth'
|
||||||
"tpl_vert" - separators for the 'tabpanel'
|
"tpl_vert" - vertical separators for the 'tabpanel'
|
||||||
|
"foldinner" - character used inside the 'foldcolumn' for nested
|
||||||
|
fold levels
|
||||||
- 'grepformat' is now a |global-local| option.
|
- 'grepformat' is now a |global-local| option.
|
||||||
- adjust for GTK3 dropping some mouse cursors 'mouseshape'
|
- adjust for GTK3 dropping some mouse cursors 'mouseshape'
|
||||||
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
|
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
|
||||||
|
|||||||
@ -287,6 +287,8 @@ fill_foldcolumn(
|
|||||||
symbol = wp->w_fill_chars.foldopen;
|
symbol = wp->w_fill_chars.foldopen;
|
||||||
else if (first_level == 1)
|
else if (first_level == 1)
|
||||||
symbol = wp->w_fill_chars.foldsep;
|
symbol = wp->w_fill_chars.foldsep;
|
||||||
|
else if (wp->w_fill_chars.foldinner != NUL)
|
||||||
|
symbol = wp->w_fill_chars.foldinner;
|
||||||
else if (first_level + i <= 9)
|
else if (first_level + i <= 9)
|
||||||
symbol = '0' + first_level + i;
|
symbol = '0' + first_level + i;
|
||||||
else
|
else
|
||||||
@ -4738,6 +4740,7 @@ static struct charstab filltab[] =
|
|||||||
CHARSTAB_ENTRY(&fill_chars.foldopen, "foldopen"),
|
CHARSTAB_ENTRY(&fill_chars.foldopen, "foldopen"),
|
||||||
CHARSTAB_ENTRY(&fill_chars.foldclosed, "foldclose"),
|
CHARSTAB_ENTRY(&fill_chars.foldclosed, "foldclose"),
|
||||||
CHARSTAB_ENTRY(&fill_chars.foldsep, "foldsep"),
|
CHARSTAB_ENTRY(&fill_chars.foldsep, "foldsep"),
|
||||||
|
CHARSTAB_ENTRY(&fill_chars.foldinner, "foldinner"),
|
||||||
CHARSTAB_ENTRY(&fill_chars.diff, "diff"),
|
CHARSTAB_ENTRY(&fill_chars.diff, "diff"),
|
||||||
CHARSTAB_ENTRY(&fill_chars.eob, "eob"),
|
CHARSTAB_ENTRY(&fill_chars.eob, "eob"),
|
||||||
CHARSTAB_ENTRY(&fill_chars.lastline, "lastline"),
|
CHARSTAB_ENTRY(&fill_chars.lastline, "lastline"),
|
||||||
@ -4856,6 +4859,7 @@ set_chars_option(win_T *wp, char_u *value, int is_listchars, int apply,
|
|||||||
fill_chars.foldopen = '-';
|
fill_chars.foldopen = '-';
|
||||||
fill_chars.foldclosed = '+';
|
fill_chars.foldclosed = '+';
|
||||||
fill_chars.foldsep = '|';
|
fill_chars.foldsep = '|';
|
||||||
|
fill_chars.foldinner = NUL;
|
||||||
fill_chars.diff = '-';
|
fill_chars.diff = '-';
|
||||||
fill_chars.eob = '~';
|
fill_chars.eob = '~';
|
||||||
fill_chars.lastline = '@';
|
fill_chars.lastline = '@';
|
||||||
|
|||||||
@ -3913,6 +3913,7 @@ typedef struct
|
|||||||
int foldopen;
|
int foldopen;
|
||||||
int foldclosed;
|
int foldclosed;
|
||||||
int foldsep;
|
int foldsep;
|
||||||
|
int foldinner;
|
||||||
int diff;
|
int diff;
|
||||||
int eob;
|
int eob;
|
||||||
int lastline;
|
int lastline;
|
||||||
|
|||||||
@ -340,6 +340,32 @@ func Test_fold_fillchars()
|
|||||||
\ ]
|
\ ]
|
||||||
call assert_equal(expected, lines)
|
call assert_equal(expected, lines)
|
||||||
|
|
||||||
|
" check setting foldinner
|
||||||
|
set fdc=1 foldmethod=indent foldlevel=10
|
||||||
|
call setline(1, ['one', ' two', ' two', ' three', ' three', 'four'])
|
||||||
|
let lines = ScreenLines([1, 6], 22)
|
||||||
|
let expected = [
|
||||||
|
\ ' one ',
|
||||||
|
\ '[ two ',
|
||||||
|
\ '- two ',
|
||||||
|
\ '[ three',
|
||||||
|
\ '2 three',
|
||||||
|
\ ' four ',
|
||||||
|
\ ]
|
||||||
|
call assert_equal(expected, lines)
|
||||||
|
|
||||||
|
set fillchars+=foldinner:\
|
||||||
|
let lines = ScreenLines([1, 6], 22)
|
||||||
|
let expected = [
|
||||||
|
\ ' one ',
|
||||||
|
\ '[ two ',
|
||||||
|
\ '- two ',
|
||||||
|
\ '[ three',
|
||||||
|
\ ' three',
|
||||||
|
\ ' four ',
|
||||||
|
\ ]
|
||||||
|
call assert_equal(expected, lines)
|
||||||
|
|
||||||
%bw!
|
%bw!
|
||||||
set fillchars& fdc& foldmethod& foldenable&
|
set fillchars& fdc& foldmethod& foldenable&
|
||||||
endfunc
|
endfunc
|
||||||
|
|||||||
@ -729,6 +729,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1819,
|
||||||
/**/
|
/**/
|
||||||
1818,
|
1818,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user