changeset 17825:ce993ba17adb v8.1.1909

patch 8.1.1909: more functions can be used as methods Commit: https://github.com/vim/vim/commit/e49fbff384e45dd17fed72321c26937edf6de16b Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 21 22:50:07 2019 +0200 patch 8.1.1909: more functions can be used as methods Problem: More functions can be used as methods. Solution: Make a few more functions usable as a method.
author Bram Moolenaar <Bram@vim.org>
date Wed, 21 Aug 2019 23:00:04 +0200
parents ec91bfac242e
children f2a1c7de4d14
files runtime/doc/eval.txt runtime/doc/testing.txt src/evalfunc.c src/testdir/test_assert.vim src/testdir/test_bufline.vim src/testdir/test_bufwintabinfo.vim src/testdir/test_popupwin.vim src/version.c
diffstat 8 files changed, 42 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.1.  Last change: 2019 Aug 18
+*eval.txt*	For Vim version 8.1.  Last change: 2019 Aug 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2593,9 +2593,10 @@ popup_create({what}, {options}) Number	c
 popup_dialog({what}, {options}) Number	create a popup window used as a dialog
 popup_filter_menu({id}, {key})  Number	filter for a menu popup window
 popup_filter_yesno({id}, {key}) Number	filter for a dialog popup window
+popup_findinfo()		Number	get window ID of info popup window
+popup_findpreview()		Number	get window ID of preview popup window
 popup_getoptions({id})		Dict	get options of popup window {id}
 popup_getpos({id})		Dict	get position of popup window {id}
-popup_getpreview()		Number	get window ID of preview popup window
 popup_hide({id})		none	hide popup menu {id}
 popup_menu({what}, {options})	Number	create a popup window used as a menu
 popup_move({id}, {options})	none	set position of popup window {id}
@@ -3274,17 +3275,22 @@ bufwinid({expr})					*bufwinid()*
 <
 		Only deals with the current tab page.
 
+		Can also be used as a |method|: >
+			FindBuffer()->bufwinid()
+
 bufwinnr({expr})					*bufwinnr()*
-		The result is a Number, which is the number of the first
-		window associated with buffer {expr}.  For the use of {expr},
-		see |bufname()| above.  If buffer {expr} doesn't exist or
-		there is no such window, -1 is returned.  Example: >
+		Like |bufwinid()| but return the window number instead of the
+		|window-ID|.
+		If buffer {expr} doesn't exist or there is no such window, -1
+		is returned.  Example: >
 
 	echo "A window containing buffer 1 is " . (bufwinnr(1))
 
 <		The number can be used with |CTRL-W_w| and ":wincmd w"
 		|:wincmd|.
-		Only deals with the current tab page.
+
+		Can also be used as a |method|: >
+			FindBuffer()->bufwinnr()
 
 byte2line({byte})					*byte2line()*
 		Return the line number that contains the character at byte
@@ -9512,6 +9518,9 @@ winbufnr({nr})	The result is a Number, w
 		Example: >
   :echo "The file in the current window is " . bufname(winbufnr(0))
 <
+		Can also be used as a |method|: >
+			FindWindow()->winbufnr()->bufname()
+<
 							*wincol()*
 wincol()	The result is a Number, which is the virtual column of the
 		cursor in the window.  This is counting screen cells from the
@@ -9823,7 +9832,7 @@ hangul_input		Compiled with Hangul input
 hpux			HP-UX version of Vim.
 iconv			Can use iconv() for conversion.
 insert_expand		Compiled with support for CTRL-X expansion commands in
