mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.1.1953: more functions can be used as a method
Problem: More functions can be used as a method. Solution: Allow more functions to be used as a method.
This commit is contained in:
@@ -5774,6 +5774,9 @@ haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()*
|
|||||||
" tab page m
|
" tab page m
|
||||||
:echo haslocaldir(-1, m)
|
:echo haslocaldir(-1, m)
|
||||||
<
|
<
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetWinnr()->haslocaldir()
|
||||||
|
|
||||||
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
|
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
|
||||||
The result is a Number, which is 1 if there is a mapping that
|
The result is a Number, which is 1 if there is a mapping that
|
||||||
contains {what} in somewhere in the rhs (what it is mapped to)
|
contains {what} in somewhere in the rhs (what it is mapped to)
|
||||||
@@ -5802,6 +5805,9 @@ hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
|
|||||||
< This installs the mapping to "\ABCdoit" only if there isn't
|
< This installs the mapping to "\ABCdoit" only if there isn't
|
||||||
already a mapping to "\ABCdoit".
|
already a mapping to "\ABCdoit".
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetRHS()->hasmapto()
|
||||||
|
|
||||||
histadd({history}, {item}) *histadd()*
|
histadd({history}, {item}) *histadd()*
|
||||||
Add the String {item} to the history {history} which can be
|
Add the String {item} to the history {history} which can be
|
||||||
one of: *hist-names*
|
one of: *hist-names*
|
||||||
@@ -5823,6 +5829,10 @@ histadd({history}, {item}) *histadd()*
|
|||||||
:let date=input("Enter date: ")
|
:let date=input("Enter date: ")
|
||||||
< This function is not available in the |sandbox|.
|
< This function is not available in the |sandbox|.
|
||||||
|
|
||||||
|
Can also be used as a |method|, the base is used for the
|
||||||
|
second argument: >
|
||||||
|
GetPattern()->histadd('search')
|
||||||
|
|
||||||
histdel({history} [, {item}]) *histdel()*
|
histdel({history} [, {item}]) *histdel()*
|
||||||
Clear {history}, i.e. delete all its entries. See |hist-names|
|
Clear {history}, i.e. delete all its entries. See |hist-names|
|
||||||
for the possible values of {history}.
|
for the possible values of {history}.
|
||||||
@@ -5854,6 +5864,9 @@ histdel({history} [, {item}]) *histdel()*
|
|||||||
the "n" command and 'hlsearch': >
|
the "n" command and 'hlsearch': >
|
||||||
:call histdel("search", -1)
|
:call histdel("search", -1)
|
||||||
:let @/ = histget("search", -1)
|
:let @/ = histget("search", -1)
|
||||||
|
<
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetHistory()->histdel()
|
||||||
|
|
||||||
histget({history} [, {index}]) *histget()*
|
histget({history} [, {index}]) *histget()*
|
||||||
The result is a String, the entry with Number {index} from
|
The result is a String, the entry with Number {index} from
|
||||||
@@ -5870,6 +5883,9 @@ histget({history} [, {index}]) *histget()*
|
|||||||
the {num}th entry from the output of |:history|. >
|
the {num}th entry from the output of |:history|. >
|
||||||
:command -nargs=1 H execute histget("cmd", 0+<args>)
|
:command -nargs=1 H execute histget("cmd", 0+<args>)
|
||||||
<
|
<
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetHistory()->histget()
|
||||||
|
|
||||||
histnr({history}) *histnr()*
|
histnr({history}) *histnr()*
|
||||||
The result is the Number of the current entry in {history}.
|
The result is the Number of the current entry in {history}.
|
||||||
See |hist-names| for the possible values of {history}.
|
See |hist-names| for the possible values of {history}.
|
||||||
@@ -5877,6 +5893,9 @@ histnr({history}) *histnr()*
|
|||||||
|
|
||||||
Example: >
|
Example: >
|
||||||
:let inp_index = histnr("expr")
|
:let inp_index = histnr("expr")
|
||||||
|
|
||||||
|
< Can also be used as a |method|: >
|
||||||
|
GetHistory()->histnr()
|
||||||
<
|
<
|
||||||
hlexists({name}) *hlexists()*
|
hlexists({name}) *hlexists()*
|
||||||
The result is a Number, which is non-zero if a highlight group
|
The result is a Number, which is non-zero if a highlight group
|
||||||
@@ -5887,6 +5906,9 @@ hlexists({name}) *hlexists()*
|
|||||||
*highlight_exists()*
|
*highlight_exists()*
|
||||||
Obsolete name: highlight_exists().
|
Obsolete name: highlight_exists().
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetName()->hlexists()
|
||||||
|
<
|
||||||
*hlID()*
|
*hlID()*
|
||||||
hlID({name}) The result is a Number, which is the ID of the highlight group
|
hlID({name}) The result is a Number, which is the ID of the highlight group
|
||||||
with name {name}. When the highlight group doesn't exist,
|
with name {name}. When the highlight group doesn't exist,
|
||||||
@@ -5898,6 +5920,9 @@ hlID({name}) The result is a Number, which is the ID of the highlight group
|
|||||||
< *highlightID()*
|
< *highlightID()*
|
||||||
Obsolete name: highlightID().
|
Obsolete name: highlightID().
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetName()->hlID()
|
||||||
|
|
||||||
hostname() *hostname()*
|
hostname() *hostname()*
|
||||||
The result is a String, which is the name of the machine on
|
The result is a String, which is the name of the machine on
|
||||||
which Vim is currently running. Machine names greater than
|
which Vim is currently running. Machine names greater than
|
||||||
@@ -5922,6 +5947,9 @@ iconv({expr}, {from}, {to}) *iconv()*
|
|||||||
from/to UCS-2 is automatically changed to use UTF-8. You
|
from/to UCS-2 is automatically changed to use UTF-8. You
|
||||||
cannot use UCS-2 in a string anyway, because of the NUL bytes.
|
cannot use UCS-2 in a string anyway, because of the NUL bytes.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetText()->iconv('latin1', 'utf-8')
|
||||||
|
<
|
||||||
*indent()*
|
*indent()*
|
||||||
indent({lnum}) The result is a Number, which is indent of line {lnum} in the
|
indent({lnum}) The result is a Number, which is indent of line {lnum} in the
|
||||||
current buffer. The indent is counted in spaces, the value
|
current buffer. The indent is counted in spaces, the value
|
||||||
@@ -5929,6 +5957,8 @@ indent({lnum}) The result is a Number, which is indent of line {lnum} in the
|
|||||||
|getline()|.
|
|getline()|.
|
||||||
When {lnum} is invalid -1 is returned.
|
When {lnum} is invalid -1 is returned.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetLnum()->indent()
|
||||||
|
|
||||||
index({object}, {expr} [, {start} [, {ic}]]) *index()*
|
index({object}, {expr} [, {start} [, {ic}]]) *index()*
|
||||||
If {object} is a |List| return the lowest index where the item
|
If {object} is a |List| return the lowest index where the item
|
||||||
@@ -5949,6 +5979,8 @@ index({object}, {expr} [, {start} [, {ic}]]) *index()*
|
|||||||
:let idx = index(words, "the")
|
:let idx = index(words, "the")
|
||||||
:if index(numbers, 123) >= 0
|
:if index(numbers, 123) >= 0
|
||||||
|
|
||||||
|
< Can also be used as a |method|: >
|
||||||
|
GetObject()->index(what)
|
||||||
|
|
||||||
input({prompt} [, {text} [, {completion}]]) *input()*
|
input({prompt} [, {text} [, {completion}]]) *input()*
|
||||||
The result is a String, which is whatever the user typed on
|
The result is a String, which is whatever the user typed on
|
||||||
@@ -5995,6 +6027,9 @@ input({prompt} [, {text} [, {completion}]]) *input()*
|
|||||||
: call inputrestore()
|
: call inputrestore()
|
||||||
:endfunction
|
:endfunction
|
||||||
|
|
||||||
|
< Can also be used as a |method|: >
|
||||||
|
GetPrompt()->input()
|
||||||
|
|
||||||
inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
|
inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
|
||||||
Like |input()|, but when the GUI is running and text dialogs
|
Like |input()|, but when the GUI is running and text dialogs
|
||||||
are supported, a dialog window pops up to input the text.
|
are supported, a dialog window pops up to input the text.
|
||||||
@@ -6009,6 +6044,9 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
|
|||||||
<Esc> works like pressing the Cancel button.
|
<Esc> works like pressing the Cancel button.
|
||||||
NOTE: Command-line completion is not supported.
|
NOTE: Command-line completion is not supported.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetPrompt()->inputdialog()
|
||||||
|
|
||||||
inputlist({textlist}) *inputlist()*
|
inputlist({textlist}) *inputlist()*
|
||||||
{textlist} must be a |List| of strings. This |List| is
|
{textlist} must be a |List| of strings. This |List| is
|
||||||
displayed, one string per line. The user will be prompted to
|
displayed, one string per line. The user will be prompted to
|
||||||
@@ -6025,6 +6063,9 @@ inputlist({textlist}) *inputlist()*
|
|||||||
let color = inputlist(['Select color:', '1. red',
|
let color = inputlist(['Select color:', '1. red',
|
||||||
\ '2. green', '3. blue'])
|
\ '2. green', '3. blue'])
|
||||||
|
|
||||||
|
< Can also be used as a |method|: >
|
||||||
|
GetChoices()->inputlist()
|
||||||
|
|
||||||
inputrestore() *inputrestore()*
|
inputrestore() *inputrestore()*
|
||||||
Restore typeahead that was saved with a previous |inputsave()|.
|
Restore typeahead that was saved with a previous |inputsave()|.
|
||||||
Should be called the same number of times inputsave() is
|
Should be called the same number of times inputsave() is
|
||||||
@@ -6050,6 +6091,9 @@ inputsecret({prompt} [, {text}]) *inputsecret()*
|
|||||||
typed on the command-line in response to the issued prompt.
|
typed on the command-line in response to the issued prompt.
|
||||||
NOTE: Command-line completion is not supported.
|
NOTE: Command-line completion is not supported.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetPrompt()->inputsecret()
|
||||||
|
|
||||||
insert({object}, {item} [, {idx}]) *insert()*
|
insert({object}, {item} [, {idx}]) *insert()*
|
||||||
When {object} is a |List| or a |Blob| insert {item} at the start
|
When {object} is a |List| or a |Blob| insert {item} at the start
|
||||||
of it.
|
of it.
|
||||||
@@ -6083,6 +6127,9 @@ isdirectory({directory}) *isdirectory()*
|
|||||||
exist, or isn't a directory, the result is |FALSE|. {directory}
|
exist, or isn't a directory, the result is |FALSE|. {directory}
|
||||||
is any expression, which is used as a String.
|
is any expression, which is used as a String.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetName()->isdirectory()
|
||||||
|
|
||||||
isinf({expr}) *isinf()*
|
isinf({expr}) *isinf()*
|
||||||
Return 1 if {expr} is a positive infinity, or -1 a negative
|
Return 1 if {expr} is a positive infinity, or -1 a negative
|
||||||
infinity, otherwise 0. >
|
infinity, otherwise 0. >
|
||||||
@@ -6109,6 +6156,9 @@ islocked({expr}) *islocked()* *E786*
|
|||||||
< When {expr} is a variable that does not exist you get an error
|
< When {expr} is a variable that does not exist you get an error
|
||||||
message. Use |exists()| to check for existence.
|
message. Use |exists()| to check for existence.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetName()->islocked()
|
||||||
|
|
||||||
isnan({expr}) *isnan()*
|
isnan({expr}) *isnan()*
|
||||||
Return |TRUE| if {expr} is a float with value NaN. >
|
Return |TRUE| if {expr} is a float with value NaN. >
|
||||||
echo isnan(0.0 / 0.0)
|
echo isnan(0.0 / 0.0)
|
||||||
|
@@ -595,33 +595,33 @@ static funcentry_T global_functions[] =
|
|||||||
{"globpath", 2, 5, FEARG_2, f_globpath},
|
{"globpath", 2, 5, FEARG_2, f_globpath},
|
||||||
{"has", 1, 1, 0, f_has},
|
{"has", 1, 1, 0, f_has},
|
||||||
{"has_key", 2, 2, FEARG_1, f_has_key},
|
{"has_key", 2, 2, FEARG_1, f_has_key},
|
||||||
{"haslocaldir", 0, 2, 0, f_haslocaldir},
|
{"haslocaldir", 0, 2, FEARG_1, f_haslocaldir},
|
||||||
{"hasmapto", 1, 3, 0, f_hasmapto},
|
{"hasmapto", 1, 3, FEARG_1, f_hasmapto},
|
||||||
{"highlightID", 1, 1, 0, f_hlID}, // obsolete
|
{"highlightID", 1, 1, FEARG_1, f_hlID}, // obsolete
|
||||||
{"highlight_exists",1, 1, 0, f_hlexists}, // obsolete
|
{"highlight_exists",1, 1, FEARG_1, f_hlexists}, // obsolete
|
||||||
{"histadd", 2, 2, 0, f_histadd},
|
{"histadd", 2, 2, FEARG_2, f_histadd},
|
||||||
{"histdel", 1, 2, 0, f_histdel},
|
{"histdel", 1, 2, FEARG_1, f_histdel},
|
||||||
{"histget", 1, 2, 0, f_histget},
|
{"histget", 1, 2, FEARG_1, f_histget},
|
||||||
{"histnr", 1, 1, 0, f_histnr},
|
{"histnr", 1, 1, FEARG_1, f_histnr},
|
||||||
{"hlID", 1, 1, 0, f_hlID},
|
{"hlID", 1, 1, FEARG_1, f_hlID},
|
||||||
{"hlexists", 1, 1, 0, f_hlexists},
|
{"hlexists", 1, 1, FEARG_1, f_hlexists},
|
||||||
{"hostname", 0, 0, 0, f_hostname},
|
{"hostname", 0, 0, 0, f_hostname},
|
||||||
{"iconv", 3, 3, 0, f_iconv},
|
{"iconv", 3, 3, FEARG_1, f_iconv},
|
||||||
{"indent", 1, 1, 0, f_indent},
|
{"indent", 1, 1, FEARG_1, f_indent},
|
||||||
{"index", 2, 4, FEARG_1, f_index},
|
{"index", 2, 4, FEARG_1, f_index},
|
||||||
{"input", 1, 3, 0, f_input},
|
{"input", 1, 3, FEARG_1, f_input},
|
||||||
{"inputdialog", 1, 3, 0, f_inputdialog},
|
{"inputdialog", 1, 3, FEARG_1, f_inputdialog},
|
||||||
{"inputlist", 1, 1, 0, f_inputlist},
|
{"inputlist", 1, 1, FEARG_1, f_inputlist},
|
||||||
{"inputrestore", 0, 0, 0, f_inputrestore},
|
{"inputrestore", 0, 0, 0, f_inputrestore},
|
||||||
{"inputsave", 0, 0, 0, f_inputsave},
|
{"inputsave", 0, 0, 0, f_inputsave},
|
||||||
{"inputsecret", 1, 2, 0, f_inputsecret},
|
{"inputsecret", 1, 2, FEARG_1, f_inputsecret},
|
||||||
{"insert", 2, 3, FEARG_1, f_insert},
|
{"insert", 2, 3, FEARG_1, f_insert},
|
||||||
{"invert", 1, 1, FEARG_1, f_invert},
|
{"invert", 1, 1, FEARG_1, f_invert},
|
||||||
{"isdirectory", 1, 1, 0, f_isdirectory},
|
{"isdirectory", 1, 1, FEARG_1, f_isdirectory},
|
||||||
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
||||||
{"isinf", 1, 1, FEARG_1, f_isinf},
|
{"isinf", 1, 1, FEARG_1, f_isinf},
|
||||||
#endif
|
#endif
|
||||||
{"islocked", 1, 1, 0, f_islocked},
|
{"islocked", 1, 1, FEARG_1, f_islocked},
|
||||||
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H)
|
||||||
{"isnan", 1, 1, FEARG_1, f_isnan},
|
{"isnan", 1, 1, FEARG_1, f_isnan},
|
||||||
#endif
|
#endif
|
||||||
|
@@ -278,7 +278,7 @@ func Test_blob_index()
|
|||||||
call assert_equal(2, index(0zDEADBEEF, 0xBE))
|
call assert_equal(2, index(0zDEADBEEF, 0xBE))
|
||||||
call assert_equal(-1, index(0zDEADBEEF, 0))
|
call assert_equal(-1, index(0zDEADBEEF, 0))
|
||||||
call assert_equal(2, index(0z11111111, 0x11, 2))
|
call assert_equal(2, index(0z11111111, 0x11, 2))
|
||||||
call assert_equal(3, index(0z11110111, 0x11, 2))
|
call assert_equal(3, 0z11110111->index(0x11, 2))
|
||||||
call assert_equal(2, index(0z11111111, 0x11, -2))
|
call assert_equal(2, index(0z11111111, 0x11, -2))
|
||||||
call assert_equal(3, index(0z11110111, 0x11, -2))
|
call assert_equal(3, index(0z11110111, 0x11, -2))
|
||||||
|
|
||||||
|
@@ -411,7 +411,7 @@ func Test_breakindent11()
|
|||||||
" test strdisplaywidth()
|
" test strdisplaywidth()
|
||||||
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
|
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
|
||||||
let text = getline(2)
|
let text = getline(2)
|
||||||
let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
|
let width = strlen(text[1:]) + indent(2) + strlen(&sbr) * 3 " text wraps 3 times
|
||||||
call assert_equal(width, strdisplaywidth(text))
|
call assert_equal(width, strdisplaywidth(text))
|
||||||
call s:close_windows('set sbr=')
|
call s:close_windows('set sbr=')
|
||||||
endfunc
|
endfunc
|
||||||
@@ -423,7 +423,7 @@ func Test_breakindent11_vartabs()
|
|||||||
" test strdisplaywidth()
|
" test strdisplaywidth()
|
||||||
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
|
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
|
||||||
let text = getline(2)
|
let text = getline(2)
|
||||||
let width = strlen(text[1:])+indent(2)+strlen(&sbr)*3 " text wraps 3 times
|
let width = strlen(text[1:]) + 2->indent() + strlen(&sbr) * 3 " text wraps 3 times
|
||||||
call assert_equal(width, strdisplaywidth(text))
|
call assert_equal(width, strdisplaywidth(text))
|
||||||
call s:close_windows('set sbr= vts&')
|
call s:close_windows('set sbr= vts&')
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -32,7 +32,7 @@ func Test_recursive_delete()
|
|||||||
call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
|
call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
|
||||||
call assert_true(isdirectory('Xdir1/subdir'))
|
call assert_true(isdirectory('Xdir1/subdir'))
|
||||||
call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
|
call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
|
||||||
call assert_true(isdirectory('Xdir1/empty'))
|
call assert_true('Xdir1/empty'->isdirectory())
|
||||||
call assert_equal(0, delete('Xdir1', 'rf'))
|
call assert_equal(0, delete('Xdir1', 'rf'))
|
||||||
call assert_false(isdirectory('Xdir1'))
|
call assert_false(isdirectory('Xdir1'))
|
||||||
call assert_equal(-1, delete('Xdir1', 'd'))
|
call assert_equal(-1, delete('Xdir1', 'd'))
|
||||||
|
@@ -1069,7 +1069,7 @@ endfunc
|
|||||||
|
|
||||||
func Test_hlexists()
|
func Test_hlexists()
|
||||||
call assert_equal(0, hlexists('does_not_exist'))
|
call assert_equal(0, hlexists('does_not_exist'))
|
||||||
call assert_equal(0, hlexists('Number'))
|
call assert_equal(0, 'Number'->hlexists())
|
||||||
call assert_equal(0, highlight_exists('does_not_exist'))
|
call assert_equal(0, highlight_exists('does_not_exist'))
|
||||||
call assert_equal(0, highlight_exists('Number'))
|
call assert_equal(0, highlight_exists('Number'))
|
||||||
syntax on
|
syntax on
|
||||||
@@ -1102,7 +1102,7 @@ endfunc
|
|||||||
func Test_inputlist()
|
func Test_inputlist()
|
||||||
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>1\<cr>", 'tx')
|
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>1\<cr>", 'tx')
|
||||||
call assert_equal(1, c)
|
call assert_equal(1, c)
|
||||||
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>2\<cr>", 'tx')
|
call feedkeys(":let c = ['Select color:', '1. red', '2. green', '3. blue']->inputlist()\<cr>2\<cr>", 'tx')
|
||||||
call assert_equal(2, c)
|
call assert_equal(2, c)
|
||||||
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>3\<cr>", 'tx')
|
call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>3\<cr>", 'tx')
|
||||||
call assert_equal(3, c)
|
call assert_equal(3, c)
|
||||||
@@ -1279,7 +1279,7 @@ func Test_reg_executing_and_recording()
|
|||||||
let g:regs = []
|
let g:regs = []
|
||||||
func TestFunc() abort
|
func TestFunc() abort
|
||||||
let g:regs += [reg_executing()]
|
let g:regs += [reg_executing()]
|
||||||
let g:typed = input('?')
|
let g:typed = '?'->input()
|
||||||
let g:regs += [reg_executing()]
|
let g:regs += [reg_executing()]
|
||||||
endfunc
|
endfunc
|
||||||
call feedkeys("@qy\<CR>", 'xt')
|
call feedkeys("@qy\<CR>", 'xt')
|
||||||
@@ -1295,6 +1295,25 @@ func Test_reg_executing_and_recording()
|
|||||||
unlet s:reg_stat
|
unlet s:reg_stat
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_inputsecret()
|
||||||
|
map W :call TestFunc()<CR>
|
||||||
|
let @q = "W"
|
||||||
|
let g:typed1 = ''
|
||||||
|
let g:typed2 = ''
|
||||||
|
let g:regs = []
|
||||||
|
func TestFunc() abort
|
||||||
|
let g:typed1 = '?'->inputsecret()
|
||||||
|
let g:typed2 = inputsecret('password: ')
|
||||||
|
endfunc
|
||||||
|
call feedkeys("@qsomething\<CR>else\<CR>", 'xt')
|
||||||
|
call assert_equal("something", g:typed1)
|
||||||
|
call assert_equal("else", g:typed2)
|
||||||
|
delfunc TestFunc
|
||||||
|
unmap W
|
||||||
|
unlet g:typed1
|
||||||
|
unlet g:typed2
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_libcall_libcallnr()
|
func Test_libcall_libcallnr()
|
||||||
if !has('libcall')
|
if !has('libcall')
|
||||||
return
|
return
|
||||||
|
@@ -17,7 +17,7 @@ func GetCwdInfo(win, tab)
|
|||||||
let lflag = haslocaldir(a:win)
|
let lflag = haslocaldir(a:win)
|
||||||
else
|
else
|
||||||
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
|
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
|
||||||
let lflag = haslocaldir(a:win, a:tab)
|
let lflag = a:win->haslocaldir(a:tab)
|
||||||
endif
|
endif
|
||||||
return bufname . ' ' . dirname . ' ' . lflag
|
return bufname . ' ' . dirname . ' ' . lflag
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -12,7 +12,7 @@ function History_Tests(hist)
|
|||||||
call assert_equal(-1, histnr(a:hist))
|
call assert_equal(-1, histnr(a:hist))
|
||||||
call assert_equal('', histget(a:hist))
|
call assert_equal('', histget(a:hist))
|
||||||
|
|
||||||
call assert_true(histadd(a:hist, 'ls'))
|
call assert_true('ls'->histadd(a:hist))
|
||||||
call assert_true(histadd(a:hist, 'buffers'))
|
call assert_true(histadd(a:hist, 'buffers'))
|
||||||
call assert_equal('buffers', histget(a:hist))
|
call assert_equal('buffers', histget(a:hist))
|
||||||
call assert_equal('ls', histget(a:hist, -2))
|
call assert_equal('ls', histget(a:hist, -2))
|
||||||
@@ -21,14 +21,14 @@ function History_Tests(hist)
|
|||||||
call assert_equal('', histget(a:hist, -5))
|
call assert_equal('', histget(a:hist, -5))
|
||||||
call assert_equal(2, histnr(a:hist))
|
call assert_equal(2, histnr(a:hist))
|
||||||
call assert_true(histdel(a:hist, 2))
|
call assert_true(histdel(a:hist, 2))
|
||||||
call assert_false(histdel(a:hist, 7))
|
call assert_false(a:hist->histdel(7))
|
||||||
call assert_equal(1, histnr(a:hist))
|
call assert_equal(1, histnr(a:hist))
|
||||||
call assert_equal('ls', histget(a:hist, -1))
|
call assert_equal('ls', histget(a:hist, -1))
|
||||||
|
|
||||||
call assert_true(histadd(a:hist, 'buffers'))
|
call assert_true(histadd(a:hist, 'buffers'))
|
||||||
call assert_true(histadd(a:hist, 'ls'))
|
call assert_true(histadd(a:hist, 'ls'))
|
||||||
call assert_equal('ls', histget(a:hist, -1))
|
call assert_equal('ls', a:hist->histget(-1))
|
||||||
call assert_equal(4, histnr(a:hist))
|
call assert_equal(4, a:hist->histnr())
|
||||||
|
|
||||||
let a=execute('history ' . a:hist)
|
let a=execute('history ' . a:hist)
|
||||||
call assert_match("^\n # \\S* history\n 3 buffers\n> 4 ls$", a)
|
call assert_match("^\n # \\S* history\n 3 buffers\n> 4 ls$", a)
|
||||||
|
@@ -565,7 +565,7 @@ func Test_lockvar_script_autoload()
|
|||||||
set rtp+=./sautest
|
set rtp+=./sautest
|
||||||
lockvar g:footest#x
|
lockvar g:footest#x
|
||||||
unlockvar g:footest#x
|
unlockvar g:footest#x
|
||||||
call assert_equal(-1, islocked('g:footest#x'))
|
call assert_equal(-1, 'g:footest#x'->islocked())
|
||||||
call assert_equal(0, exists('g:footest#x'))
|
call assert_equal(0, exists('g:footest#x'))
|
||||||
call assert_equal(1, g:footest#x)
|
call assert_equal(1, g:footest#x)
|
||||||
let &rtp = old_rtp
|
let &rtp = old_rtp
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
func Test_missing_attr()
|
func Test_missing_attr()
|
||||||
hi Mine term=bold cterm=italic
|
hi Mine term=bold cterm=italic
|
||||||
call assert_equal('Mine', synIDattr(hlID("Mine"), "name"))
|
call assert_equal('Mine', synIDattr(hlID("Mine"), "name"))
|
||||||
call assert_equal('', synIDattr(hlID("Mine"), "bg", 'term'))
|
call assert_equal('', synIDattr("Mine"->hlID(), "bg", 'term'))
|
||||||
call assert_equal('1', synIDattr(hlID("Mine"), "bold", 'term'))
|
call assert_equal('1', synIDattr(hlID("Mine"), "bold", 'term'))
|
||||||
call assert_equal('1', synIDattr(hlID("Mine"), "italic", 'cterm'))
|
call assert_equal('1', synIDattr(hlID("Mine"), "italic", 'cterm'))
|
||||||
hi Mine term=reverse cterm=inverse
|
hi Mine term=reverse cterm=inverse
|
||||||
@@ -12,7 +12,7 @@ func Test_missing_attr()
|
|||||||
hi Mine term=underline cterm=standout gui=undercurl
|
hi Mine term=underline cterm=standout gui=undercurl
|
||||||
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
|
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
|
||||||
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
|
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
|
||||||
call assert_equal('1', synIDattr(hlID("Mine"), "undercurl", 'gui'))
|
call assert_equal('1', synIDattr("Mine"->hlID(), "undercurl", 'gui'))
|
||||||
hi Mine term=NONE cterm=NONE gui=NONE
|
hi Mine term=NONE cterm=NONE gui=NONE
|
||||||
call assert_equal('', synIDattr(hlID("Mine"), "bold", 'term'))
|
call assert_equal('', synIDattr(hlID("Mine"), "bold", 'term'))
|
||||||
call assert_equal('', synIDattr(hlID("Mine"), "italic", 'cterm'))
|
call assert_equal('', synIDattr(hlID("Mine"), "italic", 'cterm'))
|
||||||
|
@@ -33,7 +33,7 @@ func TerminalEscapeCode(code, row, col, m)
|
|||||||
" need to use byte encoding here.
|
" need to use byte encoding here.
|
||||||
let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
|
let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
|
||||||
if has('iconv')
|
if has('iconv')
|
||||||
let bytes = iconv(str, 'utf-8', 'latin1')
|
let bytes = str->iconv('utf-8', 'latin1')
|
||||||
else
|
else
|
||||||
" Hopefully the numbers are not too big.
|
" Hopefully the numbers are not too big.
|
||||||
let bytes = str
|
let bytes = str
|
||||||
|
@@ -100,7 +100,7 @@ func Test_true_false_arg()
|
|||||||
call Try_arg_true_false('maparg("asdf", "i", %v%)', "", "asdff")
|
call Try_arg_true_false('maparg("asdf", "i", %v%)', "", "asdff")
|
||||||
call Try_arg_true_false('FilterMapArg(maparg("asdf", "i", 1, %v%))', "asdff", {'rhs': 'asdff'})
|
call Try_arg_true_false('FilterMapArg(maparg("asdf", "i", 1, %v%))', "asdff", {'rhs': 'asdff'})
|
||||||
|
|
||||||
call Try_arg_true_false('hasmapto("asdf", "i", %v%)', 0, 1)
|
call Try_arg_true_false('"asdf"->hasmapto("i", %v%)', 0, 1)
|
||||||
|
|
||||||
new colored
|
new colored
|
||||||
call setline(1, '<here>')
|
call setline(1, '<here>')
|
||||||
|
@@ -761,6 +761,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 */
|
||||||
|
/**/
|
||||||
|
1953,
|
||||||
/**/
|
/**/
|
||||||
1952,
|
1952,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user