]> granicus.if.org Git - vim/commitdiff
patch 8.1.1995: more functions can be used as methods v8.1.1995
authorBram Moolenaar <Bram@vim.org>
Fri, 6 Sep 2019 20:00:54 +0000 (22:00 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 6 Sep 2019 20:00:54 +0000 (22:00 +0200)
Problem:    More functions can be used as methods.
Solution:   Make sign functions usable as a method.

runtime/doc/sign.txt
src/evalfunc.c
src/testdir/test_signs.vim
src/version.c

index 0e858d65454d16586883239b927d963f437871c0..601914fe2616c401db53db84aacbf49848e63acb 100644 (file)
@@ -389,6 +389,9 @@ sign_define({list})
                                \  'text' : '!!'}
                                \ ])
 <
+               Can also be used as a |method|: >
+                       GetSignList()->sign_define()
+
 sign_getdefined([{name}])                              *sign_getdefined()*
                Get a list of defined signs and their attributes.
                This is similar to the |:sign-list| command.
@@ -417,6 +420,9 @@ sign_getdefined([{name}])                           *sign_getdefined()*
                        " Get the attribute of the sign named mySign
                        echo sign_getdefined("mySign")
 <
+               Can also be used as a |method|: >
+                       GetSignList()->sign_getdefined()
+
 sign_getplaced([{expr} [, {dict}]])                    *sign_getplaced()*
                Return a list of signs placed in a buffer or all the buffers.
                This is similar to the |:sign-place-list| command.
@@ -476,6 +482,9 @@ sign_getplaced([{expr} [, {dict}]])                 *sign_getplaced()*
 
                        " Get a List of all the placed signs
                        echo sign_getplaced()
+<
+               Can also be used as a |method|: >
+                       GetBufname()->sign_getplaced()
 <
                                                        *sign_jump()*
 sign_jump({id}, {group}, {expr})
@@ -492,7 +501,9 @@ sign_jump({id}, {group}, {expr})
                        " Jump to sign 10 in the current buffer
                        call sign_jump(10, '', '')
 <
-
+               Can also be used as a |method|: >
+                       GetSignid()->sign_jump()
+<
                                                        *sign_place()*
 sign_place({id}, {group}, {name}, {expr} [, {dict}])
                Place the sign defined as {name} at line {lnum} in file or
@@ -542,7 +553,9 @@ sign_place({id}, {group}, {name}, {expr} [, {dict}])
                        call sign_place(10, 'g3', 'sign4', 'json.c',
                                        \ {'lnum' : 40, 'priority' : 90})
 <
-
+               Can also be used as a |method|: >
+                       GetSignid()->sign_place(group, name, expr)
+<
                                                        *sign_placelist()*
 sign_placelist({list})
                Place one or more signs.  This is similar to the
@@ -602,6 +615,8 @@ sign_placelist({list})
                                \  'lnum' : 50}
                                \ ])
 <
+               Can also be used as a |method|: >
+                       GetSignlist()->sign_placelist()
 
 sign_undefine([{name}])                                        *sign_undefine()*
 sign_undefine({list})
@@ -626,6 +641,8 @@ sign_undefine({list})
                        " Delete all the signs
                        call sign_undefine()
 <
+               Can also be used as a |method|: >
+                       GetSignlist()->sign_undefine()
 
 sign_unplace({group} [, {dict}])                       *sign_unplace()*
                Remove a previously placed sign in one or more buffers.  This
@@ -668,6 +685,9 @@ sign_unplace({group} [, {dict}])                    *sign_unplace()*
 
                        " Remove all the placed signs from all the buffers
                        call sign_unplace('*')
+
+<              Can also be used as a |method|: >
+                       GetSigngroup()->sign_unplace()
 <
 sign_unplacelist({list})                               *sign_unplacelist()*
                Remove previously placed signs from one or more buffers.  This
@@ -697,5 +717,8 @@ sign_unplacelist({list})                            *sign_unplacelist()*
                                \ {'id' : 20, 'buffer' : 'b.vim'},
                                \ ])
 <
+               Can also be used as a |method|: >
+                       GetSignlist()->sign_unplacelist()
+<
 
  vim:tw=78:ts=8:noet:ft=help:norl:
index f302df773afb605c07cd6ce6c9c8307175d080a8..2949c8920fbc63a93a5767f99e357a4ee00018ba 100644 (file)
@@ -736,15 +736,15 @@ static funcentry_T global_functions[] =
     {"shellescape",    1, 2, 0,          f_shellescape},
     {"shiftwidth",     0, 1, 0,          f_shiftwidth},
 #ifdef FEAT_SIGNS
