vim-signify/plugin/signify.vim

99 lines
2.9 KiB
VimL
Raw Normal View History

2013-09-30 04:19:31 -04:00
" vim: et sw=2 sts=2
scriptencoding utf-8
2013-03-07 07:12:01 -05:00
2014-10-04 09:55:49 -04:00
if exists('g:loaded_signify') || !has('signs') || &compatible
2013-03-05 13:48:21 -05:00
finish
endif
2014-10-04 09:55:49 -04:00
" Init: values {{{1
2017-02-24 12:16:14 -05:00
let g:loaded_signify = 1
let g:signify_locked = 0
let s:realtime = get(g:, 'signify_realtime') && has('patch-7.4.1967')
let s:save_on_bufenter = get(g:, 'signify_update_on_bufenter')
2013-03-05 13:48:21 -05:00
2017-02-20 10:40:57 -05:00
let s:has_doau_modeline = v:version > 703 || v:version == 703 && has('patch442')
2013-04-02 10:18:01 -04:00
" Init: autocmds {{{1
augroup signify
autocmd!
2013-03-13 14:23:47 -04:00
autocmd QuickFixCmdPre *vimgrep* let g:signify_locked = 1
autocmd QuickFixCmdPost *vimgrep* let g:signify_locked = 0
autocmd BufWritePost * call sy#start()
autocmd CursorHold,CursorHoldI * nested if &autowrite | call s:save() | endif
2017-02-20 10:05:55 -05:00
if s:realtime
2017-02-24 12:16:14 -05:00
if !s:save_on_bufenter
autocmd BufEnter * call sy#start()
endif
autocmd WinEnter * call sy#start()
else
2017-02-20 10:05:55 -05:00
autocmd BufRead * call sy#start()
endif
2017-02-24 12:16:14 -05:00
if s:save_on_bufenter
2017-02-20 10:05:55 -05:00
autocmd BufEnter * nested call s:save()
endif
2017-02-24 11:41:32 -05:00
if s:realtime || get(g:, 'signify_update_on_focusgained')
2017-02-20 10:05:55 -05:00
autocmd FocusGained * SignifyRefresh
2013-03-13 14:06:52 -04:00
endif
2017-02-21 11:10:48 -05:00
if has('gui_running') && has('win32')
" Fix 'no signs at start' race.
autocmd GUIEnter * redraw
endif
augroup END
2013-03-05 13:48:21 -05:00
2013-04-02 10:18:01 -04:00
" Init: commands {{{1
2013-03-05 13:48:21 -05:00
command! -nargs=0 -bar SignifyList call sy#debug#list_active_buffers()
command! -nargs=0 -bar SignifyDebug call sy#repo#debug_detection()
2015-12-08 18:31:59 -05:00
command! -nargs=0 -bar -bang SignifyFold call sy#fold#dispatch(<bang>1)
command! -nargs=0 -bar SignifyRefresh call sy#util#refresh_windows()
2016-01-06 18:00:21 -05:00
command! -nargs=0 -bar SignifyEnable call sy#enable()
command! -nargs=0 -bar SignifyDisable call sy#disable()
2015-12-08 18:31:59 -05:00
command! -nargs=0 -bar SignifyToggle call sy#toggle()
command! -nargs=0 -bar SignifyToggleHighlight call sy#highlight#line_toggle()
2014-10-05 19:32:10 -04:00
" Init: mappings {{{1
" hunk jumping
nnoremap <silent> <expr> <plug>(signify-next-hunk) &diff
\ ? ']c'
\ : ":\<c-u>call sy#jump#next_hunk(v:count1)\<cr>"
nnoremap <silent> <expr> <plug>(signify-prev-hunk) &diff
\ ? '[c'
\ : ":\<c-u>call sy#jump#prev_hunk(v:count1)\<cr>"
if empty(maparg(']c', 'n'))
nmap ]c <plug>(signify-next-hunk)
2016-01-13 21:40:52 -05:00
nmap ]C 9999]c
endif
if empty(maparg('[c', 'n'))
nmap [c <plug>(signify-prev-hunk)
2016-01-13 21:40:52 -05:00
nmap [C 9999[c
endif
2013-04-02 10:18:01 -04:00
" hunk text object
onoremap <silent> <plug>(signify-motion-inner-pending) :<c-u>call sy#util#hunk_text_object(0)<cr>
xnoremap <silent> <plug>(signify-motion-inner-visual) :<c-u>call sy#util#hunk_text_object(0)<cr>
onoremap <silent> <plug>(signify-motion-outer-pending) :<c-u>call sy#util#hunk_text_object(1)<cr>
xnoremap <silent> <plug>(signify-motion-outer-visual) :<c-u>call sy#util#hunk_text_object(1)<cr>
2014-10-04 09:55:49 -04:00
" Function: save {{{1
2014-10-04 09:55:49 -04:00
function! s:save()
if exists('b:sy') && b:sy.active && &modified
write
endif
endfunction
2017-02-20 10:40:57 -05:00
if exists('#User#SignifySetup')
execute 'doautocmd' (s:has_doau_modeline ? '<nomodeline>' : '') 'User SignifySetup'
endif