Mercurial > vim-lawrencium
annotate autoload/lawrencium/vimutils.vim @ 142:c9169233d45a
Add `:Hgchangestatus` to show the status of any changeset.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Tue, 10 Jan 2017 23:52:34 -0800 |
| parents | 065625e1bb31 |
| children |
| 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 |
