diff options
-rw-r--r-- | runtime/doc/eval.txt | 6 | ||||
-rw-r--r-- | src/nvim/eval.lua | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_method.vim | 16 |
3 files changed, 15 insertions, 9 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 321da32bf0..e180836917 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -6653,7 +6653,11 @@ printf({fmt}, {expr1} ...) *printf()* < May result in: " 99: E42 asdfasdfasdfasdfasdfasdfasdfas" ~ - Often used items are: + When used as a |method| the base is passed as the second + argument: > + Compute()->printf("result: %d") + +< Often used items are: %s string %6S string right-aligned in 6 display cells %6s string right-aligned in 6 bytes diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 50b6eaadfd..1821ae51d7 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -258,7 +258,7 @@ return { pathshorten={args=1}, pow={args=2}, prevnonblank={args=1}, - printf={args=varargs(1)}, + printf={args=varargs(1), base=2}, prompt_getprompt={args=1}, prompt_setcallback={args={2, 2}}, prompt_setinterrupt={args={2, 2}}, diff --git a/src/nvim/testdir/test_method.vim b/src/nvim/testdir/test_method.vim index 4788f211e8..eeb90cd16a 100644 --- a/src/nvim/testdir/test_method.vim +++ b/src/nvim/testdir/test_method.vim @@ -72,13 +72,15 @@ func Test_dict_method() endfunc func Test_string_method() - call assert_equal(['1', '2', '3'], '1 2 3'->split()) - call assert_equal([1, 2, 3], '1 2 3'->split()->map({i, v -> str2nr(v)})) - call assert_equal([65, 66, 67], 'ABC'->str2list()) - call assert_equal(3, 'ABC'->strlen()) - call assert_equal('a^Mb^[c', "a\rb\ec"->strtrans()) - call assert_equal(4, "aあb"->strwidth()) - call assert_equal('axc', 'abc'->substitute('b', 'x', '')) + eval '1 2 3'->split()->assert_equal(['1', '2', '3']) + eval '1 2 3'->split()->map({i, v -> str2nr(v)})->assert_equal([1, 2, 3]) + eval 'ABC'->str2list()->assert_equal([65, 66, 67]) + eval 'ABC'->strlen()->assert_equal(3) + eval "a\rb\ec"->strtrans()->assert_equal('a^Mb^[c') + eval "aあb"->strwidth()->assert_equal(4) + eval 'abc'->substitute('b', 'x', '')->assert_equal('axc') + + eval 'abc'->printf('the %s arg')->assert_equal('the abc arg') endfunc func Test_method_append() |