-    {"sign_define",    1, 2, 0,          f_sign_define},
-    {"sign_getdefined",        0, 1, 0,          f_sign_getdefined},
-    {"sign_getplaced", 0, 2, 0,          f_sign_getplaced},
-    {"sign_jump",      3, 3, 0,          f_sign_jump},
-    {"sign_place",     4, 5, 0,          f_sign_place},
-    {"sign_placelist", 1, 1, 0,          f_sign_placelist},
-    {"sign_undefine",  0, 1, 0,          f_sign_undefine},
-    {"sign_unplace",   1, 2, 0,          f_sign_unplace},
-    {"sign_unplacelist",       1, 2, 0,          f_sign_unplacelist},
+    {"sign_define",    1, 2, FEARG_1,    f_sign_define},
+    {"sign_getdefined",        0, 1, FEARG_1,    f_sign_getdefined},
+    {"sign_getplaced", 0, 2, FEARG_1,    f_sign_getplaced},
+    {"sign_jump",      3, 3, FEARG_1,    f_sign_jump},
+    {"sign_place",     4, 5, FEARG_1,    f_sign_place},
+    {"sign_placelist", 1, 1, FEARG_1,    f_sign_placelist},
+    {"sign_undefine",  0, 1, FEARG_1,    f_sign_undefine},
+    {"sign_unplace",   1, 2, FEARG_1,    f_sign_unplace},
+    {"sign_unplacelist", 1, 2, FEARG_1,          f_sign_unplacelist},
 #endif
     {"simplify",       1, 1, 0,          f_simplify},
 #ifdef FEAT_FLOAT
index f3477de0935bbf66bb794bb250acc543279a5358..862199cd3c88d5257c090ddece148808db9920bc 100644 (file)
@@ -393,7 +393,7 @@ func Test_sign_funcs()
 
   " Tests for sign_define()
   let attr = {'text' : '=>', 'linehl' : 'Search', 'texthl' : 'Error'}
-  call assert_equal(0, sign_define("sign1", attr))
+  call assert_equal(0, "sign1"->sign_define(attr))
   call assert_equal([{'name' : 'sign1', 'texthl' : 'Error',
              \ 'linehl' : 'Search', 'text' : '=>'}], sign_getdefined())
 
@@ -404,13 +404,13 @@ func Test_sign_funcs()
   call Sign_define_ignore_error("sign2", attr)
   call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
              \ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
-             \ sign_getdefined("sign2"))
+             \ "sign2"->sign_getdefined())
 
   " Test for a sign name with digits
   call assert_equal(0, sign_define(0002, {'linehl' : 'StatusLine'}))
   call assert_equal([{'name' : '2', 'linehl' : 'StatusLine'}],
              \ sign_getdefined(0002))
-  call sign_undefine(0002)
+  eval 0002->sign_undefine()
 
   " Tests for invalid arguments to sign_define()
   call assert_fails('call sign_define("sign4", {"text" : "===>"})', 'E239:')
@@ -434,7 +434,7 @@ func Test_sign_funcs()
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
              \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
              \ 'priority' : 10}]}],
-             \ sign_getplaced('%', {'lnum' : 20}))
+             \ '%'->sign_getplaced({'lnum' : 20}))
   call assert_equal([{'bufnr' : bufnr(''), 'signs' :
              \ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
              \ 'priority' : 10}]}],
@@ -490,10 +490,10 @@ func Test_sign_funcs()
              \ 'E745:')
 
   " Tests for sign_unplace()
-  call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
+  eval 20->sign_place('', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_equal(0, sign_unplace('',
              \ {'id' : 20, 'buffer' : 'Xsign'}))
-  call assert_equal(-1, sign_unplace('',
+  call assert_equal(-1, ''->sign_unplace(
              \ {'id' : 30, 'buffer' : 'Xsign'}))
   call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
   call assert_fails("call sign_unplace('',
@@ -1711,7 +1711,7 @@ func Test_sign_jump_func()
   let r = sign_jump(5, '', 'foo')
   call assert_equal(2, r)
   call assert_equal(2, line('.'))
-  let r = sign_jump(6, 'g1', 'foo')
+  let r = 6->sign_jump('g1', 'foo')
   call assert_equal(5, r)
   call assert_equal(5, line('.'))
   let r = sign_jump(5, '', 'bar')
@@ -1935,8 +1935,7 @@ func Test_sign_funcs_multi()
              \ 'group' : 'g1', 'priority' : 10}], s[0].signs)
 
   " Change an existing sign without specifying the group
-  call assert_equal([5], sign_placelist([
-             \ {'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]))
+  call assert_equal([5], [{'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]->sign_placelist())
   let s = sign_getplaced('Xsign', {'id' : 5, 'group' : ''})
   call assert_equal([{'id' : 5, 'name' : 'sign1', 'lnum' : 11,
              \ 'group' : '', 'priority' : 10}], s[0].signs)
@@ -1969,7 +1968,7 @@ func Test_sign_funcs_multi()
              \ {'id' : 1, 'group' : 'g1'}, {'id' : 1, 'group' : 'g2'}]))
 
   " Invalid arguments
-  call assert_equal([], sign_unplacelist([]))
+  call assert_equal([], []->sign_unplacelist())
   call assert_fails('call sign_unplacelist({})', "E714:")
   call assert_fails('call sign_unplacelist([[]])', "E715:")
   call assert_fails('call sign_unplacelist(["abc"])', "E715:")
index 88e07912646d95a31aa65630167fffa1639c3b9e..65512c98fb1cd6c12e7579474912529321116368 100644 (file)
@@ -757,6 +757,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1995,
 /**/
     1994,
 /**/