annotate autoload/lawrencium/vimutils.vim @ 139:065625e1bb31

Split plugin file into multiple extensions.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 13 Jun 2016 09:32:34 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
139
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 function! lawrencium#vimutils#init() abort
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 call lawrencium#add_command("-bang -nargs=1 -complete=customlist,lawrencium#list_repo_files Hgedit :call lawrencium#vimutils#HgEdit(<bang>0, <f-args>)")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 call lawrencium#add_command("-bang -nargs=? -complete=customlist,lawrencium#list_repo_dirs Hgcd :cd<bang> `=lawrencium#hg_repo().GetFullPath(<q-args>)`")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 call lawrencium#add_command("-bang -nargs=? -complete=customlist,lawrencium#list_repo_dirs Hglcd :lcd<bang> `=lawrencium#hg_repo().GetFullPath(<q-args>)`")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 call lawrencium#add_command("-bang -nargs=+ -complete=customlist,lawrencium#list_repo_files Hgvimgrep :call lawrencium#vimutils#HgVimGrep(<bang>0, <f-args>)")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 endfunction
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 " Hgedit {{{
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 function! lawrencium#vimutils#HgEdit(bang, filename) abort
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 let l:full_path = lawrencium#hg_repo().GetFullPath(a:filename)
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 if a:bang
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 execute "edit! " . fnameescape(l:full_path)
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 else
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 execute "edit " . fnameescape(l:full_path)
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 endif
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 endfunction
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 " }}}
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 " Hgvimgrep {{{
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 function! lawrencium#vimutils#HgVimGrep(bang, pattern, ...) abort
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 let l:repo = lawrencium#hg_repo()
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 let l:file_paths = []
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 if a:0 > 0
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 for ff in a:000
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 let l:full_ff = l:repo.GetFullPath(ff)
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 call add(l:file_paths, l:full_ff)
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 endfor
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 else
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 call add(l:file_paths, l:repo.root_dir . "**")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 endif
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 if a:bang
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 execute "vimgrep! " . a:pattern . " " . join(l:file_paths, " ")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 else
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 execute "vimgrep " . a:pattern . " " . join(l:file_paths, " ")
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 endif
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42 endfunction
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 " }}}
065625e1bb31 Split plugin file into multiple extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45