-			Insert mode.
+			Insert mode. (always true)
 jumplist		Compiled with |jumplist| support.
 keymap			Compiled with 'keymap' support.
 lambda			Compiled with |lambda| support.
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -238,6 +238,10 @@ assert_equalfile({fname-one}, {fname-two
 		mention that.
 		Mainly useful with |terminal-diff|.
 
+		Can also be used as a |method|: >
+			GetLog()->assert_equalfile('expected.log')
+
+
 assert_exception({error} [, {msg}])			*assert_exception()*
 		When v:exception does not contain the string {error} an error
 		message is added to |v:errors|.  Also see |assert-return|.
@@ -322,10 +326,15 @@ assert_notmatch({pattern}, {actual} [, {
 		Can also be used as a |method|: >
 			getFile()->assert_notmatch('bar.*')
 
+
 assert_report({msg})					*assert_report()*
 		Report a test failure directly, using {msg}.
 		Always returns one.
 
+		Can also be used as a |method|: >
+			GetMessage()->assert_report()
+
+
 assert_true({actual} [, {msg}])				*assert_true()*
 		When {actual} is not true an error message is added to
 		|v:errors|, like with |assert_equal()|.
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -431,7 +431,7 @@ static funcentry_T global_functions[] =
 #endif
     {"assert_beeps",	1, 2, FEARG_1,	  f_assert_beeps},
     {"assert_equal",	2, 3, FEARG_2,	  f_assert_equal},
-    {"assert_equalfile", 2, 2, 0,	  f_assert_equalfile},
+    {"assert_equalfile", 2, 2, FEARG_1,	  f_assert_equalfile},
     {"assert_exception", 1, 2, 0,	  f_assert_exception},
     {"assert_fails",	1, 3, FEARG_1,	  f_assert_fails},
     {"assert_false",	1, 2, FEARG_1,	  f_assert_false},
@@ -439,7 +439,7 @@ static funcentry_T global_functions[] =
     {"assert_match",	2, 3, FEARG_2,	  f_assert_match},
     {"assert_notequal",	2, 3, FEARG_2,	  f_assert_notequal},
     {"assert_notmatch",	2, 3, FEARG_2,	  f_assert_notmatch},
-    {"assert_report",	1, 1, 0,	  f_assert_report},
+    {"assert_report",	1, 1, FEARG_1,	  f_assert_report},
     {"assert_true",	1, 2, FEARG_1,	  f_assert_true},
 #ifdef FEAT_FLOAT
     {"atan",		1, 1, FEARG_1,	  f_atan},
@@ -464,8 +464,8 @@ static funcentry_T global_functions[] =
     {"bufloaded",	1, 1, FEARG_1,	  f_bufloaded},
     {"bufname",		1, 1, FEARG_1,	  f_bufname},
     {"bufnr",		1, 2, FEARG_1,	  f_bufnr},
-    {"bufwinid",	1, 1, 0,	  f_bufwinid},
-    {"bufwinnr",	1, 1, 0,	  f_bufwinnr},
+    {"bufwinid",	1, 1, FEARG_1,	  f_bufwinid},
+    {"bufwinnr",	1, 1, FEARG_1,	  f_bufwinnr},
     {"byte2line",	1, 1, 0,	  f_byte2line},
     {"byteidx",		2, 2, 0,	  f_byteidx},
     {"byteidxcomp",	2, 2, 0,	  f_byteidxcomp},
@@ -963,7 +963,7 @@ static funcentry_T global_functions[] =
     {"win_id2tabwin",	1, 1, 0,	  f_win_id2tabwin},
     {"win_id2win",	1, 1, 0,	  f_win_id2win},
     {"win_screenpos",	1, 1, 0,	  f_win_screenpos},
-    {"winbufnr",	1, 1, 0,	  f_winbufnr},
+    {"winbufnr",	1, 1, FEARG_1,	  f_winbufnr},
     {"wincol",		0, 0, 0,	  f_wincol},
     {"winheight",	1, 1, 0,	  f_winheight},
     {"winlayout",	0, 1, 0,	  f_winlayout},
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -54,7 +54,7 @@ func Test_assert_equalfile()
 
   let goodtext = ["one", "two", "three"]
   call writefile(goodtext, 'Xone')
-  call assert_equal(1, assert_equalfile('Xone', 'xyzxyz'))
+  call assert_equal(1, 'Xone'->assert_equalfile('xyzxyz'))
   call assert_match("E485: Can't read file xyzxyz", v:errors[0])
   call remove(v:errors, 0)
 
@@ -97,6 +97,9 @@ func Test_assert_report()
   call assert_equal(1, assert_report('something is wrong'))
   call assert_match('something is wrong', v:errors[0])
   call remove(v:errors, 0)
+  call assert_equal(1, 'also wrong'->assert_report())
+  call assert_match('also wrong', v:errors[0])
+  call remove(v:errors, 0)
 endfunc
 
 func Test_assert_exception()
--- a/src/testdir/test_bufline.vim
+++ b/src/testdir/test_bufline.vim
@@ -152,11 +152,11 @@ func Test_appendbufline_redraw()
 
   let lines =<< trim END
     new foo
-    let winnr=bufwinnr('foo')
-    let buf=bufnr('foo')
+    let winnr = 'foo'->bufwinnr()
+    let buf = bufnr('foo')
     wincmd p
     call appendbufline(buf, '$', range(1,200))
-    exe winnr. 'wincmd w'
+    exe winnr .. 'wincmd w'
     norm! G
     wincmd p
     call deletebufline(buf, 1, '$')
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -18,7 +18,7 @@ function Test_getbufwintabinfo()
     let l = getbufinfo('%')
     call assert_equal(bufnr('%'), l[0].bufnr)
     call assert_equal('vim', l[0].variables.editor)
-    call assert_notequal(-1, index(l[0].windows, bufwinid('%')))
+    call assert_notequal(-1, index(l[0].windows, '%'->bufwinid()))
 
     " Test for getbufinfo() with 'bufmodified'
     call assert_equal(0, len(getbufinfo({'bufmodified' : 1})))
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2332,8 +2332,7 @@ func Test_popupmenu_info_align_menu()
 endfunc
 
 func Test_popupwin_recycle_bnr()
-  let winid = popup_notification('nothing wrong', {})
-  let bufnr = winbufnr(winid)
+  let bufnr = popup_notification('nothing wrong', {})->winbufnr()
   call popup_clear()
   let winid = popup_notification('nothing wrong', {})
   call assert_equal(bufnr, winbufnr(winid))
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1909,
+/**/
     1908,
 /**/
     1907,