From f8afa8023ee032dfb2aa9a6489f51484fb276732 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 18 Aug 2023 08:42:45 +0800 Subject: vim-patch:9.0.1728: missing winid argument for virtcol() (#24770) Problem: missing winid argument for virtcol() Solution: Add a {winid} argument to virtcol() Other functions col(), charcol() and virtcol2col() support a {winid} argument, so it makes sense for virtcol() to also support than. Also add test for virtcol2col() with 'showbreak' and {winid}. closes: vim/vim#12633 https://github.com/vim/vim/commit/825cf813fa0fddf085fcbd3194781e875320ff63 --- runtime/doc/builtin.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 94e9223ee9..9a662761c4 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -8399,7 +8399,7 @@ values({dict}) *values()* in arbitrary order. Also see |items()| and |keys()|. Returns zero if {dict} is not a |Dict|. -virtcol({expr} [, {list}]) *virtcol()* +virtcol({expr} [, {list} [, {winid}]]) *virtcol()* The result is a Number, which is the screen column of the file position given with {expr}. That is, the last screen position occupied by the character at that position, when the screen @@ -8431,10 +8431,13 @@ virtcol({expr} [, {list}]) *virtcol()* returns the cursor position. Differs from |'<| in that it's updated right away. - If {list} is present and non-zero then virtcol() returns a List - with the first and last screen position occupied by the + If {list} is present and non-zero then virtcol() returns a + List with the first and last screen position occupied by the character. + With the optional {winid} argument the values are obtained for + that window instead of the current window. + Note that only marks in the current file can be used. Examples: >vim " With text "foo^Lbar" and cursor on the "^L": @@ -8446,8 +8449,8 @@ virtcol({expr} [, {list}]) *virtcol()* " With text " there", with 't at 'h': echo virtcol("'t") " returns 6 -< Techo he first column is 1. 0 is returned for an error. - A echo more advanced example that echoes the maximum length of +< The first column is 1. 0 or [0, 0] is returned for an error. + A more advanced example that echoes the maximum length of all lines: >vim echo max(map(range(1, line('$')), "virtcol([v:val, '$'])")) -- cgit