mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 9.1.0500: cannot switch buffer in a popup
Problem: cannot switch buffer in a popup (Yggdroot) Solution: add popup_setbuf() function fixes: #15006 closes: #15026 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -153,8 +153,8 @@ diff_filler({lnum}) Number diff filler lines about {lnum}
|
|||||||
diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
|
diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
|
||||||
digraph_get({chars}) String get the |digraph| of {chars}
|
digraph_get({chars}) String get the |digraph| of {chars}
|
||||||
digraph_getlist([{listall}]) List get all |digraph|s
|
digraph_getlist([{listall}]) List get all |digraph|s
|
||||||
digraph_set({chars}, {digraph}) Boolean register |digraph|
|
digraph_set({chars}, {digraph}) Bool register |digraph|
|
||||||
digraph_setlist({digraphlist}) Boolean register multiple |digraph|s
|
digraph_setlist({digraphlist}) Bool register multiple |digraph|s
|
||||||
echoraw({expr}) none output {expr} as-is
|
echoraw({expr}) none output {expr} as-is
|
||||||
empty({expr}) Number |TRUE| if {expr} is empty
|
empty({expr}) Number |TRUE| if {expr} is empty
|
||||||
environ() Dict return environment variables
|
environ() Dict return environment variables
|
||||||
@@ -429,6 +429,7 @@ popup_menu({what}, {options}) Number create a popup window used as a menu
|
|||||||
popup_move({id}, {options}) none set position of popup window {id}
|
popup_move({id}, {options}) none set position of popup window {id}
|
||||||
popup_notification({what}, {options})
|
popup_notification({what}, {options})
|
||||||
Number create a notification popup window
|
Number create a notification popup window
|
||||||
|
popup_setbuf({id}, {buf}) Bool set the buffer for the popup window {id}
|
||||||
popup_setoptions({id}, {options})
|
popup_setoptions({id}, {options})
|
||||||
none set options for popup window {id}
|
none set options for popup window {id}
|
||||||
popup_settext({id}, {text}) none set the text of popup window {id}
|
popup_settext({id}, {text}) none set the text of popup window {id}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*popup.txt* For Vim version 9.1. Last change: 2024 Jun 08
|
*popup.txt* For Vim version 9.1. Last change: 2024 Jun 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -186,6 +186,7 @@ Manipulating a popup window:
|
|||||||
|popup_move()| change the position and size of a popup
|
|popup_move()| change the position and size of a popup
|
||||||
|popup_setoptions()| override options of a popup
|
|popup_setoptions()| override options of a popup
|
||||||
|popup_settext()| replace the popup buffer contents
|
|popup_settext()| replace the popup buffer contents
|
||||||
|
|popup_setbuf()| set the buffer for the popup window
|
||||||
|
|
||||||
Closing popup windows:
|
Closing popup windows:
|
||||||
|popup_close()| close one popup
|
|popup_close()| close one popup
|
||||||
@@ -574,6 +575,18 @@ popup_notification({what}, {options}) *popup_notification()*
|
|||||||
Return type: |Number|
|
Return type: |Number|
|
||||||
|
|
||||||
|
|
||||||
|
popup_setbuf({id}, {buf}) *popup_setbuf()*
|
||||||
|
Set buffer {buf} to be displayed in popup win {id}. For the
|
||||||
|
use of {buf}, see |bufname()| function.
|
||||||
|
May change window size or position to adjust for the size
|
||||||
|
of the buffer text.
|
||||||
|
|
||||||
|
Can also be used as a |method|: >
|
||||||
|
GetPopup()->popup_setbuf(bufnr('foobar'))
|
||||||
|
<
|
||||||
|
Return type: |vim9-boolean|
|
||||||
|
|
||||||
|
|
||||||
popup_setoptions({id}, {options}) *popup_setoptions()*
|
popup_setoptions({id}, {options}) *popup_setoptions()*
|
||||||
Override options in popup {id} with entries in {options}.
|
Override options in popup {id} with entries in {options}.
|
||||||
These options can be set:
|
These options can be set:
|
||||||
@@ -613,9 +626,8 @@ popup_setoptions({id}, {options}) *popup_setoptions()*
|
|||||||
|
|
||||||
|
|
||||||
popup_settext({id}, {text}) *popup_settext()*
|
popup_settext({id}, {text}) *popup_settext()*
|
||||||
Set the text of the buffer in popup win {id}. {text} is the
|
Set the text of the buffer in popup win {id}. {text} is
|
||||||
same as supplied to |popup_create()|, except that a buffer
|
a string or a list of strings to be displayed in the popup.
|
||||||
number is not allowed.
|
|
||||||
Does not change the window size or position, other than caused
|
Does not change the window size or position, other than caused
|
||||||
by the different text.
|
by the different text.
|
||||||
|
|
||||||
|
@@ -9433,6 +9433,7 @@ popup_menu() popup.txt /*popup_menu()*
|
|||||||
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
|
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
|
||||||
popup_move() popup.txt /*popup_move()*
|
popup_move() popup.txt /*popup_move()*
|
||||||
popup_notification() popup.txt /*popup_notification()*
|
popup_notification() popup.txt /*popup_notification()*
|
||||||
|
popup_setbuf() popup.txt /*popup_setbuf()*
|
||||||
popup_setoptions() popup.txt /*popup_setoptions()*
|
popup_setoptions() popup.txt /*popup_setoptions()*
|
||||||
popup_settext() popup.txt /*popup_settext()*
|
popup_settext() popup.txt /*popup_settext()*
|
||||||
popup_show() popup.txt /*popup_show()*
|
popup_show() popup.txt /*popup_show()*
|
||||||
|
@@ -1319,6 +1319,7 @@ Popup window: *popup-window-functions*
|
|||||||
popup_move() change the position and size of a popup
|
popup_move() change the position and size of a popup
|
||||||
popup_setoptions() override options of a popup
|
popup_setoptions() override options of a popup
|
||||||
popup_settext() replace the popup buffer contents
|
popup_settext() replace the popup buffer contents
|
||||||
|
popup_setbuf() set the popup buffer
|
||||||
popup_close() close one popup
|
popup_close() close one popup
|
||||||
popup_clear() close all popups
|
popup_clear() close all popups
|
||||||
popup_filter_menu() select from a list of items
|
popup_filter_menu() select from a list of items
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*version9.txt* For Vim version 9.1. Last change: 2024 Jun 17
|
*version9.txt* For Vim version 9.1. Last change: 2024 Jun 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -41586,6 +41586,7 @@ Functions: ~
|
|||||||
|getregionpos()| get a list of positions for a region
|
|getregionpos()| get a list of positions for a region
|
||||||
|matchbufline()| all the matches of a pattern in a buffer
|
|matchbufline()| all the matches of a pattern in a buffer
|
||||||
|matchstrlist()| all the matches of a pattern in a List of strings
|
|matchstrlist()| all the matches of a pattern in a List of strings
|
||||||
|
|popup_setbuf()| switch to a different buffer in a popup
|
||||||
|
|
||||||
|
|
||||||
Autocommands: ~
|
Autocommands: ~
|
||||||
|
@@ -1133,6 +1133,7 @@ static argcheck_T arg2_number_bool[] = {arg_number, arg_bool};
|
|||||||
static argcheck_T arg2_number_dict_any[] = {arg_number, arg_dict_any};
|
static argcheck_T arg2_number_dict_any[] = {arg_number, arg_dict_any};
|
||||||
static argcheck_T arg2_number_list[] = {arg_number, arg_list_any};
|
static argcheck_T arg2_number_list[] = {arg_number, arg_list_any};
|
||||||
static argcheck_T arg2_number_string[] = {arg_number, arg_string};
|
static argcheck_T arg2_number_string[] = {arg_number, arg_string};
|
||||||
|
static argcheck_T arg2_number_buffer[] = {arg_number, arg_buffer};
|
||||||
static argcheck_T arg2_number_string_or_list[] = {arg_number, arg_string_or_list_any};
|
static argcheck_T arg2_number_string_or_list[] = {arg_number, arg_string_or_list_any};
|
||||||
static argcheck_T arg2_str_or_nr_or_list_dict[] = {arg_str_or_nr_or_list, arg_dict_any};
|
static argcheck_T arg2_str_or_nr_or_list_dict[] = {arg_str_or_nr_or_list, arg_dict_any};
|
||||||
static argcheck_T arg2_string[] = {arg_string, arg_string};
|
static argcheck_T arg2_string[] = {arg_string, arg_string};
|
||||||
@@ -2421,6 +2422,8 @@ static funcentry_T global_functions[] =
|
|||||||
ret_void, PROP_FUNC(f_popup_move)},
|
ret_void, PROP_FUNC(f_popup_move)},
|
||||||
{"popup_notification", 2, 2, FEARG_1, arg2_str_or_nr_or_list_dict,
|
{"popup_notification", 2, 2, FEARG_1, arg2_str_or_nr_or_list_dict,
|
||||||
ret_number, PROP_FUNC(f_popup_notification)},
|
ret_number, PROP_FUNC(f_popup_notification)},
|
||||||
|
{"popup_setbuf", 2, 2, FEARG_1, arg2_number_buffer,
|
||||||
|
ret_number_bool, PROP_FUNC(f_popup_setbuf)},
|
||||||
{"popup_setoptions", 2, 2, FEARG_1, arg2_number_dict_any,
|
{"popup_setoptions", 2, 2, FEARG_1, arg2_number_dict_any,
|
||||||
ret_void, PROP_FUNC(f_popup_setoptions)},
|
ret_void, PROP_FUNC(f_popup_setoptions)},
|
||||||
{"popup_settext", 2, 2, FEARG_1, arg2_number_string_or_list,
|
{"popup_settext", 2, 2, FEARG_1, arg2_number_string_or_list,
|
||||||
|
@@ -2844,6 +2844,54 @@ f_popup_settext(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
popup_adjust_position(wp);
|
popup_adjust_position(wp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* popup_setbuf({id}, {bufnr})
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
f_popup_setbuf(typval_T *argvars, typval_T *rettv UNUSED)
|
||||||
|
{
|
||||||
|
int id;
|
||||||
|
win_T *wp;
|
||||||
|
buf_T *buf;
|
||||||
|
|
||||||
|
rettv->v_type = VAR_BOOL;
|
||||||
|
rettv->vval.v_number = VVAL_FALSE;
|
||||||
|
|
||||||
|
if (check_for_number_arg(argvars, 0) == FAIL
|
||||||
|
|| check_for_buffer_arg(argvars, 1) == FAIL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
id = (int)tv_get_number(&argvars[0]);
|
||||||
|
wp = find_popup_win(id);
|
||||||
|
if (wp == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
buf = tv_get_buf_from_arg(&argvars[1]);
|
||||||
|
|
||||||
|
if (buf == NULL)
|
||||||
|
return;
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
if (buf->b_term != NULL && popup_terminal_exists())
|
||||||
|
{
|
||||||
|
emsg(_(e_cannot_open_second_popup_with_terminal));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (wp->w_buffer != buf)
|
||||||
|
{
|
||||||
|
wp->w_buffer->b_nwindows--;
|
||||||
|
win_init_popup_win(wp, buf);
|
||||||
|
set_local_options_default(wp, FALSE);
|
||||||
|
swap_exists_action = SEA_READONLY;
|
||||||
|
buffer_ensure_loaded(buf);
|
||||||
|
swap_exists_action = SEA_NONE;
|
||||||
|
redraw_win_later(wp, UPD_NOT_VALID);
|
||||||
|
popup_adjust_position(wp);
|
||||||
|
}
|
||||||
|
rettv->vval.v_number = VVAL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
popup_free(win_T *wp)
|
popup_free(win_T *wp)
|
||||||
{
|
{
|
||||||
|
@@ -34,6 +34,7 @@ void f_popup_hide(typval_T *argvars, typval_T *rettv);
|
|||||||
void popup_show(win_T *wp);
|
void popup_show(win_T *wp);
|
||||||
void f_popup_show(typval_T *argvars, typval_T *rettv);
|
void f_popup_show(typval_T *argvars, typval_T *rettv);
|
||||||
void f_popup_settext(typval_T *argvars, typval_T *rettv);
|
void f_popup_settext(typval_T *argvars, typval_T *rettv);
|
||||||
|
void f_popup_setbuf(typval_T *argvars, typval_T *rettv);
|
||||||
int error_if_popup_window(int also_with_term);
|
int error_if_popup_window(int also_with_term);
|
||||||
int popup_close(int id, int force);
|
int popup_close(int id, int force);
|
||||||
int popup_close_tabpage(tabpage_T *tp, int id, int force);
|
int popup_close_tabpage(tabpage_T *tp, int id, int force);
|
||||||
|
10
src/testdir/dumps/Test_popup_setbuf_01.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_01.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
> +0&#ffffff0@74
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @33|t+0#0000001#ffd7ff255|e|s|t| +0#4040ff13#ffffff0@35
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
| +0#0000000&@56|0|,|0|-|1| @8|A|l@1|
|
10
src/testdir/dumps/Test_popup_setbuf_02.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_02.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
> +0&#ffffff0@74
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @33|t+0#0000001#ffd7ff255|e|s|t| +0#4040ff13#ffffff0@35
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|:+0#0000000&|c|a|l@1| |p|o|p|u|p|_|s|e|t|b|u|f|(|p|,| |'|f|o@1|b|a|r|.|t|x|t|'|)| @21|0|,|0|-|1| @8|A|l@1|
|
10
src/testdir/dumps/Test_popup_setbuf_03.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_03.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
|~+0#4040ff13#ffffff0| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @33|t+0#0000001#ffd7ff255|e|s|t| +0#4040ff13#ffffff0@35
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|E+0#ffffff16#e000002|1|2@1|0|:| |S|t|r|i|n|g| |o|r| |N|u|m|b|e|r| |r|e|q|u|i|r|e|d| |f|o|r| |a|r|g|u|m|e|n|t| |2| +0#0000000#ffffff0@27
|
||||||
|
|P+0#00e0003&|r|e|s@1| |E|N|T|E|R| |o|r| |t|y|p|e| |c|o|m@1|a|n|d| |t|o| |c|o|n|t|i|n|u|e> +0#0000000&@35
|
10
src/testdir/dumps/Test_popup_setbuf_04.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_04.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
>*+0#ffffff16#ffd7ff255|h+0#e000002&|e|l|p|.|t|x|t|*+0#ffffff16&| +0#0000001&@5|F|o|r| |V+0#00e0e07&|i|m| |v|e|r|s|i|o|n| |9|.|1|.| +0#0000001&@1|L|a|s|t| |c|h|a|n|g|e|:| |2|0|2|4| |M|a|y| |2|7| @11| +0#0000000#0000001
|
||||||
|
| +0#0000001#ffd7ff255@73| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@23|V|I|M| |-| |m|a|i|n| |h|e|l|p| |f|i|l|e| @29| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@72|k| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@5|M|o|v|e| |a|r|o|u|n|d|:| @1|U|s|e| |t|h|e| |c|u|r|s|o|r| |k|e|y|s|,| |o|r| |"|h|"| |t|o| |g|o| |l|e|f|t|,| @11|h| @1| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255|l| @71| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@19|"|j|"| |t|o| |g|o| |d|o|w|n|,| |"|k|"| |t|o| |g|o| |u|p|,| |"|l|"| |t|o| |g|o| |r|i|g|h|t|.| @6|j| +0#0000000#a8a8a8255
|
||||||
|
|C+0#0000001#ffd7ff255|l|o|s|e| |t|h|i|s| |w|i|n|d|o|w|:| @1|U|s|e| |"|:|q|<+0#e000e06&|E|n|t|e|r|>|"+0#0000001&|.| @37| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@2|G|e|t| |o|u|t| |o|f| |V|i|m|:| @1|U|s|e| |"|:|q|a|!|<+0#e000e06&|E|n|t|e|r|>|"+0#0000001&| |(|c|a|r|e|f|u|l|,| |a|l@1| |c|h|a|n|g|e|s| |a|r|e| |l|o|s|t|!|)|.| @2| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@73| +0#0000000#a8a8a8255
|
10
src/testdir/dumps/Test_popup_setbuf_05.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_05.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
>h+0#e000002#ffffff0|e|l|p|.|t|x|t| +0#0000000&@7|F|o|r| |V+0#00e0e07&|i|m| |v|e|r|s|i|o|n| |9|.|1|.| +0#0000000&@1|L|a|s|t| |c|h|a|n|g|e|:| |2|0|2|4| |M|a|y| |2|7| @12
|
||||||
|
@75
|
||||||
|
@24|V|I|M| |-| |m|a|i|n| |h|e|l|p| |f|i|l|e| @30
|
||||||
|
@73|k|
|
||||||
|
@6|M|o|v|e| |a|r|o|u|n|d|:| @1|U|s|e| |t|h|e| |c|u|r|s|o|r| |k|e| +0#0000001#ffd7ff255|s+0#0000000#ffffff0|,| |o|r| |"|h|"| |t|o| |g|o| |l|e|f|t|,| @11|h| @2
|
||||||
|
|l| @73
|
||||||
|
|h+3&&|e|l|p|.|t|x|t| |[|H|e|l|p|]|[|R|O|]| @37|1|,|1| @11|T|o|p
|
||||||
|
| +0&&@74
|
||||||
|
|[+1&&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
|
||||||
|
| +0&&@74
|
10
src/testdir/dumps/Test_popup_setbuf_06.dump
Normal file
10
src/testdir/dumps/Test_popup_setbuf_06.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
>*+0#ffffff16#ffd7ff255|h+0#e000002&|e|l|p|.|t|x|t|*+0#ffffff16&| +0#0000001&@5|F|o|r| |V+0#00e0e07&|i|m| |v|e|r|s|i|o|n| |9|.|1|.| +0#0000001&@1|L|a|s|t| |c|h|a|n|g|e|:| |2|0|2|4| |M|a|y| |2|7| @11| +0#0000000#0000001
|
||||||
|
| +0#0000001#ffd7ff255@73| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@23|V|I|M| |-| |m|a|i|n| |h|e|l|p| |f|i|l|e| @29| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@72|k| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@5|M|o|v|e| |a|r|o|u|n|d|:| @1|U|s|e| |t|h|e| |c|u|r|s|o|r| |k|e|y|s|,| |o|r| |"|h|"| |t|o| |g|o| |l|e|f|t|,| @11|h| @1| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255|l| @71| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@19|"|j|"| |t|o| |g|o| |d|o|w|n|,| |"|k|"| |t|o| |g|o| |u|p|,| |"|l|"| |t|o| |g|o| |r|i|g|h|t|.| @6|j| +0#0000000#a8a8a8255
|
||||||
|
|C+0#0000001#ffd7ff255|l|o|s|e| |t|h|i|s| |w|i|n|d|o|w|:| @1|U|s|e| |"|:|q|<+0#e000e06&|E|n|t|e|r|>|"+0#0000001&|.| @37| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@2|G|e|t| |o|u|t| |o|f| |V|i|m|:| @1|U|s|e| |"|:|q|a|!|<+0#e000e06&|E|n|t|e|r|>|"+0#0000001&| |(|c|a|r|e|f|u|l|,| |a|l@1| |c|h|a|n|g|e|s| |a|r|e| |l|o|s|t|!|)|.| @2| +0#0000000#a8a8a8255
|
||||||
|
| +0#0000001#ffd7ff255@73| +0#0000000#a8a8a8255
|
@@ -2499,6 +2499,88 @@ func Test_popup_settext_null()
|
|||||||
call popup_close(id)
|
call popup_close(id)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_popup_setbuf()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
let opts = #{wrap: 0}
|
||||||
|
let p = popup_create('test', opts)
|
||||||
|
let buf = bufnr('%')
|
||||||
|
END
|
||||||
|
|
||||||
|
call writefile(lines, 'XtestPopupSetBuf', 'D')
|
||||||
|
let buf = RunVimInTerminal('-S XtestPopupSetBuf', #{rows: 10})
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_01', {})
|
||||||
|
|
||||||
|
" Setting to an non-existing buffer doesn't do anything
|
||||||
|
call term_sendkeys(buf, ":call popup_setbuf(p, 'foobar.txt')\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_02', {})
|
||||||
|
|
||||||
|
" Error
|
||||||
|
call term_sendkeys(buf, ":call popup_setbuf(p, ['a','b','c'])\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_03', {})
|
||||||
|
|
||||||
|
" Set to help window
|
||||||
|
call term_sendkeys(buf, ":help\<CR>")
|
||||||
|
call term_sendkeys(buf, ":call popup_setbuf(p, 'help.txt')\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_04', {})
|
||||||
|
|
||||||
|
" Setting back to original buffer
|
||||||
|
call term_sendkeys(buf, ":call popup_setbuf(p, buf)\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_05', {})
|
||||||
|
|
||||||
|
" use method
|
||||||
|
call term_sendkeys(buf, ":echo p->popup_setbuf('help.txt')\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_06', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, ":echo p->popup_setbuf(buf)\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popup_setbuf_05', {})
|
||||||
|
|
||||||
|
" clean up
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_popup_setbuf_terminal()
|
||||||
|
CheckFeature terminal
|
||||||
|
|
||||||
|
" Check Terminal Feature
|
||||||
|
let termbuf = term_start(&shell, #{hidden: 1})
|
||||||
|
" Wait for shell to start
|
||||||
|
call WaitForAssert({-> assert_equal("run", job_status(term_getjob(termbuf)))})
|
||||||
|
|
||||||
|
let popup = popup_create('test', {})
|
||||||
|
call assert_true(popup->popup_setbuf(termbuf))
|
||||||
|
call popup_close(popup)
|
||||||
|
|
||||||
|
let popup1 = popup_create(termbuf, #{minwidth: 40, minheight: 10, border: []})
|
||||||
|
|
||||||
|
let popup = popup_create('test', {})
|
||||||
|
try
|
||||||
|
call assert_fails(call popup_setbuf(popup, termbuf))
|
||||||
|
catch
|
||||||
|
endtry
|
||||||
|
call popup_close(popup)
|
||||||
|
call popup_close(popup1)
|
||||||
|
call assert_equal([], popup_list())
|
||||||
|
" Close the terminal
|
||||||
|
call term_sendkeys(termbuf, "exit\<CR>")
|
||||||
|
" Wait for shell to exit
|
||||||
|
call WaitForAssert({-> assert_equal("dead", job_status(term_getjob(termbuf)))})
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_popup_setbuf_null()
|
||||||
|
let id = popup_create('', {})
|
||||||
|
call assert_false(popup_setbuf(id, -1))
|
||||||
|
call popup_close(id)
|
||||||
|
|
||||||
|
let id = popup_create('', {})
|
||||||
|
call assert_true(popup_setbuf(id, test_null_string()))
|
||||||
|
call assert_true(popup_setbuf(id, ''))
|
||||||
|
call popup_close(id)
|
||||||
|
|
||||||
|
call assert_false(popup_setbuf(id, 0))
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_popup_hidden()
|
func Test_popup_hidden()
|
||||||
new
|
new
|
||||||
|
|
||||||
|
@@ -3152,6 +3152,11 @@ def Test_popup_settext()
|
|||||||
v9.CheckSourceDefAndScriptFailure(['popup_settext(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2'])
|
v9.CheckSourceDefAndScriptFailure(['popup_settext(1, 2)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1222: String or List required for argument 2'])
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
def Test_popup_setbuf()
|
||||||
|
v9.CheckSourceDefAndScriptFailure(['popup_setbuf([], "abc")'], ['E1013: Argument 1: type mismatch, expected number but got list<any>', 'E1210: Number required for argument 1'])
|
||||||
|
v9.CheckSourceDefAndScriptFailure(['popup_setbuf(1, [])'], ['E1013: Argument 2: type mismatch, expected string but got list<any>', 'E1220: String or Number required for argument 2'])
|
||||||
|
enddef
|
||||||
|
|
||||||
def Test_popup_show()
|
def Test_popup_show()
|
||||||
v9.CheckSourceDefAndScriptFailure(['popup_show("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
v9.CheckSourceDefAndScriptFailure(['popup_show("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
||||||
v9.CheckSourceDefAndScriptFailure(['popup_show(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
|
v9.CheckSourceDefAndScriptFailure(['popup_show(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
500,
|
||||||
/**/
|
/**/
|
||||||
499,
|
499,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user