annotate contrib/vim/hgcommand.vim @ 2733:0b7206a65325

hgcommand.vim: cleanup of doc self-install code
author Christian Ebert <blacktrash@gmx.net>
date Sat, 29 Jul 2006 01:58:12 +0200
parents 8dadff054acf
children 19436facb073
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
356 return ""
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
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
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
361 let branch=substitute(statustext, '^\_.*\_^branch:\s*\(\S\+\)\n\_.*$', '\1', "")
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
362 let returnExpression=returnExpression . " | let " . a:branchVar . "='" . branch . "'"
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
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 "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
481 " Helper function to make mkdir as portable as possible
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
482 function! s:HGFlexiMkdir(dir)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
483 if exists("*mkdir") " we can use Vim's own mkdir()
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
484 call mkdir(a:dir)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
485 elseif !exists("+shellslash")
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
486 call system('mkdir -p "'.a:dir.'"')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
487 else " M$
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
488 let l:ssl = &shellslash
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
489 try
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
490 set shellslash
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
491 call system('mkdir "'.a:dir.'"')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
492 finally
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
493 let &shellslash = l:ssl
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
494 endtry
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
495 endif
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
496 endfunction
2603
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 function! s:HGInstallDocumentation(full_name, revision)
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
499 " Figure out document path based on full name of this script:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
500 let l:vim_plugin_path = fnamemodify(a:full_name, ':h')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
501 let l:vim_doc_path = fnamemodify(a:full_name, ':h:h') . "/doc"
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
502 if filewritable(l:vim_doc_path) != 2
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
503 echomsg "hgcommand: Trying to update docs at: " . l:vim_doc_path
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
504 silent! call <SID>HGFlexiMkdir(l:vim_doc_path)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
505 if filewritable(l:vim_doc_path) != 2
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
506 " Try first item in 'runtimepath':
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
507 let l:vimfiles = matchstr(&runtimepath, '[^,]\+\ze,')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
508 let l:vim_doc_path = l:vimfiles . "/doc"
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
509 if filewritable(l:vim_doc_path) != 2
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
510 echomsg "hgcommand: Trying to update docs at: " . l:vim_doc_path
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
511 silent! call <SID>HGFlexiMkdir(l:vim_doc_path)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
512 if filewritable(l:vim_doc_path) != 2
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
513 " Put a warning:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
514 echomsg "Unable to open documentation directory"
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
515 echomsg " type `:help add-local-help' for more information."
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
516 return 0
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
517 endif
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
518 endif
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
519 endif
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
520 endif
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
521
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
522 " Full name of script and documentation file:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
523 let l:script_name = fnamemodify(a:full_name, ':t')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
524 let l:doc_name = fnamemodify(a:full_name, ':t:r') . '.txt'
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
525 let l:doc_file = l:vim_doc_path . "/" . l:doc_name
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
526
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
527 " Bail out if document file is still up to date:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
528 if filereadable(l:doc_file) && getftime(a:full_name) < getftime(l:doc_file)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
529 return 0
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
530 endif
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
531
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
532 " Create a new buffer & read in the plugin file (me):
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
533 setl nomodeline
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
534 1 new!
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
535 setl noswapfile modifiable
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
536 sil exe 'read ' . a:full_name
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
537
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
538 setl modeline
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
539 let l:buf = bufnr("%")
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
540
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
541 norm zR
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
542 norm gg
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
543
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
544 " Delete from first line to a line starts with
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
545 " === START_DOC
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
546 sil 1,/^=\{3,}\s\+START_DOC\C/ d
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
547
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
548 " Delete from a line starts with
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
549 " === END_DOC
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
550 " to the end of the documents:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
551 sil /^=\{3,}\s\+END_DOC\C/,$ d
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
552
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
553 " Remove fold marks:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
554 sil %s/{\{3}[1-9]/ /e
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
555
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
556 " Add modeline for help doc: the modeline string is mangled intentionally
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
557 " to avoid it be recognized by VIM:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
558 call append(line('$'), '')
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
559 call append(line('$'), ' v' . 'im:tw=78:ts=8:ft=help:norl:')
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
560
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
561 " Replace revision:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
562 sil exe "normal :1s/#version#/ v" . a:revision . "/\<CR>"
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
563
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
564 " Save the help document and wipe out buffer:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
565 sil exe 'wq! ' . l:doc_file . ' | bw ' . l:buf
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
566
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
567 " Build help tags:
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
568 sil exe 'helptags ' . l:vim_doc_path
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
569
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
570 return 1
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
571 endfunction
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
572
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
573 " Section: Public functions {{{1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
574
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
575 " Function: HGGetRevision() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
576 " 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
577 " 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
578
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
579 function! HGGetRevision()
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
580 let revision=""
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
581 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
582 return revision
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
583 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
584
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
585 " Function: HGDisableBufferSetup() {{{2
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
586 " 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
587
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
588 function! HGDisableBufferSetup()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
589 let g:HGCommandEnableBufferSetup=0
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
590 silent! augroup! HGCommandPlugin
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
591 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
592
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
593 " Function: HGEnableBufferSetup() {{{2
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
594 " 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
595
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
596 function! HGEnableBufferSetup()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
597 let g:HGCommandEnableBufferSetup=1
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
598 augroup HGCommandPlugin
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
599 au!
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
600 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
601 au BufWritePost * call s:HGSetupBuffer()
2607
070736e20dfd HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2606
diff changeset
602 " 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
603 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
604 augroup END
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
605
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
606 " 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
607 " chance to run.
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
608 if g:loaded_hgcommand == 2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
609 call s:HGSetupBuffer()
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
610 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
611 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
612
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
613 " Function: HGGetStatusLine() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
614 " 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
615 " 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
616 " 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
617
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
618 function! HGGetStatusLine()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
619 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
620 " This is a result buffer
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
621 let value='[' . b:HGCommand . ' ' . b:HGSourceFile
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
622 if exists('b:HGStatusText')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
623 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
624 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
625 let value = value . ']'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
626 return value
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
627 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
628
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
629 if exists('b:HGRevision')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
630 \ && b:HGRevision != ''
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
631 \ && exists('b:HGRepository')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
632 \ && b:HGRepository != ''
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
633 \ && exists('g:HGCommandEnableBufferSetup')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
634 \ && g:HGCommandEnableBufferSetup
2606
5cef1a92aa04 HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2605
diff changeset
635 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
636 let l:branch=''
5cef1a92aa04 HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2605
diff changeset
637 else
5cef1a92aa04 HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2605
diff changeset
638 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
639 endif
5cef1a92aa04 HGcommand.vim : HGGetStatusLine accept to display an empty 'branch' value
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2605
diff changeset
640 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
641 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
642 return ''
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
643 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
644 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
645
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
646 " 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
647
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
648 " Function: s:HGAdd() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
649 function! s:HGAdd()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
650 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
651 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
652
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
653 " Function: s:HGAnnotate(...) {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
654 function! s:HGAnnotate(...)
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
655 if a:0 == 0
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
656 if &filetype == "HGAnnotate"
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
657 " 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
658 " indicated by the current line.
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
659 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
660 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
661 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
662 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
663 else
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
664 let revision=HGGetRevision()
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
665 if revision == ""
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
666 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
667 return -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
668 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
669 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
670 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
671 let revision=a:1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
672 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
673
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
674 if revision == "NEW"
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
675 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
676 return -1
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
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
679 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
680 "echomsg "DBG: ".resultBuffer
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
681 if resultBuffer != -1
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
682 set filetype=HGAnnotate
2591
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
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
685 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
686 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
687
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
688 " Function: s:HGCommit() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
689 function! s:HGCommit(...)
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
690 " 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
691 " 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
692 " 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
693 if a:2 != "" || a:1 == "!"
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
694 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
695 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
696
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
697 let hgBufferCheck=s:HGCurrentBufferCheck()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
698 if hgBufferCheck == -1
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
699 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
700 return -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
701 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
702
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
703 " 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
704 " commands.
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
705
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
706 let shellSlashBak = &shellslash
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
707 try
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
708 set shellslash
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
709
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
710 let messageFileName = tempname()
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 fileName=bufname(hgBufferCheck)
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
713 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
714 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
715 if strlen(newCwd) == 0
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
716 " 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
717 " 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
718 let newCwd = getcwd()
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
719 endif
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 realFileName=fnamemodify(realFilePath, ':t')
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
722
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
723 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
724 return
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
725 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
726
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
727 " 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
728 let autoPattern = '\c' . messageFileName
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
729
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
730 " Ensure existance of group
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
731 augroup HGCommit
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
732 augroup END
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
733
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
734 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
735 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
736
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
737 " 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
738 " 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
739 " 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
740
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
741 execute 'nnoremap <silent> <buffer> <Plug>HGCommit '.
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
742 \ ':au! HGCommit * ' . autoPattern . '<CR>'.
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
743 \ ':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
744 \ ':update<CR>'.
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
745 \ ':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
746 \ '"' . newCwd . '",' .
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
747 \ '"' . 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
748 \ hgBufferCheck . ')<CR>'
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
749
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
750 silent 0put ='HG: ----------------------------------------------------------------------'
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
751 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
752 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
753
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
754 if s:HGGetOption('HGCommandCommitOnWrite', 1) == 1
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
755 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
756 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
757 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
758 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
759
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
760 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
761 silent put ='HG: ----------------------------------------------------------------------'
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
762 $
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
763 let b:HGSourceFile=fileName
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
764 let b:HGCommand='HGCommit'
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
765 set filetype=hg
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
766 finally
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
767 let &shellslash = shellSlashBak
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
768 endtry
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
769
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
770 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
771
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
772 " Function: s:HGDiff(...) {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
773 function! s:HGDiff(...)
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
774 if a:0 == 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
775 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
776 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
777 elseif a:0 == 2
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
778 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
779 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
780 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
781 let revOptions = ''
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
782 let caption = ''
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
783 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
784
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
785 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
786
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
787 if hgdiffopt == ""
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
788 let diffoptionstring=""
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
789 else
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
790 let diffoptionstring=" -" . hgdiffopt . " "
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
791 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
792
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
793 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
794 if resultBuffer != -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
795 set filetype=diff
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
796 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
797 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
798 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
799
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
800
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
801 " Function: s:HGGotoOriginal(["!]) {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
802 function! s:HGGotoOriginal(...)
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
803 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
804 if origBuffNR > 0
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
805 let origWinNR = bufwinnr(origBuffNR)
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
806 if origWinNR == -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
807 execute 'buffer' origBuffNR
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
808 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
809 execute origWinNR . 'wincmd w'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
810 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
811 if a:0 == 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
812 if a:1 == "!"
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
813 let buffnr = 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
814 let buffmaxnr = bufnr("$")
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
815 while buffnr <= buffmaxnr
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
816 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
817 execute "bw" buffnr
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
818 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
819 let buffnr = buffnr + 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
820 endwhile
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
821 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
822 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
823 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
824 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
825
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
826 " 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
827 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
828 if filereadable(a:messageFile)
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
829 let oldCwd=getcwd()
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
830 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
831 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
832 endif
2632
b1436559f1e9 fix logfile option for HGFinishCommit
Christian Ebert <blacktrash@gmx.net>
parents: 2607
diff changeset
833 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
834 execute 'cd' escape(oldCwd, ' ')
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
835 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
836 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
837 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
838 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
839 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
840 return -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
841 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
842 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
843
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
844 " Function: s:HGLog() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
845 function! s:HGLog(...)
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
846 if a:0 == 0
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
847 let versionOption = ""
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
848 let caption = ''
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
849 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
850 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
851 let caption = a:1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
852 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
853
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
854 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
855 if resultBuffer != ""
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
856 set filetype=rcslog
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
857 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
858 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
859 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
860
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
861 " Function: s:HGRevert() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
862 function! s:HGRevert()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
863 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
864 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
865
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
866 " Function: s:HGReview(...) {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
867 function! s:HGReview(...)
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
868 if a:0 == 0
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
869 let versiontag=""
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
870 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
871 let versiontag=input('Revision: ')
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 if versiontag == ""
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
874 let versiontag="(current)"
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
875 let versionOption=""
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
876 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
877 let versionOption=" -r " . versiontag . " "
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
878 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
879 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
880 let versiontag=a:1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
881 let versionOption=" -r " . versiontag . " "
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
882 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
883
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
884 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
885 if resultBuffer > 0
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
886 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
887 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
888
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
889 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
890 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
891
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
892 " Function: s:HGStatus() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
893 function! s:HGStatus()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
894 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
895 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
896
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
897
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
898 " Function: s:HGUpdate() {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
899 function! s:HGUpdate()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
900 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
901 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
902
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
903 " Function: s:HGVimDiff(...) {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
904 function! s:HGVimDiff(...)
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
905 let originalBuffer = s:HGCurrentBufferCheck()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
906 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
907 try
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
908 " 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
909 " 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
910
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
911 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
912 " 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
913 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
914 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
915
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
916 " Split and diff
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
917 if(a:0 == 2)
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
918 " 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
919 if exists('s:vimDiffSourceBuffer')
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
920 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
921 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
922 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
923 if resultBuffer < 0
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
924 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
925 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
926 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
927 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
928 diffthis
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
929 let s:vimDiffBufferCount = 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
930 let s:vimDiffScratchList = '{'. resultBuffer . '}'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
931 " 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
932 try
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
933 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
934 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
935 finally
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
936 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
937 endtry
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 = 2
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
945 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
946 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
947 " Add new buffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
948 try
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
949 " 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
950 call s:HGOverrideOption("HGCommandEdit", "split")
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
951 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
952 if(a:0 == 0)
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
953 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
954 else
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
955 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
956 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
957 finally
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
958 call s:HGOverrideOption("HGCommandEdit")
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
959 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
960 endtry
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
961 if resultBuffer < 0
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
962 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
963 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
964 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
965 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
966 diffthis
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
967
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
968 if !exists('s:vimDiffBufferCount')
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
969 " New instance of vimdiff.
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
970 let s:vimDiffBufferCount = 2
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
971 let s:vimDiffScratchList = '{' . resultBuffer . '}'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
972
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
973 " 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
974 " original buffer.
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
975 wincmd W
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
976 execute 'buffer' originalBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
977 " 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
978 let s:vimDiffRestoreCmd =
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
979 \ "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
980 \ . "|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
981 \ . "|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
982 \ . "|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
983 \ . "|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
984 \ . "|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
985 \ . "|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
986 diffthis
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
987 wincmd w
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
988 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
989 " 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
990 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
991 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
992 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
993 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
994
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
995 let s:vimDiffSourceBuffer = originalBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
996
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
997 " 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
998
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
999 let currentBuffer = bufnr('%')
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1000 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
1001 try
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1002 call setbufvar(currentBuffer, '&modeline', 0)
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1003 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
1004 finally
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1005 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
1006 endtry
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1007 return resultBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1008 finally
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1009 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
1010 endtry
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1011 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1012
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1013 " Section: Command definitions {{{1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1014 " Section: Primary commands {{{2
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1015 com! HGAdd call s:HGAdd()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1016 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
1017 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
1018 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
1019 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
1020 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
1021 com! HGRevert call s:HGRevert()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1022 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
1023 com! HGStatus call s:HGStatus()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1024 com! HGUpdate call s:HGUpdate()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1025 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
1026
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1027 " Section: HG buffer management commands {{{2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1028 com! HGDisableBufferSetup call HGDisableBufferSetup()
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1029 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
1030
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1031 " Allow reloading hgcommand.vim
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1032 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
1033
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1034 " Section: Plugin command mappings {{{1
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1035 nnoremap <silent> <Plug>HGAdd :HGAdd<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1036 nnoremap <silent> <Plug>HGAnnotate :HGAnnotate<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1037 nnoremap <silent> <Plug>HGCommit :HGCommit<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1038 nnoremap <silent> <Plug>HGDiff :HGDiff<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1039 nnoremap <silent> <Plug>HGGotoOriginal :HGGotoOriginal<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1040 nnoremap <silent> <Plug>HGClearAndGotoOriginal :HGGotoOriginal!<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1041 nnoremap <silent> <Plug>HGLog :HGLog<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1042 nnoremap <silent> <Plug>HGRevert :HGRevert<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1043 nnoremap <silent> <Plug>HGReview :HGReview<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1044 nnoremap <silent> <Plug>HGStatus :HGStatus<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1045 nnoremap <silent> <Plug>HGUpdate :HGUpdate<CR>
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1046 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
1047
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1048 " Section: Default mappings {{{1
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1049 if !hasmapto('<Plug>HGAdd')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1050 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
1051 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1052 if !hasmapto('<Plug>HGAnnotate')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1053 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
1054 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1055 if !hasmapto('<Plug>HGClearAndGotoOriginal')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1056 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
1057 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1058 if !hasmapto('<Plug>HGCommit')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1059 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
1060 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1061 if !hasmapto('<Plug>HGDiff')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1062 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
1063 endif
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1064 if !hasmapto('<Plug>HGGotoOriginal')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1065 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
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>HGLog')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1068 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
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>HGRevert')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1071 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
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>HGReview')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1074 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
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>HGStatus')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1077 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
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>HGUpdate')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1080 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
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>HGVimDiff')
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1083 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
1084 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1085
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1086 " Section: Menu items {{{1
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1087 silent! aunmenu Plugin.HG
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1088 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
1089 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
1090 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
1091 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
1092 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
1093 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
1094 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
1095 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
1096 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
1097 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
1098
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1099 " 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
1100 function! s:HGVimDiffRestore(vimDiffBuff)
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1101 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
1102 try
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1103 if exists("s:vimDiffSourceBuffer")
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1104 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
1105 " 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
1106 unlet! s:vimDiffSourceBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1107 unlet! s:vimDiffBufferCount
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1108 unlet! s:vimDiffRestoreCmd
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1109 unlet! s:vimDiffScratchList
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1110 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
1111 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
1112 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
1113 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
1114 " 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
1115 " 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
1116
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1117 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
1118 if sourceWinNR != -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1119 " 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
1120 let currentWinNR = winnr()
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1121 while winbufnr(sourceWinNR) != -1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1122 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
1123 execute sourceWinNR . 'wincmd w'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1124 if getwinvar('', "&diff")
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1125 execute s:vimDiffRestoreCmd
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1126 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1127 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1128 let sourceWinNR = sourceWinNR + 1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1129 endwhile
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1130 execute currentWinNR . 'wincmd w'
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1131 else
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1132 " 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
1133 " diff option.
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1134 let currentBufNR = bufnr('')
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1135 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
1136 if getwinvar('', "&diff")
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1137 execute s:vimDiffRestoreCmd
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1138 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1139 execute "hide buffer" currentBufNR
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1140 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1141
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1142 unlet s:vimDiffRestoreCmd
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1143 unlet s:vimDiffSourceBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1144 unlet s:vimDiffBufferCount
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1145 unlet s:vimDiffScratchList
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1146 elseif s:vimDiffBufferCount == 0
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1147 " All buffers are gone.
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1148 unlet s:vimDiffSourceBuffer
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1149 unlet s:vimDiffBufferCount
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1150 unlet s:vimDiffScratchList
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1151 endif
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1152 endif
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 finally
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1155 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
1156 endtry
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1157 endfunction
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1158
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1159 augroup HGVimDiffRestore
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1160 au!
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1161 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
1162 augroup END
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1163
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1164 " 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
1165
2607
070736e20dfd HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2606
diff changeset
1166 if s:HGGetOption('HGCommandEnableBufferSetup', 1)
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1167 call HGEnableBufferSetup()
2591
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
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1170 " Section: Doc installation {{{1
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1171 "
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1172 let s:revision="0.1"
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1173 if s:HGInstallDocumentation(escape(expand('<sfile>:p'), ' '), s:revision)
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1174 echom expand('<sfile>:t:r') . ' v' . s:revision .
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1175 \ ': Help-documentation installed.'
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1176 endif
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1177
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1178 " delete one-time vars and functions
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1179 delfunction <SID>HGInstallDocumentation
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1180 delfunction <SID>HGFlexiMkdir
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1181 unlet s:revision
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1182
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1183
2591
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1184 " Section: Plugin completion {{{1
61f2008cd6bf Addition of CVScommand vim script as a base for HGcommand
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff changeset
1185
2592
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1186 let loaded_hgcommand=2
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1187 silent do HGCommand User HGPluginFinish
457846f400e8 Vim script: Adaptation from CVS to Mercurial
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2591
diff changeset
1188 " vim:se expandtab sts=2 sw=2:
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1189 finish
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1190
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1191 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1192 " Section: Documentation content {{{1
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1193 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1194 === START_DOC
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1195 *hgcommand.txt* Mercurial vim integration #version#
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1196
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1197
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1198 HGCOMMAND REFERENCE MANUAL~
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1199
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1200
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1201 Author: Mathieu Clabaut <mathieu.clabaut@gmail.com>
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1202 Credits: Bob Hiestand <bob.hiestand@gmail.com>
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1203 Mercurial: http://www.selenic.com/mercurial
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1204 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
1205 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
1206
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1207 ==============================================================================
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1208 1. Contents *hgcommand-contents*
2603
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 Installation : |hgcommand-install|
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1211 HGCommand Intro : |hgcommand|
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1212 HGCommand Manual : |hgcommand-manual|
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1213 Customization : |hgcommand-customize|
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1214 Bugs : |hgcommand-bugs|
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1215
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1216 ==============================================================================
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1217 2. HGCommand Installation *hgcommand-install*
2603
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 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
1220 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
1221 |'runtimepath'|.
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1222
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1223 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
1224 specifying event handlers. Please see |hgcommand-customize| for more
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1225 details.
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1226
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1227 *hgcommand-auto-help*
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1228 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
1229 loaded for the first time.
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 ==============================================================================
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1232
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1233 3. HGCommand Intro *hgcommand*
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1234 *hgcommand-intro*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1235
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1236 The HGCommand plugin provides global ex commands for manipulating
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1237 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
1238 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
1239 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
1240 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
1241 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
1242 buffers (please see |hgcommand-buffer-variables|).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1243
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1244 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
1245 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
1246
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1247 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
1248 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
1249 the output appears in a new window.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1250
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1251 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
1252 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
1253 specified (though see |HGCommandInteractive| to prompt instead).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1254
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1255 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
1256 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
1257 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
1258 fashion for plugin mappings. For examples, please see
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1259 |hgcommand-mappings-override|.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1260
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1261 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
1262 please see |hgcommand-customize|.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1263
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1264 ==============================================================================
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1265 4. HGCommand Manual *hgcommand-manual*
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 4.1 HGCommand commands *hgcommand-commands*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1268
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1269 HGCommand defines the following commands:
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1270
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1271 |:HGAdd|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1272 |:HGAnnotate|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1273 |:HGCommit|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1274 |:HGDiff|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1275 |:HGGotoOriginal|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1276 |:HGLog|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1277 |:HGRevert|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1278 |:HGReview|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1279 |:HGStatus|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1280 |:HGUpdate|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1281 |:HGVimDiff|
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 *:HGAdd*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1284
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1285 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
1286 not commit the newly-added file.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1287
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1288 :HGAnnotate *:HGAnnotate*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1289
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1290 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
1291 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
1292 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
1293 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
1294 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
1295
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1296 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
1297 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
1298 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
1299
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1300 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
1301 take advantage of the bundled syntax file.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1302
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1303
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1304 :HGCommit[!] *:HGCommit*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1305
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1306 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
1307 the log message.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1308
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1309 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
1310
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1311 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
1312 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
1313 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
1314 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
1315 deleted or wiped before being written.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1316
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1317 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
1318 <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
1319 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
1320 disable the normal commit-on-write behavior.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1321
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1322 :HGDiff *:HGDiff*
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1323
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1324 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
1325 current repository version.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1326
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1327 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
1328 specified revision.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1329
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1330 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
1331 the current file.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1332
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1333 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
1334 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
1335 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
1336
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1337
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1338 :HGGotoOriginal *:HGGotoOriginal*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1339
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1340 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
1341 current buffer is a HG command output buffer.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1342
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1343 :HGGotoOriginal!
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 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
1346 output buffers for the source buffer.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1347
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1348 :HGLog *:HGLog*
2603
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 Performs "hg log" on the current file.
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 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
1353 "hg log".
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1354
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1355 :HGRevert *:HGRevert*
2603
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 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
1358 in order to wipe out any undesired changes.
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1359
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1360 :HGReview *:HGReview*
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 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
1363 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
1364 retrieved. Otherwise, the specified version is retrieved.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1365
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1366 :HGStatus *:HGStatus*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1367
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1368 Performs "hg status" on the current file.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1369
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1370 :HGUpdate *:HGUpdate*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1371
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1372 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
1373 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
1374 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
1375
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1376 :HGVimDiff *:HGVimDiff*
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 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
1379 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
1380 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
1381 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
1382
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1383 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
1384 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
1385 vimdiff.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1386
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1387 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
1388 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
1389 returned to normal mode.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1390
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1391 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
1392 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
1393 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
1394
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1395 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
1396 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
1397 close the previous vimdiff buffers.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1398
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1399
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1400 4.2 Mappings *hgcommand-mappings*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1401
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1402 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
1403 the default (no-argument) form of each command.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1404
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1405 <Leader>hga HGAdd
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1406 <Leader>hgn HGAnnotate
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1407 <Leader>hgc HGCommit
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1408 <Leader>hgd HGDiff
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1409 <Leader>hgg HGGotoOriginal
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1410 <Leader>hgG HGGotoOriginal!
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1411 <Leader>hgl HGLog
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1412 <Leader>hgr HGReview
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1413 <Leader>hgs HGStatus
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1414 <Leader>hgu HGUpdate
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1415 <Leader>hgv HGVimDiff
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 *hgcommand-mappings-override*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1418
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1419 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
1420 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
1421 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
1422 initialization, but will not clobber the existing mappings).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1423
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1424 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
1425 '\add', add the following to the vimrc: >
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1426
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1427 nmap \add <Plug>HGAdd
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1428 <
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1429 4.3 Automatic buffer variables *hgcommand-buffer-variables*
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 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
1432 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
1433 the event handlers (please see |hgcommand-events|).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1434
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1435 The following variables are automatically defined:
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1436
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1437 b:hgOrigBuffNR *b:hgOrigBuffNR*
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 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
1440
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1441 b:hgcmd *b:hgcmd*
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 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
1444 buffer.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1445 ==============================================================================
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 5. Configuration and customization *hgcommand-customize*
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1448 *hgcommand-config*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1449
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1450 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
1451 configuration variables (see |hgcommand-options|) or by defining HGCommand
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1452 event handlers (see |hgcommand-events|). Additionally, the HGCommand
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1453 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
1454 |hgcommand-naming|) and supported a customized status line (see
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1455 |hgcommand-statusline| and |hgcommand-buffer-management|).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1456
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1457 5.1 HGCommand configuration variables *hgcommand-options*
2603
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 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
1460 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
1461 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
1462
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1463
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1464 The following variables are available:
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1465
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1466 |HGCommandAnnotateParent|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1467 |HGCommandCommitOnWrite|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1468 |HGCommandHGExec|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1469 |HGCommandDeleteOnHide|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1470 |HGCommandDiffOpt|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1471 |HGCommandDiffSplit|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1472 |HGCommandEdit|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1473 |HGCommandEnableBufferSetup|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1474 |HGCommandInteractive|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1475 |HGCommandNameMarker|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1476 |HGCommandNameResultBuffers|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1477 |HGCommandSplit|
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1478
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1479 HGCommandAnnotateParent *HGCommandAnnotateParent*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1480
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1481 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
1482 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
1483 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
1484 0.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1485
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1486 HGCommandCommitOnWrite *HGCommandCommitOnWrite*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1487
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1488 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
1489 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
1490 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
1491 occur. If not set, it defaults to 1.
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 HGCommandHGExec *HGCommandHGExec*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1494
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1495 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
1496 set, it defaults to "hg".
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 HGCommandDeleteOnHide *HGCommandDeleteOnHide*
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 temporary HG result
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1501 buffers to automatically delete themselves when hidden.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1502
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1503 HGCommandDiffOpt *HGCommandDiffOpt*
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 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
1506 HG. If not set, it defaults to 'w'.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1507
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1508 HGCommandDiffSplit *HGCommandDiffSplit*
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 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
1511 created with |:HGVimDiff|.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1512
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1513 HGCommandEdit *HGCommandEdit*
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 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
1516 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
1517
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1518 HGCommandEnableBufferSetup *HGCommandEnableBufferSetup*
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 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
1521 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
1522 buffer variables, 'HGRepository', 'HGRevision' and 'HGBranch', are set if
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1523 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
1524 information in the status bar.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1525
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1526 HGCommandInteractive *HGCommandInteractive*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1527
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1528 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
1529 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
1530 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
1531
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1532 HGCommandNameMarker *HGCommandNameMarker*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1533
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1534 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
1535 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
1536 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
1537 If not set, it defaults to '_'.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1538
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1539 HGCommandNameResultBuffers *HGCommandNameResultBuffers*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1540
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1541 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
1542 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
1543 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
1544
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1545 HGCommandSplit *HGCommandSplit*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1546
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1547 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
1548 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
1549 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
1550 '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
1551 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
1552 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
1553
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1554 5.2 HGCommand events *hgcommand-events*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1555
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1556 For additional customization, HGCommand can trigger user-defined events.
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1557 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
1558 |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
1559 event name.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1560
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1561 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
1562 mapping to quit a HGCommand scratch buffer: >
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1563
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1564 augroup HGCommand
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1565 au HGCommand User HGBufferCreated silent! nmap <unique> <buffer> q:
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1566 bwipeout<cr>
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1567 augroup END
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1568 <
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1569
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1570 The following hooks are available:
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1571
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1572 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
1573 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
1574 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
1575 command buffer. The HGCommand buffer variables may be
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1576 useful for handlers of this event (please see
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1577 |hgcommand-buffer-variables|).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1578
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1579 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
1580 if enabled.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1581
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1582 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
1583 loads.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1584
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1585 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
1586 loads.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1587
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1588 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
1589 executes to allow customization of, for instance,
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1590 window placement and focus.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1591
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1592 5.3 HGCommand buffer naming *hgcommand-naming*
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 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
1595 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
1596 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
1597 the display of result buffers.
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1598
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1599 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
1600 |HGCommandNameResultBuffers| variable. Then, each result buffer will
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1601 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
1602 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
1603 command.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1604
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1605 5.4 HGCommand status line support *hgcommand-statusline*
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1606
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1607 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
1608 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
1609 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
1610 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
1611 following: >
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1612
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1613 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
1614 <
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1615 of which %{HGGetStatusLine()} is the relevant portion.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1616
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1617 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
1618 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
1619 |hgcommand-buffer-management|).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1620
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1621 5.5 HGCommand buffer management *hgcommand-buffer-management*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1622
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1623 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
1624 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
1625 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
1626 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
1627 autocommand).
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1628
2733
0b7206a65325 hgcommand.vim: cleanup of doc self-install code
Christian Ebert <blacktrash@gmx.net>
parents: 2638
diff changeset
1629 This mode is enabled by default. In order to disable it, set the
2607
070736e20dfd HGcommand.vim : HGCommandEnableBufferSetup on by default
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2606
diff changeset
1630 |HGCommandEnableBufferSetup| variable to a false (zero) value. Enabling
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1631 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
1632 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
1633 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
1634 to do that).
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1635
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1636 ==============================================================================
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1637 9. Tips *hgcommand-tips*
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1638
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1639 9.1 Split window annotation, by Michael Anderson >
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1640
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1641 :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
1642 \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
1643 \:set nowrap<CR>
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1644 <
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1645
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1646 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
1647 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
1648 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
1649 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
1650 are...
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1651
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1652 1) You get a versioning on the right.
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1653 2) You can still edit your own code.
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1654 3) Your own code still has syntax highlighting.
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1655
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1656 ==============================================================================
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 8. Known bugs *hgcommand-bugs*
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1659
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1660 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
1661
2604
d93c23b31797 HGcommand.vim : doc review.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2603
diff changeset
1662 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
1663 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
1664 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
1665 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
1666
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1667 ==============================================================================
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
1668
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
1669 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
1670
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
1671 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
1672 ==============================================================================
2603
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1673 === END_DOC
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1674 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1675 " v im:tw=78:ts=8:ft=help:norl:
f80057407c07 HGcommand.vim : doc integration
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents: 2592
diff changeset
1676 " 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
1677 "fileencoding=iso-8859-15