Mercurial > hg > mercurial-crew-with-dirclash
annotate contrib/vim/hgcommand.vim @ 2715:79c31b6b9c83
merge with upstream
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Jul 2006 09:00:59 +0200 |
parents | 8dadff054acf |
children | 0b7206a65325 |
rev | line source |
---|---|
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1 " vim600: set foldmethod=marker: |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
2 " |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
3 " Vim plugin to assist in working with HG-controlled files. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
4 " |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
5 " Last Change: 2006/02/22 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
6 " Version: 1.76 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
7 " Maintainer: Mathieu Clabaut <mathieu.clabaut@gmail.com> |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
8 " License: This file is placed in the public domain. |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
9 " Credits: |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
10 " Bob Hiestand <bob.hiestand@gmail.com> for the fabulous |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
11 " cvscommand.vim from which this script was directly created by |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
12 " means of sed commands and minor tweaks. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
13 |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
14 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
15 " |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
16 " Section: Documentation |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
17 "---------------------------- |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
18 " |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
19 " Documentation should be available by ":help hgcommand" command, once the |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
20 " script has been copied in you .vim/plugin directory. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
21 " |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
22 " You still can read the documentation at the end of this file. Locate it by |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
23 " searching the "hgcommand-contents" string (and set ft=help to have |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
24 " appropriate syntaxic coloration). |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
25 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
26 " Section: Plugin header {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
27 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
28 " loaded_hgcommand is set to 1 when the initialization begins, and 2 when it |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
29 " completes. This allows various actions to only be taken by functions after |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
30 " system initialization. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
31 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
32 if exists("loaded_hgcommand") |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
33 finish |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
34 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
35 let loaded_hgcommand = 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
36 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
37 if v:version < 602 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
38 echohl WarningMsg|echomsg "HGCommand 1.69 or later requires VIM 6.2 or later"|echohl None |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
39 finish |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
40 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
41 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
42 " Section: Event group setup {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
43 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
44 augroup HGCommand |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
45 augroup END |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
46 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
47 " Section: Plugin initialization {{{1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
48 silent do HGCommand User HGPluginInit |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
49 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
50 " Section: Script variable initialization {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
51 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
52 let s:HGCommandEditFileRunning = 0 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
53 unlet! s:vimDiffRestoreCmd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
54 unlet! s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
55 unlet! s:vimDiffBufferCount |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
56 unlet! s:vimDiffScratchList |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
57 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
58 " Section: Utility functions {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
59 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
60 " Function: s:HGResolveLink() {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
61 " Fully resolve the given file name to remove shortcuts or symbolic links. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
62 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
63 function! s:HGResolveLink(fileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
64 let resolved = resolve(a:fileName) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
65 if resolved != a:fileName |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
66 let resolved = s:HGResolveLink(resolved) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
67 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
68 return resolved |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
69 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
70 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
71 " Function: s:HGChangeToCurrentFileDir() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
72 " Go to the directory in which the current HG-controlled file is located. |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
73 " If this is a HG command buffer, first switch to the original file. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
74 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
75 function! s:HGChangeToCurrentFileDir(fileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
76 let oldCwd=getcwd() |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
77 let fileName=s:HGResolveLink(a:fileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
78 let newCwd=fnamemodify(fileName, ':h') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
79 if strlen(newCwd) > 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
80 execute 'cd' escape(newCwd, ' ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
81 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
82 return oldCwd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
83 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
84 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
85 " Function: s:HGGetOption(name, default) {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
86 " Grab a user-specified option to override the default provided. Options are |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
87 " searched in the window, buffer, then global spaces. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
88 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
89 function! s:HGGetOption(name, default) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
90 if exists("s:" . a:name . "Override") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
91 execute "return s:".a:name."Override" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
92 elseif exists("w:" . a:name) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
93 execute "return w:".a:name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
94 elseif exists("b:" . a:name) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
95 execute "return b:".a:name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
96 elseif exists("g:" . a:name) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
97 execute "return g:".a:name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
98 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
99 return a:default |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
100 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
101 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
102 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
103 " Function: s:HGEditFile(name, origBuffNR) {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
104 " Wrapper around the 'edit' command to provide some helpful error text if the |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
105 " current buffer can't be abandoned. If name is provided, it is used; |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
106 " otherwise, a nameless scratch buffer is used. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
107 " Returns: 0 if successful, -1 if an error occurs. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
108 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
109 function! s:HGEditFile(name, origBuffNR) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
110 "Name parameter will be pasted into expression. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
111 let name = escape(a:name, ' *?\') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
112 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
113 let editCommand = s:HGGetOption('HGCommandEdit', 'edit') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
114 if editCommand != 'edit' |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
115 if s:HGGetOption('HGCommandSplit', 'horizontal') == 'horizontal' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
116 if name == "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
117 let editCommand = 'rightbelow new' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
118 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
119 let editCommand = 'rightbelow split ' . name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
120 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
121 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
122 if name == "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
123 let editCommand = 'vert rightbelow new' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
124 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
125 let editCommand = 'vert rightbelow split ' . name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
126 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
127 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
128 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
129 if name == "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
130 let editCommand = 'enew' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
131 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
132 let editCommand = 'edit ' . name |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
133 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
134 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
135 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
136 " Protect against useless buffer set-up |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
137 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning + 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
138 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
139 execute editCommand |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
140 finally |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
141 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning - 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
142 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
143 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
144 let b:HGOrigBuffNR=a:origBuffNR |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
145 let b:HGCommandEdit='split' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
146 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
147 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
148 " Function: s:HGCreateCommandBuffer(cmd, cmdName, statusText, filename) {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
149 " Creates a new scratch buffer and captures the output from execution of the |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
150 " given command. The name of the scratch buffer is returned. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
151 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
152 function! s:HGCreateCommandBuffer(cmd, cmdName, statusText, origBuffNR) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
153 let fileName=bufname(a:origBuffNR) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
154 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
155 let resultBufferName='' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
156 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
157 if s:HGGetOption("HGCommandNameResultBuffers", 0) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
158 let nameMarker = s:HGGetOption("HGCommandNameMarker", '_') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
159 if strlen(a:statusText) > 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
160 let bufName=a:cmdName . ' -- ' . a:statusText |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
161 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
162 let bufName=a:cmdName |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
163 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
164 let bufName=fileName . ' ' . nameMarker . bufName . nameMarker |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
165 let counter=0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
166 let resultBufferName = bufName |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
167 while buflisted(resultBufferName) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
168 let counter=counter + 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
169 let resultBufferName=bufName . ' (' . counter . ')' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
170 endwhile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
171 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
172 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
173 let hgCommand = s:HGGetOption("HGCommandHGExec", "hg") . " " . a:cmd |
2634
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
174 "echomsg "DBG :".hgCommand |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
175 let hgOut = system(hgCommand) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
176 " HACK: diff command does not return proper error codes |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
177 if v:shell_error && a:cmdName != 'hgdiff' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
178 if strlen(hgOut) == 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
179 echoerr "HG command failed" |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
180 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
181 echoerr "HG command failed: " . hgOut |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
182 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
183 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
184 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
185 if strlen(hgOut) == 0 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
186 " Handle case of no output. In this case, it is important to check the |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
187 " file status, especially since hg edit/unedit may change the attributes |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
188 " of the file with no visible output. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
189 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
190 echomsg "No output from HG command" |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
191 checktime |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
192 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
193 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
194 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
195 if s:HGEditFile(resultBufferName, a:origBuffNR) == -1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
196 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
197 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
198 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
199 set buftype=nofile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
200 set noswapfile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
201 set filetype= |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
202 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
203 if s:HGGetOption("HGCommandDeleteOnHide", 0) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
204 set bufhidden=delete |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
205 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
206 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
207 silent 0put=hgOut |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
208 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
209 " The last command left a blank line at the end of the buffer. If the |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
210 " last line is folded (a side effect of the 'put') then the attempt to |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
211 " remove the blank line will kill the last fold. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
212 " |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
213 " This could be fixed by explicitly detecting whether the last line is |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
214 " within a fold, but I prefer to simply unfold the result buffer altogether. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
215 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
216 if has('folding') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
217 normal zR |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
218 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
219 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
220 $d |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
221 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
222 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
223 " Define the environment and execute user-defined hooks. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
224 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
225 let b:HGSourceFile=fileName |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
226 let b:HGCommand=a:cmdName |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
227 if a:statusText != "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
228 let b:HGStatusText=a:statusText |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
229 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
230 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
231 silent do HGCommand User HGBufferCreated |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
232 return bufnr("%") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
233 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
234 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
235 " Function: s:HGBufferCheck(hgBuffer) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
236 " Attempts to locate the original file to which HG operations were applied |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
237 " for a given buffer. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
238 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
239 function! s:HGBufferCheck(hgBuffer) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
240 let origBuffer = getbufvar(a:hgBuffer, "HGOrigBuffNR") |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
241 if origBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
242 if bufexists(origBuffer) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
243 return origBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
244 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
245 " Original buffer no longer exists. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
246 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
247 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
248 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
249 " No original buffer |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
250 return a:hgBuffer |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
251 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
252 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
253 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
254 " Function: s:HGCurrentBufferCheck() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
255 " Attempts to locate the original file to which HG operations were applied |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
256 " for the current buffer. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
257 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
258 function! s:HGCurrentBufferCheck() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
259 return s:HGBufferCheck(bufnr("%")) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
260 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
261 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
262 " Function: s:HGToggleDeleteOnHide() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
263 " Toggles on and off the delete-on-hide behavior of HG buffers |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
264 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
265 function! s:HGToggleDeleteOnHide() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
266 if exists("g:HGCommandDeleteOnHide") |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
267 unlet g:HGCommandDeleteOnHide |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
268 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
269 let g:HGCommandDeleteOnHide=1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
270 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
271 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
272 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
273 " Function: s:HGDoCommand(hgcmd, cmdName, statusText) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
274 " General skeleton for HG function execution. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
275 " Returns: name of the new command buffer containing the command results |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
276 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
277 function! s:HGDoCommand(cmd, cmdName, statusText) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
278 let hgBufferCheck=s:HGCurrentBufferCheck() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
279 if hgBufferCheck == -1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
280 echo "Original buffer no longer exists, aborting." |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
281 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
282 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
283 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
284 let fileName=bufname(hgBufferCheck) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
285 if isdirectory(fileName) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
286 let fileName=fileName . "/" . getline(".") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
287 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
288 let realFileName = fnamemodify(s:HGResolveLink(fileName), ':t') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
289 let oldCwd=s:HGChangeToCurrentFileDir(fileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
290 try |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
291 " TODO |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
292 "if !filereadable('HG/Root') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
293 "throw fileName . ' is not a HG-controlled file.' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
294 "endif |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
295 let fullCmd = a:cmd . ' "' . realFileName . '"' |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
296 "echomsg "DEBUG".fullCmd |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
297 let resultBuffer=s:HGCreateCommandBuffer(fullCmd, a:cmdName, a:statusText, hgBufferCheck) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
298 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
299 catch |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
300 echoerr v:exception |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
301 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
302 finally |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
303 execute 'cd' escape(oldCwd, ' ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
304 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
305 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
306 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
307 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
308 " Function: s:HGGetStatusVars(revision, branch, repository) {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
309 " |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
310 " Obtains a HG revision number and branch name. The 'revisionVar', |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
311 " 'branchVar'and 'repositoryVar' arguments, if non-empty, contain the names of variables to hold |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
312 " the corresponding results. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
313 " |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
314 " Returns: string to be exec'd that sets the multiple return values. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
315 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
316 function! s:HGGetStatusVars(revisionVar, branchVar, repositoryVar) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
317 let hgBufferCheck=s:HGCurrentBufferCheck() |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
318 "echomsg "DBG : in HGGetStatusVars" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
319 if hgBufferCheck == -1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
320 return "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
321 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
322 let fileName=bufname(hgBufferCheck) |
2634
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
323 let fileNameWithoutLink=s:HGResolveLink(fileName) |
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
324 let realFileName = fnamemodify(fileNameWithoutLink, ':t') |
2637
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
325 let oldCwd=s:HGChangeToCurrentFileDir(realFileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
326 try |
2634
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
327 let hgCommand = s:HGGetOption("HGCommandHGExec", "hg") . " root " |
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
328 let roottext=system(hgCommand) |
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
329 " Suppress ending null char ! Does it work in window ? |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
330 let roottext=substitute(roottext,'^.*/\([^/\n\r]*\)\n\_.*$','\1','') |
2634
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
331 if match(getcwd()."/".fileNameWithoutLink, roottext) == -1 |
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
332 return "" |
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
333 endif |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
334 let returnExpression = "" |
2637
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
335 if a:repositoryVar != "" |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
336 let returnExpression=returnExpression . " | let " . a:repositoryVar . "='" . roottext . "'" |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
337 endif |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
338 let hgCommand = s:HGGetOption("HGCommandHGExec", "hg") . " status -mardui " . realFileName |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
339 let statustext=system(hgCommand) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
340 if(v:shell_error) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
341 return "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
342 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
343 if match(statustext, '^[?I]') >= 0 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
344 let revision="NEW" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
345 elseif match(statustext, '^[R]') >= 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
346 let revision="REMOVED" |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
347 elseif match(statustext, '^[D]') >= 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
348 let revision="DELETED" |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
349 elseif match(statustext, '^[A]') >= 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
350 let revision="ADDED" |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
351 else |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
352 " The file is tracked, we can try to get is revision number |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
353 let hgCommand = s:HGGetOption("HGCommandHGExec", "hg") . " parents -b " |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
354 let statustext=system(hgCommand) |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
355 if(v:shell_error) |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
356 return "" |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
357 endif |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
358 let revision=substitute(statustext, '^changeset:\s*\(\d\+\):.*\_$\_.*$', '\1', "") |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
359 |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
360 if a:branchVar != "" && match(statustext, '^\_.*\_^branch:') >= 0 |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
361 let branch=substitute(statustext, '^\_.*\_^branch:\s*\(\S\+\)\n\_.*$', '\1', "") |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
362 let returnExpression=returnExpression . " | let " . a:branchVar . "='" . branch . "'" |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
363 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
364 endif |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
365 if (exists('revision')) |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
366 let returnExpression = "let " . a:revisionVar . "='" . revision . "' " . returnExpression |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
367 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
368 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
369 return returnExpression |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
370 finally |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
371 execute 'cd' escape(oldCwd, ' ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
372 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
373 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
374 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
375 " Function: s:HGSetupBuffer() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
376 " Attempts to set the b:HGBranch, b:HGRevision and b:HGRepository variables. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
377 |
2607
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
378 function! s:HGSetupBuffer(...) |
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
379 if (exists("b:HGBufferSetup") && b:HGBufferSetup && !exists('a:1')) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
380 " This buffer is already set up. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
381 return |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
382 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
383 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
384 if !s:HGGetOption("HGCommandEnableBufferSetup", 0) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
385 \ || @% == "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
386 \ || s:HGCommandEditFileRunning > 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
387 \ || exists("b:HGOrigBuffNR") |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
388 unlet! b:HGRevision |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
389 unlet! b:HGBranch |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
390 unlet! b:HGRepository |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
391 return |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
392 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
393 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
394 if !filereadable(expand("%")) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
395 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
396 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
397 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
398 let revision="" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
399 let branch="" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
400 let repository="" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
401 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
402 exec s:HGGetStatusVars('revision', 'branch', 'repository') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
403 "echomsg "DBG ".revision."#".branch."#".repository |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
404 if revision != "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
405 let b:HGRevision=revision |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
406 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
407 unlet! b:HGRevision |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
408 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
409 if branch != "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
410 let b:HGBranch=branch |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
411 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
412 unlet! b:HGBranch |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
413 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
414 if repository != "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
415 let b:HGRepository=repository |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
416 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
417 unlet! b:HGRepository |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
418 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
419 silent do HGCommand User HGBufferSetup |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
420 let b:HGBufferSetup=1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
421 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
422 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
423 " Function: s:HGMarkOrigBufferForSetup(hgbuffer) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
424 " Resets the buffer setup state of the original buffer for a given HG buffer. |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
425 " Returns: The HG buffer number in a passthrough mode. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
426 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
427 function! s:HGMarkOrigBufferForSetup(hgBuffer) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
428 checktime |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
429 if a:hgBuffer != -1 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
430 let origBuffer = s:HGBufferCheck(a:hgBuffer) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
431 "This should never not work, but I'm paranoid |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
432 if origBuffer != a:hgBuffer |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
433 call setbufvar(origBuffer, "HGBufferSetup", 0) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
434 endif |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
435 else |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
436 "We are presumably in the original buffer |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
437 let b:HGBufferSetup = 0 |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
438 "We do the setup now as now event will be triggered allowing it later. |
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
439 call s:HGSetupBuffer() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
440 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
441 return a:hgBuffer |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
442 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
443 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
444 " Function: s:HGOverrideOption(option, [value]) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
445 " Provides a temporary override for the given HG option. If no value is |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
446 " passed, the override is disabled. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
447 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
448 function! s:HGOverrideOption(option, ...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
449 if a:0 == 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
450 unlet! s:{a:option}Override |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
451 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
452 let s:{a:option}Override = a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
453 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
454 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
455 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
456 " Function: s:HGWipeoutCommandBuffers() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
457 " Clears all current HG buffers of the specified type for a given source. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
458 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
459 function! s:HGWipeoutCommandBuffers(originalBuffer, hgCommand) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
460 let buffer = 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
461 while buffer <= bufnr('$') |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
462 if getbufvar(buffer, 'HGOrigBuffNR') == a:originalBuffer |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
463 if getbufvar(buffer, 'HGCommand') == a:hgCommand |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
464 execute 'bw' buffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
465 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
466 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
467 let buffer = buffer + 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
468 endwhile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
469 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
470 |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
471 " Function: s:HGInstallDocumentation(full_name, revision) {{{2 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
472 " Install help documentation. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
473 " Arguments: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
474 " full_name: Full name of this vim plugin script, including path name. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
475 " revision: Revision of the vim script. #version# mark in the document file |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
476 " will be replaced with this string with 'v' prefix. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
477 " Return: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
478 " 1 if new document installed, 0 otherwise. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
479 " Note: Cleaned and generalized by guo-peng Wen |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
480 "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
481 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
482 function! s:HGInstallDocumentation(full_name, revision) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
483 " Name of the document path based on the system we use: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
484 if (has("unix")) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
485 " On UNIX like system, using forward slash: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
486 let l:slash_char = '/' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
487 let l:mkdir_cmd = ':silent !mkdir -p ' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
488 else |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
489 " On M$ system, use backslash. Also mkdir syntax is different. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
490 " This should only work on W2K and up. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
491 let l:slash_char = '\' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
492 let l:mkdir_cmd = ':silent !mkdir ' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
493 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
494 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
495 let l:doc_path = l:slash_char . 'doc' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
496 let l:doc_home = l:slash_char . '.vim' . l:slash_char . 'doc' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
497 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
498 " Figure out document path based on full name of this script: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
499 let l:vim_plugin_path = fnamemodify(a:full_name, ':h') |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
500 let l:vim_doc_path = fnamemodify(a:full_name, ':h:h') . l:doc_path |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
501 if (!(filewritable(l:vim_doc_path) == 2)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
502 echomsg "Doc path: " . l:vim_doc_path |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
503 execute l:mkdir_cmd . '"' . l:vim_doc_path . '"' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
504 if (!(filewritable(l:vim_doc_path) == 2)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
505 " Try a default configuration in user home: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
506 let l:vim_doc_path = expand("~") . l:doc_home |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
507 if (!(filewritable(l:vim_doc_path) == 2)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
508 execute l:mkdir_cmd . '"' . l:vim_doc_path . '"' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
509 if (!(filewritable(l:vim_doc_path) == 2)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
510 " Put a warning: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
511 echomsg "Unable to open documentation directory" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
512 echomsg " type :help add-local-help for more informations." |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
513 return 0 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
514 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
515 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
516 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
517 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
518 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
519 " Exit if we have problem to access the document directory: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
520 if (!isdirectory(l:vim_plugin_path) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
521 \ || !isdirectory(l:vim_doc_path) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
522 \ || filewritable(l:vim_doc_path) != 2) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
523 return 0 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
524 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
525 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
526 " Full name of script and documentation file: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
527 let l:script_name = fnamemodify(a:full_name, ':t') |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
528 let l:doc_name = fnamemodify(a:full_name, ':t:r') . '.txt' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
529 let l:plugin_file = l:vim_plugin_path . l:slash_char . l:script_name |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
530 let l:doc_file = l:vim_doc_path . l:slash_char . l:doc_name |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
531 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
532 " Bail out if document file is still up to date: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
533 if (filereadable(l:doc_file) && |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
534 \ getftime(l:plugin_file) < getftime(l:doc_file)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
535 return 0 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
536 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
537 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
538 " Prepare window position restoring command: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
539 if (strlen(@%)) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
540 let l:go_back = 'b ' . bufnr("%") |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
541 else |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
542 let l:go_back = 'enew!' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
543 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
544 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
545 " Create a new buffer & read in the plugin file (me): |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
546 setl nomodeline |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
547 exe 'enew!' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
548 exe 'r ' . l:plugin_file |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
549 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
550 setl modeline |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
551 let l:buf = bufnr("%") |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
552 setl noswapfile modifiable |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
553 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
554 norm zR |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
555 norm gg |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
556 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
557 " Delete from first line to a line starts with |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
558 " === START_DOC |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
559 1,/^=\{3,}\s\+START_DOC\C/ d |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
560 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
561 " Delete from a line starts with |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
562 " === END_DOC |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
563 " to the end of the documents: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
564 /^=\{3,}\s\+END_DOC\C/,$ d |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
565 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
566 " Remove fold marks: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
567 %s/{\{3}[1-9]/ / |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
568 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
569 " Add modeline for help doc: the modeline string is mangled intentionally |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
570 " to avoid it be recognized by VIM: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
571 call append(line('$'), '') |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
572 call append(line('$'), ' v' . 'im:tw=78:ts=8:ft=help:norl:') |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
573 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
574 " Replace revision: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
575 exe "normal :1s/#version#/ v" . a:revision . "/\<CR>" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
576 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
577 " Save the help document: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
578 exe 'w! ' . l:doc_file |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
579 exe l:go_back |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
580 exe 'bw ' . l:buf |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
581 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
582 " Build help tags: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
583 exe 'helptags ' . l:vim_doc_path |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
584 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
585 return 1 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
586 endfunction |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
587 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
588 " Section: Public functions {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
589 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
590 " Function: HGGetRevision() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
591 " Global function for retrieving the current buffer's HG revision number. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
592 " Returns: Revision number or an empty string if an error occurs. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
593 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
594 function! HGGetRevision() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
595 let revision="" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
596 exec s:HGGetStatusVars('revision', '', '') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
597 return revision |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
598 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
599 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
600 " Function: HGDisableBufferSetup() {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
601 " Global function for deactivating the buffer autovariables. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
602 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
603 function! HGDisableBufferSetup() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
604 let g:HGCommandEnableBufferSetup=0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
605 silent! augroup! HGCommandPlugin |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
606 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
607 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
608 " Function: HGEnableBufferSetup() {{{2 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
609 " Global function for activating the buffer autovariables. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
610 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
611 function! HGEnableBufferSetup() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
612 let g:HGCommandEnableBufferSetup=1 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
613 augroup HGCommandPlugin |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
614 au! |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
615 au BufEnter * call s:HGSetupBuffer() |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
616 au BufWritePost * call s:HGSetupBuffer() |
2607
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
617 " Force resetting up buffer on external file change (HG update) |
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
618 au FileChangedShell * call s:HGSetupBuffer(1) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
619 augroup END |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
620 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
621 " Only auto-load if the plugin is fully loaded. This gives other plugins a |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
622 " chance to run. |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
623 if g:loaded_hgcommand == 2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
624 call s:HGSetupBuffer() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
625 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
626 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
627 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
628 " Function: HGGetStatusLine() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
629 " Default (sample) status line entry for HG files. This is only useful if |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
630 " HG-managed buffer mode is on (see the HGCommandEnableBufferSetup variable |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
631 " for how to do this). |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
632 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
633 function! HGGetStatusLine() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
634 if exists('b:HGSourceFile') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
635 " This is a result buffer |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
636 let value='[' . b:HGCommand . ' ' . b:HGSourceFile |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
637 if exists('b:HGStatusText') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
638 let value=value . ' ' . b:HGStatusText |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
639 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
640 let value = value . ']' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
641 return value |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
642 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
643 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
644 if exists('b:HGRevision') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
645 \ && b:HGRevision != '' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
646 \ && exists('b:HGRepository') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
647 \ && b:HGRepository != '' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
648 \ && exists('g:HGCommandEnableBufferSetup') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
649 \ && g:HGCommandEnableBufferSetup |
2606
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
650 if !exists('b:HGBranch') |
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
651 let l:branch='' |
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
652 else |
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
653 let l:branch=b:HGBranch |
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
654 endif |
5cef1a92aa04
HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2605
diff
changeset
|
655 return '[HG ' . b:HGRepository . '/' . l:branch .'/' . b:HGRevision . ']' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
656 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
657 return '' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
658 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
659 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
660 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
661 " Section: HG command functions {{{1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
662 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
663 " Function: s:HGAdd() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
664 function! s:HGAdd() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
665 return s:HGMarkOrigBufferForSetup(s:HGDoCommand('add', 'hgadd', '')) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
666 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
667 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
668 " Function: s:HGAnnotate(...) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
669 function! s:HGAnnotate(...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
670 if a:0 == 0 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
671 if &filetype == "HGAnnotate" |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
672 " This is a HGAnnotate buffer. Perform annotation of the version |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
673 " indicated by the current line. |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
674 let revision = substitute(getline("."),'\(^[0-9]*\):.*','\1','') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
675 if s:HGGetOption('HGCommandAnnotateParent', 0) != 0 && revision > 0 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
676 let revision = revision - 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
677 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
678 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
679 let revision=HGGetRevision() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
680 if revision == "" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
681 echoerr "Unable to obtain HG version information." |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
682 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
683 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
684 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
685 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
686 let revision=a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
687 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
688 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
689 if revision == "NEW" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
690 echo "No annotatation available for new file." |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
691 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
692 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
693 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
694 let resultBuffer=s:HGDoCommand('annotate -ndu -r ' . revision, 'hgannotate', revision) |
2634
105708ba518f
Test if file is below an HG root before doing anything
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2607
diff
changeset
|
695 "echomsg "DBG: ".resultBuffer |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
696 if resultBuffer != -1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
697 set filetype=HGAnnotate |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
698 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
699 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
700 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
701 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
702 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
703 " Function: s:HGCommit() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
704 function! s:HGCommit(...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
705 " Handle the commit message being specified. If a message is supplied, it |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
706 " is used; if bang is supplied, an empty message is used; otherwise, the |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
707 " user is provided a buffer from which to edit the commit message. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
708 if a:2 != "" || a:1 == "!" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
709 return s:HGMarkOrigBufferForSetup(s:HGDoCommand('commit -m "' . a:2 . '"', 'hgcommit', '')) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
710 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
711 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
712 let hgBufferCheck=s:HGCurrentBufferCheck() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
713 if hgBufferCheck == -1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
714 echo "Original buffer no longer exists, aborting." |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
715 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
716 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
717 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
718 " Protect against windows' backslashes in paths. They confuse exec'd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
719 " commands. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
720 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
721 let shellSlashBak = &shellslash |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
722 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
723 set shellslash |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
724 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
725 let messageFileName = tempname() |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
726 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
727 let fileName=bufname(hgBufferCheck) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
728 let realFilePath=s:HGResolveLink(fileName) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
729 let newCwd=fnamemodify(realFilePath, ':h') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
730 if strlen(newCwd) == 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
731 " Account for autochdir being in effect, which will make this blank, but |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
732 " we know we'll be in the current directory for the original file. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
733 let newCwd = getcwd() |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
734 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
735 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
736 let realFileName=fnamemodify(realFilePath, ':t') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
737 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
738 if s:HGEditFile(messageFileName, hgBufferCheck) == -1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
739 return |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
740 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
741 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
742 " Protect against case and backslash issues in Windows. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
743 let autoPattern = '\c' . messageFileName |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
744 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
745 " Ensure existance of group |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
746 augroup HGCommit |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
747 augroup END |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
748 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
749 execute 'au HGCommit BufDelete' autoPattern 'call delete("' . messageFileName . '")' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
750 execute 'au HGCommit BufDelete' autoPattern 'au! HGCommit * ' autoPattern |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
751 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
752 " Create a commit mapping. The mapping must clear all autocommands in case |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
753 " it is invoked when HGCommandCommitOnWrite is active, as well as to not |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
754 " invoke the buffer deletion autocommand. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
755 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
756 execute 'nnoremap <silent> <buffer> <Plug>HGCommit '. |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
757 \ ':au! HGCommit * ' . autoPattern . '<CR>'. |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
758 \ ':g/^HG:/d<CR>'. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
759 \ ':update<CR>'. |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
760 \ ':call <SID>HGFinishCommit("' . messageFileName . '",' . |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
761 \ '"' . newCwd . '",' . |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
762 \ '"' . realFileName . '",' . |
2636
733fff9b23f7
Do not try to get revision and branch information for file which are not tracked
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2635
diff
changeset
|
763 \ hgBufferCheck . ')<CR>' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
764 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
765 silent 0put ='HG: ----------------------------------------------------------------------' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
766 silent put =\"HG: Enter Log. Lines beginning with `HG:' are removed automatically\" |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
767 silent put ='HG: Type <leader>cc (or your own <Plug>HGCommit mapping)' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
768 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
769 if s:HGGetOption('HGCommandCommitOnWrite', 1) == 1 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
770 execute 'au HGCommit BufWritePre' autoPattern 'g/^HG:/d' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
771 execute 'au HGCommit BufWritePost' autoPattern 'call s:HGFinishCommit("' . messageFileName . '", "' . newCwd . '", "' . realFileName . '", ' . hgBufferCheck . ') | au! * ' autoPattern |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
772 silent put ='HG: or write this buffer' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
773 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
774 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
775 silent put ='HG: to finish this commit operation' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
776 silent put ='HG: ----------------------------------------------------------------------' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
777 $ |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
778 let b:HGSourceFile=fileName |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
779 let b:HGCommand='HGCommit' |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
780 set filetype=hg |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
781 finally |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
782 let &shellslash = shellSlashBak |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
783 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
784 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
785 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
786 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
787 " Function: s:HGDiff(...) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
788 function! s:HGDiff(...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
789 if a:0 == 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
790 let revOptions = '-r' . a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
791 let caption = a:1 . ' -> current' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
792 elseif a:0 == 2 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
793 let revOptions = '-r' . a:1 . ' -r' . a:2 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
794 let caption = a:1 . ' -> ' . a:2 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
795 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
796 let revOptions = '' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
797 let caption = '' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
798 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
799 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
800 let hgdiffopt=s:HGGetOption('HGCommandDiffOpt', 'w') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
801 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
802 if hgdiffopt == "" |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
803 let diffoptionstring="" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
804 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
805 let diffoptionstring=" -" . hgdiffopt . " " |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
806 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
807 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
808 let resultBuffer = s:HGDoCommand('diff ' . diffoptionstring . revOptions , 'hgdiff', caption) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
809 if resultBuffer != -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
810 set filetype=diff |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
811 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
812 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
813 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
814 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
815 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
816 " Function: s:HGGotoOriginal(["!]) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
817 function! s:HGGotoOriginal(...) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
818 let origBuffNR = s:HGCurrentBufferCheck() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
819 if origBuffNR > 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
820 let origWinNR = bufwinnr(origBuffNR) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
821 if origWinNR == -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
822 execute 'buffer' origBuffNR |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
823 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
824 execute origWinNR . 'wincmd w' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
825 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
826 if a:0 == 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
827 if a:1 == "!" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
828 let buffnr = 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
829 let buffmaxnr = bufnr("$") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
830 while buffnr <= buffmaxnr |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
831 if getbufvar(buffnr, "HGOrigBuffNR") == origBuffNR |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
832 execute "bw" buffnr |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
833 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
834 let buffnr = buffnr + 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
835 endwhile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
836 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
837 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
838 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
839 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
840 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
841 " Function: s:HGFinishCommit(messageFile, targetDir, targetFile) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
842 function! s:HGFinishCommit(messageFile, targetDir, targetFile, origBuffNR) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
843 if filereadable(a:messageFile) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
844 let oldCwd=getcwd() |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
845 if strlen(a:targetDir) > 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
846 execute 'cd' escape(a:targetDir, ' ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
847 endif |
2632
b1436559f1e9
fix logfile option for HGFinishCommit
Christian Ebert <blacktrash@gmx.net>
parents:
2607
diff
changeset
|
848 let resultBuffer=s:HGCreateCommandBuffer('commit -l "' . a:messageFile . '" "'. a:targetFile . '"', 'hgcommit', '', a:origBuffNR) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
849 execute 'cd' escape(oldCwd, ' ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
850 execute 'bw' escape(a:messageFile, ' *?\') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
851 silent execute 'call delete("' . a:messageFile . '")' |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
852 return s:HGMarkOrigBufferForSetup(resultBuffer) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
853 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
854 echoerr "Can't read message file; no commit is possible." |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
855 return -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
856 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
857 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
858 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
859 " Function: s:HGLog() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
860 function! s:HGLog(...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
861 if a:0 == 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
862 let versionOption = "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
863 let caption = '' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
864 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
865 let versionOption=" -r" . a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
866 let caption = a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
867 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
868 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
869 let resultBuffer=s:HGDoCommand('log' . versionOption, 'hglog', caption) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
870 if resultBuffer != "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
871 set filetype=rcslog |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
872 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
873 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
874 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
875 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
876 " Function: s:HGRevert() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
877 function! s:HGRevert() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
878 return s:HGMarkOrigBufferForSetup(s:HGDoCommand('revert', 'hgrevert', '')) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
879 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
880 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
881 " Function: s:HGReview(...) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
882 function! s:HGReview(...) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
883 if a:0 == 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
884 let versiontag="" |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
885 if s:HGGetOption('HGCommandInteractive', 0) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
886 let versiontag=input('Revision: ') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
887 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
888 if versiontag == "" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
889 let versiontag="(current)" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
890 let versionOption="" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
891 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
892 let versionOption=" -r " . versiontag . " " |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
893 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
894 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
895 let versiontag=a:1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
896 let versionOption=" -r " . versiontag . " " |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
897 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
898 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
899 let resultBuffer = s:HGDoCommand('cat' . versionOption, 'hgreview', versiontag) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
900 if resultBuffer > 0 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
901 let &filetype=getbufvar(b:HGOrigBuffNR, '&filetype') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
902 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
903 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
904 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
905 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
906 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
907 " Function: s:HGStatus() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
908 function! s:HGStatus() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
909 return s:HGDoCommand('status', 'hgstatus', '') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
910 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
911 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
912 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
913 " Function: s:HGUpdate() {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
914 function! s:HGUpdate() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
915 return s:HGMarkOrigBufferForSetup(s:HGDoCommand('update', 'update', '')) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
916 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
917 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
918 " Function: s:HGVimDiff(...) {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
919 function! s:HGVimDiff(...) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
920 let originalBuffer = s:HGCurrentBufferCheck() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
921 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning + 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
922 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
923 " If there's already a VimDiff'ed window, restore it. |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
924 " There may only be one HGVimDiff original window at a time. |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
925 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
926 if exists("s:vimDiffSourceBuffer") && s:vimDiffSourceBuffer != originalBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
927 " Clear the existing vimdiff setup by removing the result buffers. |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
928 call s:HGWipeoutCommandBuffers(s:vimDiffSourceBuffer, 'vimdiff') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
929 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
930 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
931 " Split and diff |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
932 if(a:0 == 2) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
933 " Reset the vimdiff system, as 2 explicit versions were provided. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
934 if exists('s:vimDiffSourceBuffer') |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
935 call s:HGWipeoutCommandBuffers(s:vimDiffSourceBuffer, 'vimdiff') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
936 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
937 let resultBuffer = s:HGReview(a:1) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
938 if resultBuffer < 0 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
939 echomsg "Can't open HG revision " . a:1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
940 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
941 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
942 let b:HGCommand = 'vimdiff' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
943 diffthis |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
944 let s:vimDiffBufferCount = 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
945 let s:vimDiffScratchList = '{'. resultBuffer . '}' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
946 " If no split method is defined, cheat, and set it to vertical. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
947 try |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
948 call s:HGOverrideOption('HGCommandSplit', s:HGGetOption('HGCommandDiffSplit', s:HGGetOption('HGCommandSplit', 'vertical'))) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
949 let resultBuffer=s:HGReview(a:2) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
950 finally |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
951 call s:HGOverrideOption('HGCommandSplit') |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
952 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
953 if resultBuffer < 0 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
954 echomsg "Can't open HG revision " . a:1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
955 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
956 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
957 let b:HGCommand = 'vimdiff' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
958 diffthis |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
959 let s:vimDiffBufferCount = 2 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
960 let s:vimDiffScratchList = s:vimDiffScratchList . '{'. resultBuffer . '}' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
961 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
962 " Add new buffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
963 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
964 " Force splitting behavior, otherwise why use vimdiff? |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
965 call s:HGOverrideOption("HGCommandEdit", "split") |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
966 call s:HGOverrideOption("HGCommandSplit", s:HGGetOption('HGCommandDiffSplit', s:HGGetOption('HGCommandSplit', 'vertical'))) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
967 if(a:0 == 0) |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
968 let resultBuffer=s:HGReview() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
969 else |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
970 let resultBuffer=s:HGReview(a:1) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
971 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
972 finally |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
973 call s:HGOverrideOption("HGCommandEdit") |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
974 call s:HGOverrideOption("HGCommandSplit") |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
975 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
976 if resultBuffer < 0 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
977 echomsg "Can't open current HG revision" |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
978 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
979 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
980 let b:HGCommand = 'vimdiff' |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
981 diffthis |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
982 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
983 if !exists('s:vimDiffBufferCount') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
984 " New instance of vimdiff. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
985 let s:vimDiffBufferCount = 2 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
986 let s:vimDiffScratchList = '{' . resultBuffer . '}' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
987 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
988 " This could have been invoked on a HG result buffer, not the |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
989 " original buffer. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
990 wincmd W |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
991 execute 'buffer' originalBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
992 " Store info for later original buffer restore |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
993 let s:vimDiffRestoreCmd = |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
994 \ "call setbufvar(".originalBuffer.", \"&diff\", ".getbufvar(originalBuffer, '&diff').")" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
995 \ . "|call setbufvar(".originalBuffer.", \"&foldcolumn\", ".getbufvar(originalBuffer, '&foldcolumn').")" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
996 \ . "|call setbufvar(".originalBuffer.", \"&foldenable\", ".getbufvar(originalBuffer, '&foldenable').")" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
997 \ . "|call setbufvar(".originalBuffer.", \"&foldmethod\", '".getbufvar(originalBuffer, '&foldmethod')."')" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
998 \ . "|call setbufvar(".originalBuffer.", \"&scrollbind\", ".getbufvar(originalBuffer, '&scrollbind').")" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
999 \ . "|call setbufvar(".originalBuffer.", \"&wrap\", ".getbufvar(originalBuffer, '&wrap').")" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1000 \ . "|if &foldmethod=='manual'|execute 'normal zE'|endif" |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1001 diffthis |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1002 wincmd w |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1003 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1004 " Adding a window to an existing vimdiff |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1005 let s:vimDiffBufferCount = s:vimDiffBufferCount + 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1006 let s:vimDiffScratchList = s:vimDiffScratchList . '{' . resultBuffer . '}' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1007 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1008 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1009 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1010 let s:vimDiffSourceBuffer = originalBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1011 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1012 " Avoid executing the modeline in the current buffer after the autocommand. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1013 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1014 let currentBuffer = bufnr('%') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1015 let saveModeline = getbufvar(currentBuffer, '&modeline') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1016 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1017 call setbufvar(currentBuffer, '&modeline', 0) |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1018 silent do HGCommand User HGVimDiffFinish |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1019 finally |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1020 call setbufvar(currentBuffer, '&modeline', saveModeline) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1021 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1022 return resultBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1023 finally |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1024 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning - 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1025 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1026 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1027 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1028 " Section: Command definitions {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1029 " Section: Primary commands {{{2 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1030 com! HGAdd call s:HGAdd() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1031 com! -nargs=? HGAnnotate call s:HGAnnotate(<f-args>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1032 com! -bang -nargs=? HGCommit call s:HGCommit(<q-bang>, <q-args>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1033 com! -nargs=* HGDiff call s:HGDiff(<f-args>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1034 com! -bang HGGotoOriginal call s:HGGotoOriginal(<q-bang>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1035 com! -nargs=? HGLog call s:HGLog(<f-args>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1036 com! HGRevert call s:HGRevert() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1037 com! -nargs=? HGReview call s:HGReview(<f-args>) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1038 com! HGStatus call s:HGStatus() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1039 com! HGUpdate call s:HGUpdate() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1040 com! -nargs=* HGVimDiff call s:HGVimDiff(<f-args>) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1041 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1042 " Section: HG buffer management commands {{{2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1043 com! HGDisableBufferSetup call HGDisableBufferSetup() |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1044 com! HGEnableBufferSetup call HGEnableBufferSetup() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1045 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1046 " Allow reloading hgcommand.vim |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1047 com! HGReload unlet! loaded_hgcommand | runtime plugin/hgcommand.vim |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1048 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1049 " Section: Plugin command mappings {{{1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1050 nnoremap <silent> <Plug>HGAdd :HGAdd<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1051 nnoremap <silent> <Plug>HGAnnotate :HGAnnotate<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1052 nnoremap <silent> <Plug>HGCommit :HGCommit<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1053 nnoremap <silent> <Plug>HGDiff :HGDiff<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1054 nnoremap <silent> <Plug>HGGotoOriginal :HGGotoOriginal<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1055 nnoremap <silent> <Plug>HGClearAndGotoOriginal :HGGotoOriginal!<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1056 nnoremap <silent> <Plug>HGLog :HGLog<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1057 nnoremap <silent> <Plug>HGRevert :HGRevert<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1058 nnoremap <silent> <Plug>HGReview :HGReview<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1059 nnoremap <silent> <Plug>HGStatus :HGStatus<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1060 nnoremap <silent> <Plug>HGUpdate :HGUpdate<CR> |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1061 nnoremap <silent> <Plug>HGVimDiff :HGVimDiff<CR> |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1062 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1063 " Section: Default mappings {{{1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1064 if !hasmapto('<Plug>HGAdd') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1065 nmap <unique> <Leader>hga <Plug>HGAdd |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1066 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1067 if !hasmapto('<Plug>HGAnnotate') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1068 nmap <unique> <Leader>hgn <Plug>HGAnnotate |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1069 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1070 if !hasmapto('<Plug>HGClearAndGotoOriginal') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1071 nmap <unique> <Leader>hgG <Plug>HGClearAndGotoOriginal |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1072 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1073 if !hasmapto('<Plug>HGCommit') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1074 nmap <unique> <Leader>hgc <Plug>HGCommit |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1075 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1076 if !hasmapto('<Plug>HGDiff') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1077 nmap <unique> <Leader>hgd <Plug>HGDiff |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1078 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1079 if !hasmapto('<Plug>HGGotoOriginal') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1080 nmap <unique> <Leader>hgg <Plug>HGGotoOriginal |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1081 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1082 if !hasmapto('<Plug>HGLog') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1083 nmap <unique> <Leader>hgl <Plug>HGLog |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1084 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1085 if !hasmapto('<Plug>HGRevert') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1086 nmap <unique> <Leader>hgq <Plug>HGRevert |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1087 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1088 if !hasmapto('<Plug>HGReview') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1089 nmap <unique> <Leader>hgr <Plug>HGReview |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1090 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1091 if !hasmapto('<Plug>HGStatus') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1092 nmap <unique> <Leader>hgs <Plug>HGStatus |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1093 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1094 if !hasmapto('<Plug>HGUpdate') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1095 nmap <unique> <Leader>hgu <Plug>HGUpdate |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1096 endif |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1097 if !hasmapto('<Plug>HGVimDiff') |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1098 nmap <unique> <Leader>hgv <Plug>HGVimDiff |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1099 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1100 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1101 " Section: Menu items {{{1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1102 silent! aunmenu Plugin.HG |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1103 amenu <silent> &Plugin.HG.&Add <Plug>HGAdd |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1104 amenu <silent> &Plugin.HG.A&nnotate <Plug>HGAnnotate |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1105 amenu <silent> &Plugin.HG.&Commit <Plug>HGCommit |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1106 amenu <silent> &Plugin.HG.&Diff <Plug>HGDiff |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1107 amenu <silent> &Plugin.HG.&Log <Plug>HGLog |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1108 amenu <silent> &Plugin.HG.Revert <Plug>HGRevert |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1109 amenu <silent> &Plugin.HG.&Review <Plug>HGReview |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1110 amenu <silent> &Plugin.HG.&Status <Plug>HGStatus |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1111 amenu <silent> &Plugin.HG.&Update <Plug>HGUpdate |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1112 amenu <silent> &Plugin.HG.&VimDiff <Plug>HGVimDiff |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1113 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1114 " Section: Autocommands to restore vimdiff state {{{1 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1115 function! s:HGVimDiffRestore(vimDiffBuff) |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1116 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning + 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1117 try |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1118 if exists("s:vimDiffSourceBuffer") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1119 if a:vimDiffBuff == s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1120 " Original file is being removed. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1121 unlet! s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1122 unlet! s:vimDiffBufferCount |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1123 unlet! s:vimDiffRestoreCmd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1124 unlet! s:vimDiffScratchList |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1125 elseif match(s:vimDiffScratchList, '{' . a:vimDiffBuff . '}') >= 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1126 let s:vimDiffScratchList = substitute(s:vimDiffScratchList, '{' . a:vimDiffBuff . '}', '', '') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1127 let s:vimDiffBufferCount = s:vimDiffBufferCount - 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1128 if s:vimDiffBufferCount == 1 && exists('s:vimDiffRestoreCmd') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1129 " All scratch buffers are gone, reset the original. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1130 " Only restore if the source buffer is still in Diff mode |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1131 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1132 let sourceWinNR=bufwinnr(s:vimDiffSourceBuffer) |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1133 if sourceWinNR != -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1134 " The buffer is visible in at least one window |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1135 let currentWinNR = winnr() |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1136 while winbufnr(sourceWinNR) != -1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1137 if winbufnr(sourceWinNR) == s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1138 execute sourceWinNR . 'wincmd w' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1139 if getwinvar('', "&diff") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1140 execute s:vimDiffRestoreCmd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1141 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1142 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1143 let sourceWinNR = sourceWinNR + 1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1144 endwhile |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1145 execute currentWinNR . 'wincmd w' |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1146 else |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1147 " The buffer is hidden. It must be visible in order to set the |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1148 " diff option. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1149 let currentBufNR = bufnr('') |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1150 execute "hide buffer" s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1151 if getwinvar('', "&diff") |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1152 execute s:vimDiffRestoreCmd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1153 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1154 execute "hide buffer" currentBufNR |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1155 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1156 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1157 unlet s:vimDiffRestoreCmd |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1158 unlet s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1159 unlet s:vimDiffBufferCount |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1160 unlet s:vimDiffScratchList |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1161 elseif s:vimDiffBufferCount == 0 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1162 " All buffers are gone. |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1163 unlet s:vimDiffSourceBuffer |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1164 unlet s:vimDiffBufferCount |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1165 unlet s:vimDiffScratchList |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1166 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1167 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1168 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1169 finally |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1170 let s:HGCommandEditFileRunning = s:HGCommandEditFileRunning - 1 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1171 endtry |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1172 endfunction |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1173 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1174 augroup HGVimDiffRestore |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1175 au! |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1176 au BufUnload * call s:HGVimDiffRestore(expand("<abuf>")) |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1177 augroup END |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1178 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1179 " Section: Optional activation of buffer management {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1180 |
2607
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
1181 if s:HGGetOption('HGCommandEnableBufferSetup', 1) |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1182 call HGEnableBufferSetup() |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1183 endif |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1184 |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1185 " Section: Doc installation {{{1 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1186 " |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1187 let s:revision="0.1" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1188 silent! let s:install_status = |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1189 \ s:HGInstallDocumentation(expand('<sfile>:p'), s:revision) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1190 if (s:install_status == 1) |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1191 echom expand("<sfile>:t:r") . ' v' . s:revision . |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1192 \ ': Help-documentation installed.' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1193 endif |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1194 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1195 |
2591
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1196 " Section: Plugin completion {{{1 |
61f2008cd6bf
Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
1197 |
2592
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1198 let loaded_hgcommand=2 |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1199 silent do HGCommand User HGPluginFinish |
457846f400e8
Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2591
diff
changeset
|
1200 " vim:se expandtab sts=2 sw=2: |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1201 finish |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1202 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1203 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1204 " Section: Documentation content {{{1 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1205 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1206 === START_DOC |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1207 *hgcommand.txt* Mercurial vim integration #version# |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1208 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1209 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1210 HGCOMMAND REFERENCE MANUAL~ |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1211 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1212 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1213 Author: Mathieu Clabaut <mathieu.clabaut@gmail.com> |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1214 Credits: Bob Hiestand <bob.hiestand@gmail.com> |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1215 Mercurial: http://www.selenic.com/mercurial |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1216 Mercurial (noted Hg) is a fast, lightweight Source Control Management |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1217 system designed for efficient handling of very large distributed projects. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1218 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1219 ============================================================================== |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1220 1. Contents *hgcommand-contents* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1221 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1222 Installation : |hgcommand-install| |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1223 HGCommand Intro : |hgcommand| |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1224 HGCommand Manual : |hgcommand-manual| |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1225 Customization : |hgcommand-customize| |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1226 Bugs : |hgcommand-bugs| |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1227 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1228 ============================================================================== |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1229 2. HGCommand Installation *hgcommand-install* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1230 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1231 In order to install the plugin, place the hgcommand.vim file into a plugin' |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1232 directory in your runtime path (please see |add-global-plugin| and |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1233 |'runtimepath'|. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1234 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1235 HGCommand may be customized by setting variables, creating maps, and |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1236 specifying event handlers. Please see |hgcommand-customize| for more |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1237 details. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1238 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1239 *hgcommand-auto-help* |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1240 The help file is automagically generated when the |hgcommand| script is |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1241 loaded for the first time. |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1242 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1243 ============================================================================== |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1244 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1245 3. HGCommand Intro *hgcommand* |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1246 *hgcommand-intro* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1247 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1248 The HGCommand plugin provides global ex commands for manipulating |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1249 HG-controlled source files. In general, each command operates on the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1250 current buffer and accomplishes a separate hg function, such as update, |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1251 commit, log, and others (please see |hgcommand-commands| for a list of all |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1252 available commands). The results of each operation are displayed in a |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1253 scratch buffer. Several buffer variables are defined for those scratch |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1254 buffers (please see |hgcommand-buffer-variables|). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1255 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1256 The notion of "current file" means either the current buffer, or, in the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1257 case of a directory buffer, the file on the current line within the buffer. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1258 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1259 For convenience, any HGCommand invoked on a HGCommand scratch buffer acts |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1260 as though it was invoked on the original file and splits the screen so that |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1261 the output appears in a new window. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1262 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1263 Many of the commands accept revisions as arguments. By default, most |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1264 operate on the most recent revision on the current branch if no revision is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1265 specified (though see |HGCommandInteractive| to prompt instead). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1266 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1267 Each HGCommand is mapped to a key sequence starting with the <Leader> |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1268 keystroke. The default mappings may be overridden by supplying different |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1269 mappings before the plugin is loaded, such as in the vimrc, in the standard |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1270 fashion for plugin mappings. For examples, please see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1271 |hgcommand-mappings-override|. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1272 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1273 The HGCommand plugin may be configured in several ways. For more details, |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1274 please see |hgcommand-customize|. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1275 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1276 ============================================================================== |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1277 4. HGCommand Manual *hgcommand-manual* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1278 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1279 4.1 HGCommand commands *hgcommand-commands* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1280 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1281 HGCommand defines the following commands: |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1282 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1283 |:HGAdd| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1284 |:HGAnnotate| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1285 |:HGCommit| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1286 |:HGDiff| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1287 |:HGGotoOriginal| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1288 |:HGLog| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1289 |:HGRevert| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1290 |:HGReview| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1291 |:HGStatus| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1292 |:HGUpdate| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1293 |:HGVimDiff| |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1294 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1295 :HGAdd *:HGAdd* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1296 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1297 This command performs "hg add" on the current file. Please note, this does |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1298 not commit the newly-added file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1299 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1300 :HGAnnotate *:HGAnnotate* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1301 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1302 This command performs "hg annotate" on the current file. If an argument is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1303 given, the argument is used as a revision number to display. If not given |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1304 an argument, it uses the most recent version of the file on the current |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1305 branch. Additionally, if the current buffer is a HGAnnotate buffer |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1306 already, the version number on the current line is used. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1307 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1308 If the |HGCommandAnnotateParent| variable is set to a non-zero value, the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1309 version previous to the one on the current line is used instead. This |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1310 allows one to navigate back to examine the previous version of a line. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1311 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1312 The filetype of the HGCommand scratch buffer is set to 'HGAnnotate', to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1313 take advantage of the bundled syntax file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1314 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1315 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1316 :HGCommit[!] *:HGCommit* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1317 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1318 If called with arguments, this performs "hg commit" using the arguments as |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1319 the log message. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1320 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1321 If '!' is used with no arguments, an empty log message is committed. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1322 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1323 If called with no arguments, this is a two-step command. The first step |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1324 opens a buffer to accept a log message. When that buffer is written, it is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1325 automatically closed and the file is committed using the information from |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1326 that log message. The commit can be abandoned if the log message buffer is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1327 deleted or wiped before being written. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1328 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1329 Alternatively, the mapping that is used to invoke :HGCommit (by default |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1330 <Leader>hgc) can be used in the log message buffer to immediately commit. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1331 This is useful if the |HGCommandCommitOnWrite| variable is set to 0 to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1332 disable the normal commit-on-write behavior. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1333 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1334 :HGDiff *:HGDiff* |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1335 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1336 With no arguments, this performs "hg diff" on the current file against the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1337 current repository version. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1338 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1339 With one argument, "hg diff" is performed on the current file against the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1340 specified revision. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1341 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1342 With two arguments, hg diff is performed between the specified revisions of |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1343 the current file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1344 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1345 This command uses the 'HGCommandDiffOpt' variable to specify diff options. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1346 If that variable does not exist, then 'wbBc' is assumed. If you wish to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1347 have no options, then set it to the empty string. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1348 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1349 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1350 :HGGotoOriginal *:HGGotoOriginal* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1351 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1352 This command returns the current window to the source buffer, if the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1353 current buffer is a HG command output buffer. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1354 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1355 :HGGotoOriginal! |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1356 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1357 Like ":HGGotoOriginal" but also executes :bufwipeout on all HG command |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1358 output buffers for the source buffer. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1359 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1360 :HGLog *:HGLog* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1361 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1362 Performs "hg log" on the current file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1363 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1364 If an argument is given, it is passed as an argument to the "-r" option of |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1365 "hg log". |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1366 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1367 :HGRevert *:HGRevert* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1368 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1369 Replaces the current file with the most recent version from the repository |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1370 in order to wipe out any undesired changes. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1371 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1372 :HGReview *:HGReview* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1373 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1374 Retrieves a particular version of the current file. If no argument is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1375 given, the most recent version of the file on the current branch is |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1376 retrieved. Otherwise, the specified version is retrieved. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1377 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1378 :HGStatus *:HGStatus* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1379 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1380 Performs "hg status" on the current file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1381 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1382 :HGUpdate *:HGUpdate* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1383 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1384 Performs "hg update" on the current file. This intentionally does not |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1385 automatically reload the current buffer, though vim should prompt the user |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1386 to do so if the underlying file is altered by this command. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1387 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1388 :HGVimDiff *:HGVimDiff* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1389 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1390 With no arguments, this prompts the user for a revision and then uses |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1391 vimdiff to display the differences between the current file and the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1392 specified revision. If no revision is specified, the most recent version |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1393 of the file on the current branch is used. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1394 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1395 With one argument, that argument is used as the revision as above. With |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1396 two arguments, the differences between the two revisions is displayed using |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1397 vimdiff. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1398 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1399 With either zero or one argument, the original buffer is used to perform |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1400 the vimdiff. When the other buffer is closed, the original buffer will be |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1401 returned to normal mode. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1402 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1403 Once vimdiff mode is started using the above methods, additional vimdiff |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1404 buffers may be added by passing a single version argument to the command. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1405 There may be up to 4 vimdiff buffers total. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1406 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1407 Using the 2-argument form of the command resets the vimdiff to only those 2 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1408 versions. Additionally, invoking the command on a different file will |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1409 close the previous vimdiff buffers. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1410 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1411 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1412 4.2 Mappings *hgcommand-mappings* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1413 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1414 By default, a mapping is defined for each command. These mappings execute |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1415 the default (no-argument) form of each command. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1416 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1417 <Leader>hga HGAdd |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1418 <Leader>hgn HGAnnotate |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1419 <Leader>hgc HGCommit |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1420 <Leader>hgd HGDiff |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1421 <Leader>hgg HGGotoOriginal |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1422 <Leader>hgG HGGotoOriginal! |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1423 <Leader>hgl HGLog |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1424 <Leader>hgr HGReview |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1425 <Leader>hgs HGStatus |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1426 <Leader>hgu HGUpdate |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1427 <Leader>hgv HGVimDiff |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1428 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1429 *hgcommand-mappings-override* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1430 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1431 The default mappings can be overriden by user-provided instead by mapping |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1432 to <Plug>CommandName. This is especially useful when these mappings |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1433 collide with other existing mappings (vim will warn of this during plugin |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1434 initialization, but will not clobber the existing mappings). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1435 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1436 For instance, to override the default mapping for :HGAdd to set it to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1437 '\add', add the following to the vimrc: > |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1438 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1439 nmap \add <Plug>HGAdd |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1440 < |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1441 4.3 Automatic buffer variables *hgcommand-buffer-variables* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1442 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1443 Several buffer variables are defined in each HGCommand result buffer. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1444 These may be useful for additional customization in callbacks defined in |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1445 the event handlers (please see |hgcommand-events|). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1446 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1447 The following variables are automatically defined: |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1448 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1449 b:hgOrigBuffNR *b:hgOrigBuffNR* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1450 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1451 This variable is set to the buffer number of the source file. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1452 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1453 b:hgcmd *b:hgcmd* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1454 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1455 This variable is set to the name of the hg command that created the result |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1456 buffer. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1457 ============================================================================== |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1458 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1459 5. Configuration and customization *hgcommand-customize* |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1460 *hgcommand-config* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1461 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1462 The HGCommand plugin can be configured in two ways: by setting |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1463 configuration variables (see |hgcommand-options|) or by defining HGCommand |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1464 event handlers (see |hgcommand-events|). Additionally, the HGCommand |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1465 plugin provides several option for naming the HG result buffers (see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1466 |hgcommand-naming|) and supported a customized status line (see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1467 |hgcommand-statusline| and |hgcommand-buffer-management|). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1468 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1469 5.1 HGCommand configuration variables *hgcommand-options* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1470 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1471 Several variables affect the plugin's behavior. These variables are |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1472 checked at time of execution, and may be defined at the window, buffer, or |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1473 global level and are checked in that order of precedence. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1474 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1475 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1476 The following variables are available: |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1477 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1478 |HGCommandAnnotateParent| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1479 |HGCommandCommitOnWrite| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1480 |HGCommandHGExec| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1481 |HGCommandDeleteOnHide| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1482 |HGCommandDiffOpt| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1483 |HGCommandDiffSplit| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1484 |HGCommandEdit| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1485 |HGCommandEnableBufferSetup| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1486 |HGCommandInteractive| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1487 |HGCommandNameMarker| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1488 |HGCommandNameResultBuffers| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1489 |HGCommandSplit| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1490 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1491 HGCommandAnnotateParent *HGCommandAnnotateParent* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1492 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1493 This variable, if set to a non-zero value, causes the zero-argument form of |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1494 HGAnnotate when invoked on a HGAnnotate buffer to go to the version |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1495 previous to that displayed on the current line. If not set, it defaults to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1496 0. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1497 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1498 HGCommandCommitOnWrite *HGCommandCommitOnWrite* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1499 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1500 This variable, if set to a non-zero value, causes the pending hg commit to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1501 take place immediately as soon as the log message buffer is written. If |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1502 set to zero, only the HGCommit mapping will cause the pending commit to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1503 occur. If not set, it defaults to 1. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1504 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1505 HGCommandHGExec *HGCommandHGExec* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1506 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1507 This variable controls the executable used for all HG commands. If not |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1508 set, it defaults to "hg". |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1509 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1510 HGCommandDeleteOnHide *HGCommandDeleteOnHide* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1511 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1512 This variable, if set to a non-zero value, causes the temporary HG result |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1513 buffers to automatically delete themselves when hidden. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1514 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1515 HGCommandDiffOpt *HGCommandDiffOpt* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1516 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1517 This variable, if set, determines the options passed to the diff command of |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1518 HG. If not set, it defaults to 'w'. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1519 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1520 HGCommandDiffSplit *HGCommandDiffSplit* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1521 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1522 This variable overrides the |HGCommandSplit| variable, but only for buffers |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1523 created with |:HGVimDiff|. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1524 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1525 HGCommandEdit *HGCommandEdit* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1526 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1527 This variable controls whether the original buffer is replaced ('edit') or |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1528 split ('split'). If not set, it defaults to 'edit'. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1529 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1530 HGCommandEnableBufferSetup *HGCommandEnableBufferSetup* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1531 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1532 This variable, if set to a non-zero value, activates HG buffer management |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1533 mode see (|hgcommand-buffer-management|). This mode means that three |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1534 buffer variables, 'HGRepository', 'HGRevision' and 'HGBranch', are set if |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1535 the file is HG-controlled. This is useful for displaying version |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1536 information in the status bar. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1537 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1538 HGCommandInteractive *HGCommandInteractive* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1539 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1540 This variable, if set to a non-zero value, causes appropriate commands (for |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1541 the moment, only |:HGReview|) to query the user for a revision to use |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1542 instead of the current revision if none is specified. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1543 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1544 HGCommandNameMarker *HGCommandNameMarker* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1545 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1546 This variable, if set, configures the special attention-getting characters |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1547 that appear on either side of the hg buffer type in the buffer name. This |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1548 has no effect unless |HGCommandNameResultBuffers| is set to a true value. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1549 If not set, it defaults to '_'. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1550 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1551 HGCommandNameResultBuffers *HGCommandNameResultBuffers* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1552 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1553 This variable, if set to a true value, causes the hg result buffers to be |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1554 named in the old way ('<source file name> _<hg command>_'). If not set or |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1555 set to a false value, the result buffer is nameless. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1556 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1557 HGCommandSplit *HGCommandSplit* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1558 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1559 This variable controls the orientation of the various window splits that |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1560 may occur (such as with HGVimDiff, when using a HG command on a HG command |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1561 buffer, or when the |HGCommandEdit| variable is set to 'split'. If set to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1562 'horizontal', the resulting windows will be on stacked on top of one |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1563 another. If set to 'vertical', the resulting windows will be side-by-side. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1564 If not set, it defaults to 'horizontal' for all but HGVimDiff windows. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1565 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1566 5.2 HGCommand events *hgcommand-events* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1567 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1568 For additional customization, HGCommand can trigger user-defined events. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1569 Event handlers are provided by defining User event autocommands (see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1570 |autocommand|, |User|) in the HGCommand group with patterns matching the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1571 event name. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1572 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1573 For instance, the following could be added to the vimrc to provide a 'q' |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1574 mapping to quit a HGCommand scratch buffer: > |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1575 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1576 augroup HGCommand |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1577 au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q: |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1578 bwipeout<cr> |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1579 augroup END |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1580 < |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1581 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1582 The following hooks are available: |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1583 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1584 HGBufferCreated This event is fired just after a hg command result |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1585 buffer is created and filled with the result of a hg |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1586 command. It is executed within the context of the HG |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1587 command buffer. The HGCommand buffer variables may be |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1588 useful for handlers of this event (please see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1589 |hgcommand-buffer-variables|). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1590 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1591 HGBufferSetup This event is fired just after HG buffer setup occurs, |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1592 if enabled. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1593 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1594 HGPluginInit This event is fired when the HGCommand plugin first |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1595 loads. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1596 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1597 HGPluginFinish This event is fired just after the HGCommand plugin |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1598 loads. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1599 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1600 HGVimDiffFinish This event is fired just after the HGVimDiff command |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1601 executes to allow customization of, for instance, |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1602 window placement and focus. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1603 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1604 5.3 HGCommand buffer naming *hgcommand-naming* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1605 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1606 By default, the buffers containing the result of HG commands are nameless |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1607 scratch buffers. It is intended that buffer variables of those buffers be |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1608 used to customize the statusline option so that the user may fully control |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1609 the display of result buffers. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1610 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1611 If the old-style naming is desired, please enable the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1612 |HGCommandNameResultBuffers| variable. Then, each result buffer will |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1613 receive a unique name that includes the source file name, the HG command, |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1614 and any extra data (such as revision numbers) that were part of the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1615 command. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1616 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1617 5.4 HGCommand status line support *hgcommand-statusline* |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1618 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1619 It is intended that the user will customize the |'statusline'| option to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1620 include HG result buffer attributes. A sample function that may be used in |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1621 the |'statusline'| option is provided by the plugin, HGGetStatusLine(). In |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1622 order to use that function in the status line, do something like the |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1623 following: > |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1624 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1625 set statusline=%<%f\ %{HGGetStatusLine()}\ %h%m%r%=%l,%c%V\ %P |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1626 < |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1627 of which %{HGGetStatusLine()} is the relevant portion. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1628 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1629 The sample HGGetStatusLine() function handles both HG result buffers and |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1630 HG-managed files if HGCommand buffer management is enabled (please see |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1631 |hgcommand-buffer-management|). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1632 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1633 5.5 HGCommand buffer management *hgcommand-buffer-management* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1634 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1635 The HGCommand plugin can operate in buffer management mode, which means |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1636 that it attempts to set two buffer variables ('HGRevision' and 'HGBranch') |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1637 upon entry into a buffer. This is rather slow because it means that 'hg |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1638 status' will be invoked at each entry into a buffer (during the |BufEnter| |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1639 autocommand). |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1640 |
2607
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
1641 This mode is enablmed by default. In order to disable it, set the |
070736e20dfd
HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2606
diff
changeset
|
1642 |HGCommandEnableBufferSetup| variable to a false (zero) value. Enabling |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1643 this mode simply provides the buffer variables mentioned above. The user |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1644 must explicitly include those in the |'statusline'| option if they are to |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1645 appear in the status line (but see |hgcommand-statusline| for a simple way |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1646 to do that). |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1647 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1648 ============================================================================== |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1649 9. Tips *hgcommand-tips* |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1650 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1651 9.1 Split window annotation, by Michael Anderson > |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1652 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1653 :nmap <Leader>hgN :vs<CR><C-w>h<Leader>hgn:vertical res 40<CR> |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1654 \ggdddd:set scb<CR>:set nowrap<CR><C-w>lgg:set scb<CR> |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1655 \:set nowrap<CR> |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1656 < |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1657 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1658 This splits the buffer vertically, puts an annotation on the left (minus |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1659 the header) with the width set to 40. An editable/normal copy is placed on |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1660 the right. The two versions are scroll locked so they move as one. and |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1661 wrapping is turned off so that the lines line up correctly. The advantages |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1662 are... |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1663 |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1664 1) You get a versioning on the right. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1665 2) You can still edit your own code. |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1666 3) Your own code still has syntax highlighting. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1667 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1668 ============================================================================== |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1669 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1670 8. Known bugs *hgcommand-bugs* |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1671 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1672 Please let me know if you run across any. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1673 |
2604
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1674 HGVimDiff, when using the original (real) source buffer as one of the diff |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1675 buffers, uses some hacks to try to restore the state of the original buffer |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1676 when the scratch buffer containing the other version is destroyed. There |
d93c23b31797
HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2603
diff
changeset
|
1677 may still be bugs in here, depending on many configuration details. |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1678 |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1679 ============================================================================== |
2637
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
1680 |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
1681 9. TODO *hgcommand-todo* |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
1682 |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
1683 Integrate symlink tracking once HG will support them. |
fcfd46c4a27a
HGcommand.vim : the status was read for the wrong file as we changed the current directory before
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2636
diff
changeset
|
1684 ============================================================================== |
2603
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1685 === END_DOC |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1686 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1687 " v im:tw=78:ts=8:ft=help:norl: |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1688 " vim600: set foldmethod=marker tabstop=8 shiftwidth=2 softtabstop=2 smartindent smarttab : |
f80057407c07
HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
2592
diff
changeset
|
1689 "fileencoding=iso-8859-15 |