annotate plugins/hghelp/hghelp.vim @ 8:9c80955f0c6e

I think I got popups working on the commit
author Luka Sitas <lsitas@avatarasoftware.com>
date Fri, 31 Oct 2025 14:24:31 -0400
parents 34930197e9d4
children 17c557de03e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
1 let g:hg_format_command = ""
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
2
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
3
8
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
4 function PopupCommand(command)
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
5 let buf = term_start(a:command, {'hidden': 1, 'term_finish': 'close'})
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
6 let winid = popup_create(buf, {'minwidth': 50, 'minheight': 20})
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
7 endfunction
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
8
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
9 function ExecuteCommand(command)
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
10 return system(a:command . ' 2>&1')
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
11 endfunction
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
12
6
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
13 function! s:CommitWithFormat()
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
14 wa
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
15 if exists("g:hg_format_command") && !empty(g:hg_format_command)
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
16 execute '!'.g:hg_format_command
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
17 endif
8
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
18 execute
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
19 call ExecuteCommand('!hg addremove')
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
20 call PopupCommand('hg commit')
6
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
21 endfunction
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
22
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
23 function! s:OpenHgDiff(file)
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
24 let l:current_file = a:file !=# '' ? a:file : expand('%')
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
25 let l:filetype = &filetype
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
26 let l:temp_file = tempname()
7
34930197e9d4 Updating hg diff tool.
Luka Sitas <lsitas@avatarasoftware.com>
parents: 6
diff changeset
27 let l:command = 'hg cat -r . ' . l:current_file . ' > ' . l:temp_file
8
9c80955f0c6e I think I got popups working on the commit
Luka Sitas <lsitas@avatarasoftware.com>
parents: 7
diff changeset
28 call ExecuteCommand(l:command)
7
34930197e9d4 Updating hg diff tool.
Luka Sitas <lsitas@avatarasoftware.com>
parents: 6
diff changeset
29 execute 'tabe ' . l:temp_file
6
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
30 execute 'setfiletype' l:filetype
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
31 setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
32 execute 'vert diffsplit' l:current_file
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
33 endfunction
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
34
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
35 command HGDiff call s:OpenHgDiff(expand('%'))
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
36 command Commit call s:CommitWithFormat()
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
37
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
38 map <C-k> :Commit<CR>
3017fd33ad8b Better support for db tables.
Luka Sitas <lsitas@avatarasoftware.com>
parents:
diff changeset
39 nnoremap <Leader>df :HGDiff<CR>