Ludovic Chabant  committed fc20a26

Added auto cd'ing into the repo root for `:Hg`.
This can be disabled with the `lawrencium_auto_cd` global.

  • Participants
  • Parent commits 2ab1b80

Comments (0)

Files changed (2)

File doc/lawrencium.txt

                         specified with the root of the repository the current
                         file belongs to, and it will auto-complete any
                         standard command or option.
+                        Also, unless the `lawrencium_auto_cd` global is set to
+                        `0`, it will temporarily set the current directory to be
+                        the root of the repository so that auto-completed
+                        filenames work out of the box.
 :Hg! {args}             Like |:Hg|, but the output of the command is placed in

File plugin/lawrencium.vim

     let g:lawrencium_hg_executable = 'hg'
+if !exists('g:lawrencium_auto_cd')
+    let g:lawrencium_auto_cd = 1
 if !exists('g:lawrencium_trace')
     let g:lawrencium_trace = 0
 function! s:Hg(bang, ...) abort
     let l:repo = s:hg_repo()
+    if g:lawrencium_auto_cd:
+        " Temporary set the current directory to the root of the repo
+        " to make auto-completed paths work magically.
+        execute 'cd! ' . l:repo.root_dir
+    endif
     let l:output = call(l:repo.RunCommand, a:000, l:repo)
+    if g:lawrencium_auto_cd:
+        execute 'cd! -'
+    endif
     if a:bang
         " Open the output of the command in a temp file.
         let l:temp_file = s:tempname('hg-output-', '.txt')