Merge pull request #25982 from zeertzjq/backport

Backport to release-0.9
This commit is contained in:
zeertzjq 2023-11-11 15:47:10 +08:00 committed by GitHub
commit 7ce36b7997
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 85 additions and 8 deletions

View File

@ -158,6 +158,13 @@ jobs:
- name: Create log dir
run: mkdir -p "$LOG_DIR"
# FIXME(dundargoc): this workaround is needed for macos as the python3
# provider tests suddenly started to become extremely flaky, and this
# removes the flakiness for some reason.
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: ./.github/scripts/install_deps.sh cpanminus

View File

@ -339,6 +339,11 @@ Print version information and exit.
.El
.Sh ENVIRONMENT
.Bl -tag -width Fl
.It Ev NVIM_APPNAME
The name of sub-directories used within each XDG user directory.
Defaults to
.Cm nvim .
:help $NVIM_APPNAME
.It Ev NVIM_LOG_FILE
Low-level log file, usually found at ~/.local/state/nvim/log.
:help $NVIM_LOG_FILE

View File

@ -377,10 +377,15 @@ void update_window_hl(win_T *wp, bool invalid)
if (wp->w_float_config.border_hl_ids[i]) {
attr = hl_get_ui_attr(ns_id, HLF_BORDER,
wp->w_float_config.border_hl_ids[i], false);
HlAttrs a = syn_attr2entry(attr);
if (a.hl_blend) {
wp->w_float_config.shadow = true;
}
HlAttrs a = syn_attr2entry(attr);
if (a.hl_blend == -1 && wp->w_p_winbl > 0) {
HlEntry entry = kv_A(attr_entries, attr);
a.hl_blend = entry.attr.hl_blend = (int)wp->w_p_winbl;
attr = get_attr_entry(entry);
}
if (a.hl_blend > 0) {
wp->w_float_config.shadow = true;
}
wp->w_float_config.border_attr[i] = attr;
}

View File

@ -4096,7 +4096,12 @@ static void qf_fill_buffer(qf_list_T *qfl, buf_T *buf, qfline_T *old_last, int q
// delete all existing lines
while ((curbuf->b_ml.ml_flags & ML_EMPTY) == 0) {
(void)ml_delete((linenr_T)1, false);
// If deletion fails, this loop may run forever, so
// signal error and return.
if (ml_delete((linenr_T)1, false) == FAIL) {
internal_error("qf_fill_buffer()");
return;
}
}
}

View File

@ -8427,6 +8427,13 @@ describe('float window', function()
[13] = {background = Screen.colors.LightGray, blend = 30},
[14] = {foreground = Screen.colors.Grey0, background = Screen.colors.Grey88},
[15] = {foreground = tonumber('0x939393'), background = Screen.colors.Grey88},
[16] = {background = Screen.colors.Grey90};
[17] = {blend = 100};
[18] = {background = Screen.colors.LightMagenta, blend = 100};
[19] = {background = Screen.colors.LightMagenta, bold = true, blend = 100, foreground = Screen.colors.Blue1};
[20] = {background = Screen.colors.White, foreground = Screen.colors.Gray0};
[21] = {background = Screen.colors.White, bold = true, foreground = tonumber('0x00007f')};
[22] = {background = Screen.colors.Gray90, foreground = Screen.colors.Gray0};
})
insert([[
Lorem ipsum dolor sit amet, consectetur
@ -8557,9 +8564,7 @@ describe('float window', function()
{13:test }|
{13: }|
{13:popup text }|
]], float_pos={
[5] = {{id = 1002}, "NW", 1, 2, 5, true, 50};
}}
]], float_pos={[5] = {{id = 1002}, "NW", 1, 2, 5, true}}}
else
screen:expect([[
Ut enim ad minim veniam, quis nostrud |
@ -8711,6 +8716,56 @@ describe('float window', function()
|
]])
end
-- Check that 'winblend' applies to border
meths.win_set_config(win, {border='single'})
meths.set_option_value('winblend', 100, {win=win.id})
meths.set_option_value("cursorline", true, {win=0})
command('hi clear VertSplit')
feed('k0')
if multigrid then
screen:expect{grid=[[
## grid 1
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[2:--------------------------------------------------]|
[3:--------------------------------------------------]|
## grid 2
Ut enim ad minim veniam, quis nostrud |
exercitation ullamco laboris nisi ut aliquip ex |
ea commodo consequat. Duis aute irure dolor in |
reprehenderit in voluptate velit esse cillum |
dolore eu fugiat nulla pariatur. Excepteur sint |
occaecat cupidatat non proident, sunt in culpa |
{16:^qui officia deserunt mollit anim id est }|
laborum. |
## grid 3
|
## grid 5
{17:}|
{17:}{11:popup text}{18: }{17:}|
{17:}{19:~ }{17:}|
{17:}{19:~ }{17:}|
{17:}|
]], float_pos={[5] = {{id = 1002}, "NW", 1, 2, 5, true}}}
else
screen:expect([[
Ut enim ad minim veniam, quis nostrud |
exercitation ullamco laboris nisi ut aliquip ex |
ea co{20:}Duis aute irure dolor in |
repre{20:}{5:popup}{6:it i}{5:text}{20:lu}tate velit esse cillum |
dolor{20:}{21:~}{20:eu fugiat null} pariatur. Excepteur sint |
occae{20:}{21:~}{20:t cupidatat no} proident, sunt in culpa |
{16:^qui o}{22:}{16:ollit anim id est }|
laborum. |
|
]])
end
end)
it('can overlap doublewidth chars', function()