vim-patch:014c731: runtime(doc): make :h virtcol() more accurate (#35976)

The current description (especially the "unlimited width" part) is
inaccurate in several ways:
- The size of virtual text can depend on window width. In particular,
  the size of "above" virtual text can be equal to window width.
- A double-width character that doesn't fit adds 1 to the virtual column
  of the following characters.
- The size of 'showbreak' and 'breakindent' is counted.

related: vim/vim#5713
closes: vim/vim#18447

014c731fa5
(cherry picked from commit 43f7434bd5)
This commit is contained in:
zeertzjq
2025-10-02 07:33:36 +08:00
committed by github-actions[bot]
parent 6dda8e9572
commit dd79bc8360
3 changed files with 9 additions and 9 deletions

View File

@@ -11610,9 +11610,9 @@ values({dict}) *values()*
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
would be of unlimited width. When there is a <Tab> at the
position given with {expr}. That is, the total number of
screen cells occupied by the part of the line until the end of
the character at that position. When there is a <Tab> at the
position, the returned Number will be the column at the end of
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8. |conceal| is ignored.

View File

@@ -10567,9 +10567,9 @@ function vim.fn.utf16idx(string, idx, countcc, charidx) end
function vim.fn.values(dict) end
--- 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
--- would be of unlimited width. When there is a <Tab> at the
--- position given with {expr}. That is, the total number of
--- screen cells occupied by the part of the line until the end of
--- the character at that position. When there is a <Tab> at the
--- position, the returned Number will be the column at the end of
--- the <Tab>. For example, for a <Tab> in column 1, with 'ts'
--- set to 8, it returns 8. |conceal| is ignored.

View File

@@ -12790,9 +12790,9 @@ M.funcs = {
base = 1,
desc = [=[
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
would be of unlimited width. When there is a <Tab> at the
position given with {expr}. That is, the total number of
screen cells occupied by the part of the line until the end of
the character at that position. When there is a <Tab> at the
position, the returned Number will be the column at the end of
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
set to 8, it returns 8. |conceal| is ignored.