From ebb7c38ca2e59ca7b413750d83ac1cf38d7bb180 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 26 Nov 2025 01:17:06 -0500 Subject: docs: misc fix https://github.com/neovim/neovim.github.io/issues/419 Co-authored-by: Rob Pilling --- runtime/lua/vim/_meta/vimfn.lua | 60 +++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 29 deletions(-) (limited to 'runtime/lua/vim/_meta/vimfn.lua') diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index f8c0ea337c..7e40b542ef 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -212,8 +212,9 @@ function vim.fn.assert_beeps(cmd) end --- always matters. --- Example: >vim --- call assert_equal('foo', 'bar', 'baz') ---- +--- test.vim line 12: baz: Expected 'foo' but got 'bar' +--- < --- --- @param expected any --- @param actual any @@ -336,8 +337,9 @@ function vim.fn.assert_inrange(lower, upper, actual, msg) end --- --- Example: >vim --- call assert_match('^f.*o$', 'foobar') ---- +--- test.vim line 12: Pattern '^f.*o$' does not match 'foobar' +--- < --- --- @param pattern string --- @param actual string @@ -6820,54 +6822,54 @@ function vim.fn.prevnonblank(lnum) end --- *E1500* --- You cannot mix positional and non-positional arguments: >vim --- echo printf("%s%1$s", "One", "Two") ---- < E1500: Cannot mix positional and non-positional arguments: ---- %s%1$s ---- +--- " E1500: Cannot mix positional and non-positional arguments: +--- " %s%1$s +--- < --- *E1501* --- You cannot skip a positional argument in a format string: >vim --- echo printf("%3$s%1$s", "One", "Two", "Three") ---- < E1501: format argument 2 unused in $-style format: ---- %3$s%1$s ---- +--- " E1501: format argument 2 unused in $-style format: +--- " %3$s%1$s +--- < --- *E1502* --- You can re-use a [field-width] (or [precision]) argument: >vim --- echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2) ---- < 1 at width 2 is: 01 ---- +--- " 1 at width 2 is: 01 +--- < --- However, you can't use it as a different type: >vim --- echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2) ---- < E1502: Positional argument 2 used as field width reused as ---- different type: long int/int ---- +--- " E1502: Positional argument 2 used as field width reused as +--- " different type: long int/int +--- < --- *E1503* --- When a positional argument is used, but not the correct number --- or arguments is given, an error is raised: >vim --- echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2) ---- < E1503: Positional argument 3 out of bounds: %1$d at width ---- %2$d is: %01$*2$.*3$d ---- +--- " E1503: Positional argument 3 out of bounds: %1$d at width +--- " %2$d is: %01$*2$.*3$d +--- < --- Only the first error is reported: >vim --- echo printf("%01$*2$.*3$d %4$d", 1, 2) ---- < E1503: Positional argument 3 out of bounds: %01$*2$.*3$d ---- %4$d ---- +--- " E1503: Positional argument 3 out of bounds: %01$*2$.*3$d +--- " %4$d +--- < --- *E1504* --- A positional argument can be used more than once: >vim --- echo printf("%1$s %2$s %1$s", "One", "Two") ---- < One Two One ---- +--- " One Two One +--- < --- However, you can't use a different type the second time: >vim --- echo printf("%1$s %2$s %1$d", "One", "Two") ---- < E1504: Positional argument 1 type used inconsistently: ---- int/string ---- +--- " E1504: Positional argument 1 type used inconsistently: +--- " int/string +--- < --- *E1505* --- Various other errors that lead to a format string being --- wrongly formatted lead to: >vim --- echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2) ---- < E1505: Invalid format specifier: %1$d at width %2$d is: ---- %01$*2$.3$d ---- +--- " E1505: Invalid format specifier: %1$d at width %2$d is: +--- " %01$*2$.3$d +--- < --- *E1507* --- This internal error indicates that the logic to parse a --- positional format argument ran into a problem that couldn't be -- cgit