annotate runtime/plugin/rrhelper.vim @ 1181:aa594ea5ac60

updated for version 7.1a
author vimboss
date Sun, 06 May 2007 16:46:03 +0000
parents 3fc0f57ecb91
children 53938adac247
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim plugin with helper function(s) for --remote-wait
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Maintainer: Flemming Madsen <fma@cci.dk>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Last Change: 2004 May 30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Has this already been loaded?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 if exists("loaded_rrhelper")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 let loaded_rrhelper = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 " Setup answers for a --remote-wait client who will assume
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 " a SetupRemoteReplies() function in the command server
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 if has("clientserver")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 function SetupRemoteReplies()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 let cnt = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 let max = argc()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 let id = expand("<client>")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 if id == 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 return
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 while cnt < max
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " Handle same file from more clients and file being more than once
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 " on the command line by encoding this stuff in the group name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 let uniqueGroup = "RemoteReply_".id."_".cnt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 " Path separators are always forward slashes for the autocommand pattern.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 " Escape special characters with a backslash.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 let f = escape(substitute(argv(cnt), '\\', '/', "g"), ' *,?[{')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 execute "augroup ".uniqueGroup
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 let cnt = cnt + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 augroup END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 endfunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 function DoRemoteReply(id, cnt, group, file)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 call server2client(a:id, a:cnt)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 execute 'autocmd! '.a:group.' BufUnload '.a:file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 execute 'augroup! '.a:group
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 endfunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 " vim: set sw=2 sts=2 :