]> granicus.if.org Git - vim/commitdiff
patch 8.1.1952: more functions can be used as a method v8.1.1952
authorBram Moolenaar <Bram@vim.org>
Sat, 31 Aug 2019 17:13:58 +0000 (19:13 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 31 Aug 2019 17:13:58 +0000 (19:13 +0200)
Problem:    More functions can be used as a method.
Solution:   Allow more functions to be used as a method.

runtime/doc/eval.txt
src/evalfunc.c
src/testdir/test_bufwintabinfo.vim
src/testdir/test_escaped_glob.vim
src/testdir/test_getvar.vim
src/testdir/test_glob2regpat.vim
src/testdir/test_tagjump.vim
src/testdir/test_terminal.vim
src/version.c

index e33f4e15d99f783328a9353e866e2c9c1a0d419a..1c792e27a16dfaf10e44ad1904b67708e6cccf02 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 8.1.  Last change: 2019 Aug 28
+*eval.txt*     For Vim version 8.1.  Last change: 2019 Aug 31
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -5517,7 +5517,7 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}])               *gettabwinvar()*
                        gettabwinvar({tabnr}, {winnr}, '&')
 
 <              Can also be used as a |method|: >
-                       GetTabnr()->gettabvar(winnr, varname)
+                       GetTabnr()->gettabwinvar(winnr, varname)
 
 gettagstack([{nr}])                                    *gettagstack()*
                The result is a Dict, which is the tag stack of window {nr}.
@@ -5547,6 +5547,9 @@ gettagstack([{nr}])                                       *gettagstack()*
 
                See |tagstack| for more information about the tag stack.
 
+               Can also be used as a |method|: >
+                       GetWinnr()->gettagstack()
+
 getwininfo([{winid}])                                  *getwininfo()*
                Returns information about windows as a List with Dictionaries.
 
@@ -5581,6 +5584,9 @@ getwininfo([{winid}])                                     *getwininfo()*
                        winrow          topmost screen column of the window,
                                        row from |win_screenpos()|
 
+               Can also be used as a |method|: >
+                       GetWinnr()->getwininfo()
+
 getwinpos([{timeout}])                                 *getwinpos()*
                The result is a list with two numbers, the result of
                getwinposx() and getwinposy() combined:
@@ -5600,6 +5606,10 @@ getwinpos([{timeout}])                                   *getwinpos()*
                          " Do some work here
                        endwhile
 <
+
+               Can also be used as a |method|: >
+                       GetTimeout()->getwinpos()
+<
                                                        *getwinposx()*
 getwinposx()   The result is a Number, which is the X coordinate in pixels of
                the left hand side of the GUI Vim window. Also works for an
@@ -5619,6 +5629,9 @@ getwinvar({winnr}, {varname} [, {def}])                           *getwinvar()*
                Examples: >
                        :let list_is_on = getwinvar(2, '&list')
                        :echo "myvar = " . getwinvar(1, 'myvar')
+
+<              Can also be used as a |method|: >
+                       GetWinnr()->getwinvar(varname)
 <
 glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])             *glob()*
                Expand the file wildcards in {expr}.  See |wildcards| for the
@@ -5656,6 +5669,9 @@ glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])                *glob()*
                See |expand()| for expanding special Vim variables.  See
                |system()| for getting the raw output of an external command.
 
+               Can also be used as a |method|: >
+                       GetExpr()->glob()
+
 glob2regpat({expr})                                     *glob2regpat()*
                Convert a file pattern, as used by glob(), into a search
                pattern.  The result can be used to match with a string that
@@ -5668,7 +5684,9 @@ glob2regpat({expr})                                        *glob2regpat()*
                Note that the result depends on the system.  On MS-Windows
                a backslash usually means a path separator.
 
-                                                               *globpath()*
+               Can also be used as a |method|: >
+                       GetExpr()->glob2regpat()
+<                                                              *globpath()*
 globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
                Perform glob() on all directories in {path} and concatenate
                the results.  Example: >
@@ -5704,6 +5722,10 @@ globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
 <              Upwards search and limiting the depth of "**" is not
                supported, thus using 'path' will not always work properly.
 
+               Can also be used as a |method|, the base is passed as the
+               second argument: >
+                       GetExpr()->globpath(&rtp)
+<
                                                        *has()*
 has({feature}) The result is a Number, which is 1 if the feature {feature} is
                supported, zero otherwise.  The {feature} argument is a
index 45b78e34e5ac8960333e213123295b49cc281dc8..4561f08a341392914fa72b5b6d3c840a2b52e128 100644 (file)
@@ -584,15 +584,15 @@ static funcentry_T global_functions[] =
     {"gettabinfo",     0, 1, FEARG_1,    f_gettabinfo},
     {"gettabvar",      2, 3, FEARG_1,    f_gettabvar},
     {"gettabwinvar",   3, 4, FEARG_1,    f_gettabwinvar},
-    {"gettagstack",    0, 1, 0,          f_gettagstack},
-    {"getwininfo",     0, 1, 0,          f_getwininfo},
-    {"getwinpos",      0, 1, 0,          f_getwinpos},
+    {"gettagstack",    0, 1, FEARG_1,    f_gettagstack},
+    {"getwininfo",     0, 1, FEARG_1,    f_getwininfo},
+    {"getwinpos",      0, 1, FEARG_1,    f_getwinpos},
     {"getwinposx",     0, 0, 0,          f_getwinposx},
     {"getwinposy",     0, 0, 0,          f_getwinposy},
