test(extmarks): add test for virt_text_win_col with cpo+=n (#24328)

This commit is contained in:
zeertzjq 2023-07-13 07:02:06 +08:00 committed by GitHub
parent 317c80f460
commit 9359701eae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 8 deletions

View File

@ -2615,15 +2615,16 @@ nvim_buf_set_extmark({buffer}, {ns_id}, {line}, {col}, {*opts})
string or as an integer, the latter which can be obtained string or as an integer, the latter which can be obtained
using |nvim_get_hl_id_by_name()|. using |nvim_get_hl_id_by_name()|.
• virt_text_pos : position of virtual text. Possible values: • virt_text_pos : position of virtual text. Possible values:
• "eol": right after eol character (default) • "eol": right after eol character (default).
• "overlay": display over the specified column, without • "overlay": display over the specified column, without
shifting the underlying text. shifting the underlying text.
• "right_align": display right aligned in the window. • "right_align": display right aligned in the window.
• "inline": display at the specified column, and shift the • "inline": display at the specified column, and shift the
buffer text to the right as needed buffer text to the right as needed.
• virt_text_win_col : position the virtual text at a fixed • virt_text_win_col : position the virtual text at a fixed
window column (starting from the first text column) window column (starting from the first text column of the
screen line) instead of "virt_text_pos".
• virt_text_hide : hide the virtual text when the background • virt_text_hide : hide the virtual text when the background
text is selected or hidden because of scrolling with text is selected or hidden because of scrolling with
'nowrap' or 'smoothscroll'. Currently only affects 'nowrap' or 'smoothscroll'. Currently only affects

View File

@ -473,15 +473,16 @@ Array nvim_buf_get_extmarks(Buffer buffer, Integer ns_id, Object start, Object e
/// either as a string or as an integer, the latter which /// either as a string or as an integer, the latter which
/// can be obtained using |nvim_get_hl_id_by_name()|. /// can be obtained using |nvim_get_hl_id_by_name()|.
/// - virt_text_pos : position of virtual text. Possible values: /// - virt_text_pos : position of virtual text. Possible values:
/// - "eol": right after eol character (default) /// - "eol": right after eol character (default).
/// - "overlay": display over the specified column, without /// - "overlay": display over the specified column, without
/// shifting the underlying text. /// shifting the underlying text.
/// - "right_align": display right aligned in the window. /// - "right_align": display right aligned in the window.
/// - "inline": display at the specified column, and /// - "inline": display at the specified column, and
/// shift the buffer text to the right as needed /// shift the buffer text to the right as needed.
/// - virt_text_win_col : position the virtual text at a fixed /// - virt_text_win_col : position the virtual text at a fixed
/// window column (starting from the first /// window column (starting from the first
/// text column) /// text column of the screen line) instead
/// of "virt_text_pos".
/// - virt_text_hide : hide the virtual text when the background /// - virt_text_hide : hide the virtual text when the background
/// text is selected or hidden because of /// text is selected or hidden because of
/// scrolling with 'nowrap' or 'smoothscroll'. /// scrolling with 'nowrap' or 'smoothscroll'.

View File

@ -1130,7 +1130,45 @@ describe('extmark decorations', function()
| |
]]} ]]}
command 'set nowrap' command 'set number'
screen:expect{grid=[[
{2: 1 }for _,item in ipairs(items) do |
{2: 2 } local text, hl_id_cell, cou{4:Very} unpack{4:VERY}|
{2: }m) |
{2: 3 } if |
{2: 4 }hl_id_cell ~= nil then {4:Much} {4:MUCH}|
{2: 5 } --^ -- -- -- -- -- -- -- -- -- -- -- hl|
{2: }_id = hl_id_cell {4:Error} {4:ERROR}|
{2: 6 } end |
{2: 7 } for _ = 1, (count or 1) do |
{2: 8 } local cell = line[colpos] |
{2: 9 } {1:-} cell.text = text {1:-}|
{2: 10 } cell.hl_id = hl_id |
{2: 11 } colpos = colpos+1 |
{2: 12 } end |
|
]]}
command 'set cpoptions+=n'
screen:expect{grid=[[
{2: 1 }for _,item in ipairs(items) do |
{2: 2 } local text, hl_id_cell, cou{4:Very} unpack{4:VERY}|
m) |
{2: 3 } if |
{2: 4 }hl_id_cell ~= nil then {4:Much} {4:MUCH}|
{2: 5 } --^ -- -- -- -- -- -- -- -- -- -- -- hl|
_id = hl_id_cell {4:Error} {4:ERROR}|
{2: 6 } end |
{2: 7 } for _ = 1, (count or 1) do |
{2: 8 } local cell = line[colpos] |
{2: 9 } {1:-} cell.text = text {1:-}|
{2: 10 } cell.hl_id = hl_id |
{2: 11 } colpos = colpos+1 |
{2: 12 } end |
|
]]}
command 'set cpoptions-=n nonumber nowrap'
screen:expect{grid=[[ screen:expect{grid=[[
for _,item in ipairs(items) do | for _,item in ipairs(items) do |
local text, hl_id_cell, cou{4:Very} unpack(ite{4:VERY}| local text, hl_id_cell, cou{4:Very} unpack(ite{4:VERY}|
@ -1149,7 +1187,7 @@ describe('extmark decorations', function()
| |
]]} ]]}
feed('8zl') feed '8zl'
screen:expect{grid=[[ screen:expect{grid=[[
em in ipairs(items) do | em in ipairs(items) do |
l text, hl_id_cell, count = unp{4:Very}item) {4:VERY}| l text, hl_id_cell, count = unp{4:Very}item) {4:VERY}|