comparison contrib/vim/hg-menu.vim @ 2351:075d2ddc4639

contrib: move hg-menu.vim into contrib/vim directory
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Sat, 27 May 2006 20:45:22 -0700
parents contrib/hg-menu.vim@32fde51910c0
children ea7b982b6c08
comparison
equal deleted inserted replaced
2350:091d555653a4 2351:075d2ddc4639
1 " vim600: set foldmethod=marker:
2 " =============================================================================
3 " Name Of File: hg-menu.vim
4 " Description: Interface to Mercurial Version Control.
5 " Author: Steve Borho (modified Jeff Lanzarotta's RCS script)
6 " Date: Wednesday, October 5, 2005
7 " Version: 0.1.0
8 " Copyright: None.
9 " Usage: These command and gui menu displays useful hg functions
10 " Configuration: Your hg executable must be in your path.
11 " =============================================================================
12
13 " Section: Init {{{1
14 if exists("loaded_hg_menu")
15 finish
16 endif
17 let loaded_hg_menu = 1
18
19 " Section: Menu Options {{{1
20 if has("gui")
21 " amenu H&G.Commit\ File<Tab>,ci :!hg commit %<CR>:e!<CR>
22 " amenu H&G.Commit\ All<Tab>,call :!hg commit<CR>:e!<CR>
23 " amenu H&G.-SEP1- <nul>
24 amenu H&G.Add<Tab>\\add :!hg add %<CR><CR>
25 amenu H&G.Forget\ Add<Tab>\\fgt :!hg forget %<CR><CR>
26 amenu H&G.Show\ Differences<Tab>\\diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
27 amenu H&G.Revert\ to\ Last\ Version<Tab>\\revert :!hg revert %<CR>:e!<CR>
28 amenu H&G.Show\ History<Tab>\\log :call ShowResults("FileLog", "hg\ log")<CR><CR>
29 amenu H&G.Annotate<Tab>\\an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
30 amenu H&G.-SEP1- <nul>
31 amenu H&G.Repo\ Status<Tab>\\stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
32 amenu H&G.Pull<Tab>\\pull :!hg pull<CR>:e!<CR>
33 amenu H&G.Update<Tab>\\upd :!hg update<CR>:e!<CR>
34 endif
35
36 " Section: Mappings {{{1
37 if(v:version >= 600)
38 " The default Leader is \ 'backslash'
39 map <Leader>add :!hg add %<CR><CR>
40 map <Leader>fgt :!hg forget %<CR><CR>
41 map <Leader>diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
42 map <Leader>revert :!hg revert %<CR>:e!<CR>
43 map <Leader>log :call ShowResults("FileLog", "hg\ log")<CR><CR>
44 map <Leader>an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
45 map <Leader>stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
46 map <Leader>upd :!hg update<CR>:e!<CR>
47 map <Leader>pull :!hg pull<CR>:e!<CR>
48 else
49 " pre 6.0, the default Leader was a comma
50 map ,add :!hg add %<CR><CR>
51 map ,fgt :!hg forget %<CR><CR>
52 map ,diff :call ShowResults("FileDiff", "hg\ diff")<CR><CR>
53 map ,revert :!hg revert<CR>:e!<CR>
54 map ,log :call ShowResults("FileLog", "hg\ log")<CR><CR>
55 map ,an :call ShowResults("annotate", "hg\ annotate")<CR><CR>
56 map ,stat :call ShowResults("RepoStatus", "hg\ status")<CR><CR>
57 map ,upd :!hg update<CR>:e!<CR>
58 map ,pull :!hg pull<CR>:e!<CR>
59 endif
60
61 " Section: Functions {{{1
62 " Show the log results of the current file with a revision control system.
63 function! ShowResults(bufferName, cmdName)
64 " Modify the shortmess option:
65 " A don't give the "ATTENTION" message when an existing swap file is
66 " found.
67 set shortmess+=A
68
69 " Get the name of the current buffer.
70 let currentBuffer = bufname("%")
71
72 " If a buffer with the name rlog exists, delete it.
73 if bufexists(a:bufferName)
74 execute 'bd! ' a:bufferName
75 endif
76
77 " Create a new buffer.
78 execute 'new ' a:bufferName
79
80 " Execute the command.
81 execute 'r!' a:cmdName ' ' currentBuffer
82
83 " Make is so that the file can't be edited.
84 setlocal nomodified
85 setlocal nomodifiable
86 setlocal readonly
87
88 " Go to the beginning of the buffer.
89 execute "normal 1G"
90
91 " Restore the shortmess option.
92 set shortmess-=A
93 endfunction