Patch 8.0.0396
Problem: 'balloonexpr' only works synchronously.
Solution: Add balloon_show(). (Jusufadis Bakamovic, closes #1449)
Files: runtime/doc/eval.txt, src/evalfunc.c, src/os_unix.c,
src/os_win32.c
*** ../vim-8.0.0395/runtime/doc/eval.txt 2017-03-01 15:07:01.345621994
+0100
--- runtime/doc/eval.txt 2017-03-01 19:42:10.566755873 +0100
***************
*** 1980,1998 ****
arglistid([{winnr} [, {tabnr}]]) Number argument list id
argv({nr}) String {nr} entry of the argument list
argv() List the argument list
! assert_equal({exp}, {act} [, {msg}]) none assert {exp} is equal to {act}
! assert_exception({error} [, {msg}]) none assert {error} is in
v:exception
! assert_fails({cmd} [, {error}]) none assert {cmd} fails
! assert_false({actual} [, {msg}]) none assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}])
none assert {actual} is inside the range
! assert_match({pat}, {text} [, {msg}]) none assert {pat} matches {text}
assert_notequal({exp}, {act} [, {msg}]) none assert {exp} is not equal {act}
assert_notmatch({pat}, {text} [, {msg}]) none assert {pat} not matches {text}
! assert_true({actual} [, {msg}]) none assert {actual} is true
asin({expr}) Float arc sine of {expr}
atan({expr}) Float arc tangent of {expr}
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
browse({save}, {title}, {initdir}, {default})
String put up a file requester
browsedir({title}, {initdir}) String put up a directory requester
--- 1981,2000 ----
arglistid([{winnr} [, {tabnr}]]) Number argument list id
argv({nr}) String {nr} entry of the argument list
argv() List the argument list
! assert_equal({exp}, {act} [, {msg}]) none assert {exp} is equal to {act}
! assert_exception({error} [, {msg}]) none assert {error} is in v:exception
! assert_fails({cmd} [, {error}]) none assert {cmd} fails
! assert_false({actual} [, {msg}]) none assert {actual} is false
assert_inrange({lower}, {upper}, {actual} [, {msg}])
none assert {actual} is inside the range
! assert_match({pat}, {text} [, {msg}]) none assert {pat} matches {text}
assert_notequal({exp}, {act} [, {msg}]) none assert {exp} is not equal {act}
assert_notmatch({pat}, {text} [, {msg}]) none assert {pat} not matches {text}
! assert_true({actual} [, {msg}]) none assert {actual} is true
asin({expr}) Float arc sine of {expr}
atan({expr}) Float arc tangent of {expr}
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
+ balloon_show({msg}) none show {msg} inside the balloon
browse({save}, {title}, {initdir}, {default})
String put up a file requester
browsedir({title}, {initdir}) String put up a directory requester
***************
*** 2618,2623 ****
--- 2620,2644 ----
< 2.356194
{only available when compiled with the |+float| feature}
+ balloon_show({msg}) *balloon_show()*
+ Show {msg} inside the balloon.
+ Example: >
+ func GetBalloonContent()
+ " initiate getting the content
+ return ''
+ endfunc
+ set balloonexpr=GetBalloonContent()
+
+ func BalloonCallback(result)
+ call balloon_show(a:result)
+ endfunc
+ <
+ The intended use is that fetching the content of the balloon
+ is initiated from 'balloonexpr'. It will invoke an
+ asynchronous method, in which a callback invokes
+ balloon_show(). The 'balloonexpr' itself can return an
+ empty string or a placeholder.
+ {only available when compiled with the +beval feature}
*browse()*
browse({save}, {title}, {initdir}, {default})
*** ../vim-8.0.0395/src/evalfunc.c 2017-03-01 15:07:01.341622020 +0100
--- src/evalfunc.c 2017-03-01 19:44:58.649444654 +0100
***************
*** 58,63 ****
--- 58,66 ----
static void f_atan(typval_T *argvars, typval_T *rettv);
static void f_atan2(typval_T *argvars, typval_T *rettv);
#endif
+ #ifdef FEAT_BEVAL
+ static void f_balloon_show(typval_T *argvars, typval_T *rettv);
+ #endif
static void f_browse(typval_T *argvars, typval_T *rettv);
static void f_browsedir(typval_T *argvars, typval_T *rettv);
static void f_bufexists(typval_T *argvars, typval_T *rettv);
***************
*** 484,489 ****
--- 487,495 ----
{"atan", 1, 1, f_atan},
{"atan2", 2, 2, f_atan2},
#endif
+ #ifdef FEAT_BEVAL
+ {"balloon_show", 1, 1, f_balloon_show},
+ #endif
{"browse", 4, 4, f_browse},
{"browsedir", 2, 2, f_browsedir},
{"bufexists", 1, 1, f_bufexists},
***************
*** 1362,1367 ****
--- 1368,1384 ----
}
#endif
+ /*
+ * "balloon_show()" function
+ */
+ #ifdef FEAT_BEVAL
+ static void
+ f_balloon_show(typval_T *argvars, typval_T *rettv UNUSED)
+ {
+ gui_mch_post_balloon(balloonEval, get_tv_string_chk(&argvars[0]));
+ }
+ #endif
+
/*
* "browse(save, title, initdir, default)" function
*/
*** ../vim-8.0.0395/src/os_unix.c 2017-01-17 16:45:00.170121773 +0100
--- src/os_unix.c 2017-03-01 20:13:17.772268535 +0100
***************
*** 467,472 ****
--- 467,478 ----
if ((wait_time < 0 || wait_time > 100L) && channel_any_readahead())
wait_time = 10L;
#endif
+ #ifdef FEAT_BEVAL
+ if (p_beval && wait_time > 100L)
+ /* The 'balloonexpr' may indirectly invoke a callback while waiting
+ * for a character, need to check often. */
+ wait_time = 100L;
+ #endif
/*
* We want to be interrupted by the winch signal
*** ../vim-8.0.0395/src/os_win32.c 2017-02-05 15:10:47.747484014 +0100
--- src/os_win32.c 2017-03-01 20:13:44.668060956 +0100
***************
*** 1467,1472 ****
--- 1467,1478 ----
dwWaitTime = 10;
}
#endif
+ #ifdef FEAT_BEVAL
+ if (p_beval && dwWaitTime > 100)
+ /* The 'balloonexpr' may indirectly invoke a callback while
+ * waiting for a character, need to check often. */
+ dwWaitTime = 100;
+ #endif
#ifdef FEAT_MZSCHEME
if (mzthreads_allowed() && p_mzq > 0
&& (msec < 0 || (long)dwWaitTime > p_mzq))
*** ../vim-8.0.0395/src/version.c 2017-03-01 18:30:30.578978886 +0100
--- src/version.c 2017-03-01 20:25:00.366724336 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 396,
/**/
--
hundred-and-one symptoms of being an internet addict:
36. You miss more than five meals a week downloading the latest games from
Apogee.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.