diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 0e858d6..601914f 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -389,6 +389,9 @@
 				\  '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 @@
 			" 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.
@@ -477,6 +483,9 @@
 			" 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})
 		Open the buffer {expr} or jump to the window that contains
@@ -492,7 +501,9 @@
 			" 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 @@
 			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 @@
 				\  'lnum' : 50}
 				\ ])
 <
+		Can also be used as a |method|: >
+			GetSignlist()->sign_placelist()
 
 sign_undefine([{name}])					*sign_undefine()*
 sign_undefine({list})
@@ -626,6 +641,8 @@
 			" 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 @@
 
 			" 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 @@
 				\ {'id' : 20, 'buffer' : 'b.vim'},
 				\ ])
 <
+		Can also be used as a |method|: >
+			GetSignlist()->sign_unplacelist()
+<
 
  vim:tw=78:ts=8:noet:ft=help:norl:
