mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
Merge pull request #14804 from clason/rounded-borders
[RDY] feat(float): add rounded borders preset
This commit is contained in:
commit
4284abd89a
@ -1770,6 +1770,7 @@ static void parse_border_style(Object style, FloatConfig *fconfig, Error *err)
|
||||
{ "double", { "╔", "═", "╗", "║", "╝", "═", "╚", "║" }, false },
|
||||
{ "single", { "┌", "─", "┐", "│", "┘", "─", "└", "│" }, false },
|
||||
{ "shadow", { "", "", " ", " ", " ", " ", " ", "" }, true },
|
||||
{ "rounded", { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, false },
|
||||
{ "solid", { " ", " ", " ", " ", " ", " ", " ", " " }, false },
|
||||
{ NULL, { { NUL } } , false },
|
||||
};
|
||||
|
@ -1437,28 +1437,30 @@ void nvim_chan_send(Integer chan, String data, Error *err)
|
||||
/// end-of-buffer region is hidden by setting `eob` flag of
|
||||
/// 'fillchars' to a space char, and clearing the
|
||||
/// |EndOfBuffer| region in 'winhighlight'.
|
||||
/// - `border`: style of (optional) window border. This can either be a string
|
||||
/// or an array. the string values are:
|
||||
/// - "none" No border. This is the default
|
||||
/// - "single" a single line box
|
||||
/// - "double" a double line box
|
||||
/// - "shadow" a drop shadow effect by blending with the background.
|
||||
/// If it is an array it should be an array of eight items or any divisor of
|
||||
/// - `border`: Style of (optional) window border. This can either be a string
|
||||
/// or an array. The string values are
|
||||
/// - "none": No border (default).
|
||||
/// - "single": A single line box.
|
||||
/// - "double": A double line box.
|
||||
/// - "rounded": Like "single", but with rounded corners ("╭" etc.).
|
||||
/// - "solid": Adds padding by a single whitespace cell.
|
||||
/// - "shadow": A drop shadow effect by blending with the background.
|
||||
/// - If it is an array, it should have a length of eight or any divisor of
|
||||
/// eight. The array will specifify the eight chars building up the border
|
||||
/// in a clockwise fashion starting with the top-left corner. As, an
|
||||
/// example, the double box style could be specified as:
|
||||
/// [ "╔", "═" ,"╗", "║", "╝", "═", "╚", "║" ]
|
||||
/// if the number of chars are less than eight, they will be repeated. Thus
|
||||
/// an ASCII border could be specified as:
|
||||
/// [ "/", "-", "\\", "|" ]
|
||||
/// or all chars the same as:
|
||||
/// [ "x" ]
|
||||
/// An empty string can be used to turn off a specific border, for instance:
|
||||
/// in a clockwise fashion starting with the top-left corner. As an
|
||||
/// example, the double box style could be specified as
|
||||
/// [ "╔", "═" ,"╗", "║", "╝", "═", "╚", "║" ].
|
||||
/// If the number of chars are less than eight, they will be repeated. Thus
|
||||
/// an ASCII border could be specified as
|
||||
/// [ "/", "-", "\\", "|" ],
|
||||
/// or all chars the same as
|
||||
/// [ "x" ].
|
||||
/// An empty string can be used to turn off a specific border, for instance,
|
||||
/// [ "", "", "", ">", "", "", "", "<" ]
|
||||
/// will only make vertical borders but not horizontal ones.
|
||||
/// By default `FloatBorder` highlight is used which links to `VertSplit`
|
||||
/// By default, `FloatBorder` highlight is used, which links to `VertSplit`
|
||||
/// when not defined. It could also be specified by character:
|
||||
/// [ {"+", "MyCorner"}, {"x", "MyBorder"} ]
|
||||
/// [ {"+", "MyCorner"}, {"x", "MyBorder"} ].
|
||||
/// - `noautocmd`: If true then no buffer-related autocommand events such as
|
||||
/// |BufEnter|, |BufLeave| or |BufWinEnter| may fire from
|
||||
/// calling this function.
|
||||
|
@ -711,6 +711,49 @@ describe('float window', function()
|
||||
]]}
|
||||
end
|
||||
|
||||
meths.win_set_config(win, {border="rounded"})
|
||||
if multigrid then
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
^ |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
## grid 5
|
||||
{5:╭─────────╮}|
|
||||
{5:│}{1: halloj! }{5:│}|
|
||||
{5:│}{1: BORDAA }{5:│}|
|
||||
{5:╰─────────╯}|
|
||||
]], float_pos={
|
||||
[5] = { { id = 1002 }, "NW", 1, 2, 5, true }
|
||||
}, win_viewport={
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 2, curline = 0, curcol = 0};
|
||||
}}
|
||||
else
|
||||
screen:expect{grid=[[
|
||||
^ |
|
||||
{0:~ }|
|
||||
{0:~ }{5:╭─────────╮}{0: }|
|
||||
{0:~ }{5:│}{1: halloj! }{5:│}{0: }|
|
||||
{0:~ }{5:│}{1: BORDAA }{5:│}{0: }|
|
||||
{0:~ }{5:╰─────────╯}{0: }|
|
||||
|
|
||||
]]}
|
||||
end
|
||||
|
||||
meths.win_set_config(win, {border="solid"})
|
||||
if multigrid then
|
||||
screen:expect{grid=[[
|
||||
|
Loading…
Reference in New Issue
Block a user