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

825cf813fa
This commit is contained in:
zeertzjq
2023-08-18 08:42:45 +08:00
committed by GitHub
parent 46163ddf5d
commit f8afa8023e
6 changed files with 92 additions and 20 deletions

View File

@@ -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