To: vim_dev@googlegroups.com Subject: Patch 8.1.1909 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1909 Problem: More functions can be used as methods. Solution: Make a few more functions usable as a method. Files: runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c, src/testdir/test_popupwin.vim, src/testdir/test_bufwintabinfo.vim, src/testdir/test_bufline.vim, src/testdir/test_assert.vim *** ../vim-8.1.1908/runtime/doc/eval.txt 2019-08-18 23:01:33.721885979 +0200 --- runtime/doc/eval.txt 2019-08-21 22:39:55.710164887 +0200 *************** *** 1119,1125 **** expr8->(expr1, ...)[expr1] Evaluation is always from left to right. - expr8[expr1] item of String or |List| *expr-[]* *E111* *E909* *subscript* If expr8 is a Number or String this results in a String that contains the --- 1119,1124 ---- *************** *** 2589,2597 **** 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_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} --- 2593,2602 ---- 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_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} *************** *** 3270,3286 **** < Only deals with the current tab page. 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: > 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. byte2line({byte}) *byte2line()* Return the line number that contains the character at byte --- 3275,3296 ---- < Only deals with the current tab page. + Can also be used as a |method|: > + FindBuffer()->bufwinid() + bufwinnr({expr}) *bufwinnr()* ! 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|. ! ! Can also be used as a |method|: > ! FindBuffer()->bufwinnr() byte2line({byte}) *byte2line()* Return the line number that contains the character at byte *************** *** 9498,9503 **** --- 9518,9526 ---- 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 *************** *** 9809,9815 **** 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. jumplist Compiled with |jumplist| support. keymap Compiled with 'keymap' support. lambda Compiled with |lambda| support. --- 9832,9838 ---- 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. (always true) jumplist Compiled with |jumplist| support. keymap Compiled with 'keymap' support. lambda Compiled with |lambda| support. *** ../vim-8.1.1908/runtime/doc/testing.txt 2019-08-16 21:49:17.582152291 +0200 --- runtime/doc/testing.txt 2019-08-21 22:46:58.992300208 +0200 *************** *** 238,243 **** --- 238,247 ---- 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,331 **** --- 326,340 ---- 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()|. *** ../vim-8.1.1908/src/evalfunc.c 2019-08-21 18:30:58.882719474 +0200 --- src/evalfunc.c 2019-08-21 22:47:10.492249578 +0200 *************** *** 431,437 **** #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_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}, --- 431,437 ---- #endif {"assert_beeps", 1, 2, FEARG_1, f_assert_beeps}, {"assert_equal", 2, 3, FEARG_2, f_assert_equal}, ! {"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,445 **** {"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_true", 1, 2, FEARG_1, f_assert_true}, #ifdef FEAT_FLOAT {"atan", 1, 1, FEARG_1, f_atan}, --- 439,445 ---- {"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, 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,471 **** {"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}, {"byte2line", 1, 1, 0, f_byte2line}, {"byteidx", 2, 2, 0, f_byteidx}, {"byteidxcomp", 2, 2, 0, f_byteidxcomp}, --- 464,471 ---- {"bufloaded", 1, 1, FEARG_1, f_bufloaded}, {"bufname", 1, 1, FEARG_1, f_bufname}, {"bufnr", 1, 2, FEARG_1, f_bufnr}, ! {"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,969 **** {"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}, {"wincol", 0, 0, 0, f_wincol}, {"winheight", 1, 1, 0, f_winheight}, {"winlayout", 0, 1, 0, f_winlayout}, --- 963,969 ---- {"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, FEARG_1, f_winbufnr}, {"wincol", 0, 0, 0, f_wincol}, {"winheight", 1, 1, 0, f_winheight}, {"winlayout", 0, 1, 0, f_winlayout}, *** ../vim-8.1.1908/src/testdir/test_popupwin.vim 2019-08-21 22:25:26.034016761 +0200 --- src/testdir/test_popupwin.vim 2019-08-21 22:32:26.552148563 +0200 *************** *** 2332,2339 **** endfunc func Test_popupwin_recycle_bnr() ! let winid = popup_notification('nothing wrong', {}) ! let bufnr = winbufnr(winid) call popup_clear() let winid = popup_notification('nothing wrong', {}) call assert_equal(bufnr, winbufnr(winid)) --- 2332,2338 ---- endfunc func Test_popupwin_recycle_bnr() ! let bufnr = popup_notification('nothing wrong', {})->winbufnr() call popup_clear() let winid = popup_notification('nothing wrong', {}) call assert_equal(bufnr, winbufnr(winid)) *** ../vim-8.1.1908/src/testdir/test_bufwintabinfo.vim 2018-07-15 17:01:06.357425513 +0200 --- src/testdir/test_bufwintabinfo.vim 2019-08-21 22:35:51.803241133 +0200 *************** *** 18,24 **** 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('%'))) " Test for getbufinfo() with 'bufmodified' call assert_equal(0, len(getbufinfo({'bufmodified' : 1}))) --- 18,24 ---- 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())) " Test for getbufinfo() with 'bufmodified' call assert_equal(0, len(getbufinfo({'bufmodified' : 1}))) *** ../vim-8.1.1908/src/testdir/test_bufline.vim 2019-08-07 23:07:03.960858821 +0200 --- src/testdir/test_bufline.vim 2019-08-21 22:37:07.858905335 +0200 *************** *** 152,162 **** let lines =<< trim END new foo ! let winnr=bufwinnr('foo') ! let buf=bufnr('foo') wincmd p call appendbufline(buf, '$', range(1,200)) ! exe winnr. 'wincmd w' norm! G wincmd p call deletebufline(buf, 1, '$') --- 152,162 ---- let lines =<< trim END new foo ! let winnr = 'foo'->bufwinnr() ! let buf = bufnr('foo') wincmd p call appendbufline(buf, '$', range(1,200)) ! exe winnr .. 'wincmd w' norm! G wincmd p call deletebufline(buf, 1, '$') *** ../vim-8.1.1908/src/testdir/test_assert.vim 2019-08-16 21:49:17.582152291 +0200 --- src/testdir/test_assert.vim 2019-08-21 22:47:44.220101128 +0200 *************** *** 54,60 **** let goodtext = ["one", "two", "three"] call writefile(goodtext, 'Xone') ! call assert_equal(1, assert_equalfile('Xone', 'xyzxyz')) call assert_match("E485: Can't read file xyzxyz", v:errors[0]) call remove(v:errors, 0) --- 54,60 ---- let goodtext = ["one", "two", "three"] call writefile(goodtext, 'Xone') ! 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,102 **** --- 97,105 ---- 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() *** ../vim-8.1.1908/src/version.c 2019-08-21 22:25:26.034016761 +0200 --- src/version.c 2019-08-21 22:48:14.119969519 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 1909, /**/ -- From "know your smileys": :-| :-| Deja' vu! /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///