feat(option): custom chars in 'winborder' #33772

Problem: winborder option only supported predefined styles and lacked support for custom border characters.

Solution: implement parsing for comma-separated list format that allows specifying 8 individual border characters (topleft, top, topright, right, botright, bottom, botleft, left).
This commit is contained in:
glepnir
2025-07-10 09:15:08 +08:00
committed by GitHub
parent 7526fb449d
commit fb0dc825e9
8 changed files with 100 additions and 12 deletions

View File

@ -10938,7 +10938,16 @@ describe('float window', function()
winid = api.nvim_open_win(buf, false, config)
eq('', api.nvim_win_get_config(winid).border[1])
-- it is currently not supported.
command([[set winborder=+,-,+,\|,+,-,+,\|]])
winid = api.nvim_open_win(buf, false, config)
eq('+', api.nvim_win_get_config(winid).border[1])
command([[set winborder=●,○,●,○,●,○,●,○]])
winid = api.nvim_open_win(buf, false, config)
eq('', api.nvim_win_get_config(winid).border[1])
eq('Vim(set):E474: Invalid argument: winborder=,,', pcall_err(command, 'set winborder=,,'))
eq('Vim(set):E474: Invalid argument: winborder=+,-,+,|,+,-,+,', pcall_err(command, [[set winborder=+,-,+,\|,+,-,+,]]))
eq('Vim(set):E474: Invalid argument: winborder=custom', pcall_err(command, 'set winborder=custom'))
end)
end