aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-18 08:42:45 +0800
committerGitHub <noreply@github.com>2023-08-18 08:42:45 +0800
commitf8afa8023ee032dfb2aa9a6489f51484fb276732 (patch)
treef1520e2fc6d990bd9cf9876bdf1bf126f5881431 /runtime
parent46163ddf5d718c4e749df78ef8e54d0715de6cb9 (diff)
downloadrneovim-f8afa8023ee032dfb2aa9a6489f51484fb276732.tar.gz
rneovim-f8afa8023ee032dfb2aa9a6489f51484fb276732.tar.bz2
rneovim-f8afa8023ee032dfb2aa9a6489f51484fb276732.zip
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
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/builtin.txt13
-rw-r--r--runtime/lua/vim/_meta/vimfn.lua14
2 files changed, 17 insertions, 10 deletions
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, '$'])"))
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
index ce325ce1f8..8ae6dd5f10 100644
--- a/runtime/lua/vim/_meta/vimfn.lua
+++ b/runtime/lua/vim/_meta/vimfn.lua
@@ -10013,10 +10013,13 @@ function vim.fn.values(dict) end
--- 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":
@@ -10028,15 +10031,16 @@ function vim.fn.values(dict) end
--- " 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, '$'])"))
---
--- @param expr any
--- @param list? any
+--- @param winid? integer
--- @return any
-function vim.fn.virtcol(expr, list) end
+function vim.fn.virtcol(expr, list, winid) end
--- The result is a Number, which is the byte index of the
--- character in window {winid} at buffer line {lnum} and virtual