patch 9.1.0890: %! item not allowed for 'rulerformat'
Problem: %! item not allowed for 'rulerformat'
(yatinlala)
Solution: also allow to use %! for rulerformat option
(Yegappan Lakshmanan)
fixes: #16091
closes: #16118
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
7e501f4d99
commit
ac023e8baa
@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 9.1. Last change: 2024 Nov 24
|
*options.txt* For Vim version 9.1. Last change: 2024 Nov 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -7870,6 +7870,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
All fields except the {item} are optional. A single percent sign can
|
All fields except the {item} are optional. A single percent sign can
|
||||||
be given as "%%".
|
be given as "%%".
|
||||||
|
|
||||||
|
*stl-%!*
|
||||||
When the option starts with "%!" then it is used as an expression,
|
When the option starts with "%!" then it is used as an expression,
|
||||||
evaluated and the result is used as the option value. Example: >
|
evaluated and the result is used as the option value. Example: >
|
||||||
:set statusline=%!MyStatusLine()
|
:set statusline=%!MyStatusLine()
|
||||||
|
|||||||
@ -10222,6 +10222,7 @@ state() builtin.txt /*state()*
|
|||||||
static-tag tagsrch.txt /*static-tag*
|
static-tag tagsrch.txt /*static-tag*
|
||||||
status-line windows.txt /*status-line*
|
status-line windows.txt /*status-line*
|
||||||
statusmsg-variable eval.txt /*statusmsg-variable*
|
statusmsg-variable eval.txt /*statusmsg-variable*
|
||||||
|
stl-%! options.txt /*stl-%!*
|
||||||
stl-%{ options.txt /*stl-%{*
|
stl-%{ options.txt /*stl-%{*
|
||||||
str2float() builtin.txt /*str2float()*
|
str2float() builtin.txt /*str2float()*
|
||||||
str2list() builtin.txt /*str2list()*
|
str2list() builtin.txt /*str2list()*
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*version9.txt* For Vim version 9.1. Last change: 2024 Nov 14
|
*version9.txt* For Vim version 9.1. Last change: 2024 Nov 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -41607,6 +41607,8 @@ Changed~
|
|||||||
started via |:Tutor|
|
started via |:Tutor|
|
||||||
- improve the |vimtutor| and add a second chapter for more advanced tips
|
- improve the |vimtutor| and add a second chapter for more advanced tips
|
||||||
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
- allow to pass local Vim script variables to python interpreter |py3eval()|
|
||||||
|
- |getwininfo()| now also returns the "leftcol" property for a window
|
||||||
|
- 'rulerformat' now supports the |stl-%!| item
|
||||||
|
|
||||||
*added-9.2*
|
*added-9.2*
|
||||||
Added ~
|
Added ~
|
||||||
|
|||||||
@ -3330,8 +3330,13 @@ parse_statustabline_rulerformat(optset_T *args, int rulerformat)
|
|||||||
if (wid && *s == '(' && (errmsg = check_stl_option(p_ruf)) == NULL)
|
if (wid && *s == '(' && (errmsg = check_stl_option(p_ruf)) == NULL)
|
||||||
ru_wid = wid;
|
ru_wid = wid;
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// Validate the flags in 'rulerformat' only if it doesn't point to
|
||||||
|
// a custom function ("%!" flag).
|
||||||
|
if ((*varp)[1] != '!')
|
||||||
errmsg = check_stl_option(p_ruf);
|
errmsg = check_stl_option(p_ruf);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// check 'statusline' or 'tabline' only if it doesn't start with "%!"
|
// check 'statusline' or 'tabline' only if it doesn't start with "%!"
|
||||||
else if (rulerformat || s[0] != '%' || s[1] != '!')
|
else if (rulerformat || s[0] != '%' || s[1] != '!')
|
||||||
errmsg = check_stl_option(s);
|
errmsg = check_stl_option(s);
|
||||||
|
|||||||
2
src/testdir/dumps/Test_rulerformat_function.dump
Normal file
2
src/testdir/dumps/Test_rulerformat_function.dump
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
> +0&#ffffff0@39
|
||||||
|
@22|1|0|,|2|0| @8|3|0|%|
|
||||||
@ -3867,6 +3867,27 @@ func Test_rulerformat_position()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for using "%!" in 'rulerformat' to use a function
|
||||||
|
func Test_rulerformat_function()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
func TestRulerFn()
|
||||||
|
return '10,20%=30%%'
|
||||||
|
endfunc
|
||||||
|
END
|
||||||
|
call writefile(lines, 'Xrulerformat_function', 'D')
|
||||||
|
|
||||||
|
let buf = RunVimInTerminal('-S Xrulerformat_function', #{rows: 2, cols: 40})
|
||||||
|
call term_sendkeys(buf, ":set ruler rulerformat=%!TestRulerFn()\<CR>")
|
||||||
|
call term_sendkeys(buf, ":redraw!\<CR>")
|
||||||
|
call term_wait(buf)
|
||||||
|
call VerifyScreenDump(buf, 'Test_rulerformat_function', {})
|
||||||
|
|
||||||
|
" clean up
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_getcompletion_usercmd()
|
func Test_getcompletion_usercmd()
|
||||||
command! -nargs=* -complete=command TestCompletion echo <q-args>
|
command! -nargs=* -complete=command TestCompletion echo <q-args>
|
||||||
|
|
||||||
|
|||||||
@ -704,6 +704,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 */
|
||||||
|
/**/
|
||||||
|
890,
|
||||||
/**/
|
/**/
|
||||||
889,
|
889,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user