diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/autoload/lawrencium/vimutils.vim	Mon Jun 13 09:32:34 2016 -0700
@@ -0,0 +1,45 @@
+
+function! lawrencium#vimutils#init() abort
+    call lawrencium#add_command("-bang -nargs=1 -complete=customlist,lawrencium#list_repo_files Hgedit :call lawrencium#vimutils#HgEdit(<bang>0, <f-args>)")
+
+    call lawrencium#add_command("-bang -nargs=? -complete=customlist,lawrencium#list_repo_dirs Hgcd :cd<bang> `=lawrencium#hg_repo().GetFullPath(<q-args>)`")
+    call lawrencium#add_command("-bang -nargs=? -complete=customlist,lawrencium#list_repo_dirs Hglcd :lcd<bang> `=lawrencium#hg_repo().GetFullPath(<q-args>)`")
+    
+    call lawrencium#add_command("-bang -nargs=+ -complete=customlist,lawrencium#list_repo_files Hgvimgrep :call lawrencium#vimutils#HgVimGrep(<bang>0, <f-args>)")
+endfunction
+
+" Hgedit {{{
+
+function! lawrencium#vimutils#HgEdit(bang, filename) abort
+    let l:full_path = lawrencium#hg_repo().GetFullPath(a:filename)
+    if a:bang
+        execute "edit! " . fnameescape(l:full_path)
+    else
+        execute "edit " . fnameescape(l:full_path)
+    endif
+endfunction
+
+" }}}
+
+" Hgvimgrep {{{
+
+function! lawrencium#vimutils#HgVimGrep(bang, pattern, ...) abort
+    let l:repo = lawrencium#hg_repo()
+    let l:file_paths = []
+    if a:0 > 0
+        for ff in a:000
+            let l:full_ff = l:repo.GetFullPath(ff)
+            call add(l:file_paths, l:full_ff)
+        endfor
+    else
+        call add(l:file_paths, l:repo.root_dir . "**")
+    endif
+    if a:bang
+        execute "vimgrep! " . a:pattern . " " . join(l:file_paths, " ")
+    else
+        execute "vimgrep " . a:pattern . " " . join(l:file_paths, " ")
+    endif
+endfunction
+
+" }}}
+