-    {"getwinvar",      2, 3, 0,          f_getwinvar},
-    {"glob",           1, 4, 0,          f_glob},
-    {"glob2regpat",    1, 1, 0,          f_glob2regpat},
-    {"globpath",       2, 5, 0,          f_globpath},
+    {"getwinvar",      2, 3, FEARG_1,    f_getwinvar},
+    {"glob",           1, 4, FEARG_1,    f_glob},
+    {"glob2regpat",    1, 1, FEARG_1,    f_glob2regpat},
+    {"globpath",       2, 5, FEARG_2,    f_globpath},
     {"has",            1, 1, 0,          f_has},
     {"has_key",                2, 2, FEARG_1,    f_has_key},
     {"haslocaldir",    0, 2, 0,          f_haslocaldir},
index d9b3691e414908d9bd893243bfa6584238785efa..4e2c5d284e0fa1c43e833daa27cec3991a8c291a 100644 (file)
@@ -77,7 +77,7 @@ function Test_getbufwintabinfo()
 
     call assert_equal('green', winlist[2].variables.signal)
     call assert_equal(w4_id, winlist[3].winid)
-    let winfo = getwininfo(w5_id)[0]
+    let winfo = w5_id->getwininfo()[0]
     call assert_equal(2, winfo.tabnr)
     call assert_equal([], getwininfo(3))
 
index a03c18047cce7c99a999c27079c70625894b7943..da5963e7c7da5b54d66d201421569745e52b7f7e 100644 (file)
@@ -16,7 +16,7 @@ function Test_glob()
   " Execute these commands in the sandbox, so that using the shell fails.
   " Setting 'shell' to an invalid name causes a memory leak.
   sandbox call assert_equal("", glob('Xxx\{'))
-  sandbox call assert_equal("", glob('Xxx\$'))
+  sandbox call assert_equal("", 'Xxx\$'->glob())
   w! Xxx\{
   w! Xxx\$
   sandbox call assert_equal("Xxx{", glob('Xxx\{'))
@@ -29,5 +29,5 @@ function Test_globpath()
   sandbox call assert_equal("sautest/autoload/globone.vim\nsautest/autoload/globtwo.vim",
         \ globpath('sautest/autoload', 'glob*.vim'))
   sandbox call assert_equal(['sautest/autoload/globone.vim', 'sautest/autoload/globtwo.vim'],
-        \ globpath('sautest/autoload', 'glob*.vim', 0, 1))
+        \ 'glob*.vim'->globpath('sautest/autoload', 0, 1))
 endfunction
index e9868c78873071ecef6f3112c939c91e1db6fe83..5a965488932ffb084fb5a255e50c6d80c942db44 100644 (file)
@@ -12,8 +12,8 @@ func Test_var()
   let def_str = "Chance"
   call assert_equal('Dance', getwinvar(1, 'var_str'))
   call assert_equal('Dance', getwinvar(1, 'var_str', def_str))
-  call assert_equal({'var_str': 'Dance'}, getwinvar(1, ''))
-  call assert_equal({'var_str': 'Dance'}, getwinvar(1, '', def_str))
+  call assert_equal({'var_str': 'Dance'}, 1->getwinvar(''))
+  call assert_equal({'var_str': 'Dance'}, 1->getwinvar('', def_str))
   unlet w:var_str
   call assert_equal('Chance', getwinvar(1, 'var_str', def_str))
   call assert_equal({}, getwinvar(1, ''))
index e6e41f13e7c9611ecc2d5acbc40bd1212e9e9f6e..29c8d99ec04578f033fd20fe003962251380f192 100644 (file)
@@ -8,7 +8,7 @@ endfunc
 
 func Test_glob2regpat_valid()
   call assert_equal('^foo\.', glob2regpat('foo.*'))
-  call assert_equal('^foo.$', glob2regpat('foo?'))
+  call assert_equal('^foo.$', 'foo?'->glob2regpat())
   call assert_equal('\.vim$', glob2regpat('*.vim'))
   call assert_equal('^[abc]$', glob2regpat('[abc]'))
   call assert_equal('^foo bar$', glob2regpat('foo\ bar'))
index e4084b314a83bf13314b6ab0c2d95ccbc504c785..4c16129a21d866b42bd78df8ccdc16c97f7b8d2b 100644 (file)
@@ -268,7 +268,7 @@ func Test_getsettagstack()
   enew | only
   call settagstack(1, {'items' : []})
   call assert_equal(0, gettagstack(1).length)
-  call assert_equal([], gettagstack(1).items)
+  call assert_equal([], 1->gettagstack().items)
   " Error cases
   call assert_equal({}, gettagstack(100))
   call assert_equal(-1, settagstack(100, {'items' : []}))
index e173b42b83f6c0d170f390ccc8a7fc81d7b82e2c..39956bafbaae1ace447fc543e65c11b2cad7807f 100644 (file)
@@ -2066,6 +2066,9 @@ func Test_terminal_getwinpos()
   " In the GUI it can be more, let's assume a 20 x 14 cell.
   " And then add 100 / 200 tolerance.
   let [xroot, yroot] = getwinpos()
+  let winpos = 50->getwinpos()
+  call assert_equal(xroot, winpos[0])
+  call assert_equal(yroot, winpos[1])
   let [winrow, wincol] = win_screenpos('.')
   let xoff = wincol * (has('gui_running') ? 14 : 7) + 100
   let yoff = winrow * (has('gui_running') ? 20 : 10) + 200
index 00e82da91a4ce27e88b1777dbba2a16cd9fb9466..067e176d813a4c3754cda6cf59f08e07c4c8517a 100644 (file)
@@ -761,6 +761,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1952,
 /**/
     1951,
 /**/