motiejus/dotfiles

Unnamed repository; edit this file 'description' to name the repository.
git clone https://git.jakstys.lt/motiejus/dotfiles.git
Log | Tree | Refs | README | LICENSE

commit d417fd31999881bdb298d8829642100a9902df2c (tree)
parent 4daa0c558ceb14223c6c6861063ef0ae9a35233b
Author: Tim Pope <code@tpope.net>
Date:   Sun, 11 Aug 2019 01:18:21 -0400

Move blame buffer settings to FileType event

The goal here is to extract just the settings that would work outside of
a vertical split with 'scrollbind' in effect, so we can one day add a
second mode.

Diffstat:
Mautoload/fugitive.vim | 73+++++++++++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 43 insertions(+), 30 deletions(-)

diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim @@ -4553,17 +4553,6 @@ function! s:Keywordprg() abort endif endfunction -augroup fugitive_blame - autocmd! - autocmd FileType fugitiveblame setlocal nomodeline | if len(s:Dir()) | let &l:keywordprg = s:Keywordprg() | endif - autocmd User Fugitive - \ if get(b:, 'fugitive_type') =~# '^\%(file\|blob\)$' || s:BlameBufnr() > 0 || filereadable(@%) | - \ exe "command! -buffer -bar -bang -range=-1 -nargs=* -complete=customlist,s:BlameComplete Gblame :execute s:BlameCommand(<line1>,<line2>,+'<range>',<count>,<bang>0,'<mods>',<q-reg>,<q-args>,[<f-args>])" | - \ endif - autocmd ColorScheme,GUIEnter * call s:RehighlightBlame() - autocmd BufWinLeave * execute getwinvar(+bufwinnr(+expand('<abuf>')), 'fugitive_leave') -augroup END - function! s:linechars(pattern) abort let chars = strlen(s:gsub(matchstr(getline('.'), a:pattern), '.', '.')) if exists('*synconcealed') && &conceallevel > 1 @@ -4745,27 +4734,10 @@ function! s:BlameCommand(line1, line2, range, count, bang, mods, reg, arg, args) setlocal cursorbind endif setlocal nonumber scrollbind nowrap foldcolumn=0 nofoldenable winfixwidth - if exists('+concealcursor') - setlocal concealcursor=nc conceallevel=2 - endif if exists('+relativenumber') setlocal norelativenumber endif execute "vertical resize ".(s:linechars('.\{-\}\ze\s\+\d\+)')+1) - nnoremap <buffer> <silent> <F1> :help fugitive-:Gblame<CR> - nnoremap <buffer> <silent> g? :help fugitive-:Gblame<CR> - if mapcheck('q', 'n') =~# '^$\|bdelete' - nnoremap <buffer> <silent> q :exe <SID>BlameQuit()<Bar>echohl WarningMsg<Bar>echo ":Gblame q is deprecated in favor of gq"<Bar>echohl NONE<CR> - endif - exe 'nnoremap <buffer> <silent>' s:nowait "gq :exe <SID>BlameQuit()<CR>" - nnoremap <buffer> <silent> <CR> :<C-U>exe <SID>BlameCommit("exe <SID>BlameLeave()<Bar>edit")<CR> - nnoremap <buffer> <silent> - :<C-U>exe <SID>BlameJump('')<CR> - nnoremap <buffer> <silent> P :<C-U>exe <SID>BlameJump('^'.v:count1)<CR> - nnoremap <buffer> <silent> ~ :<C-U>exe <SID>BlameJump('~'.v:count1)<CR> - nnoremap <buffer> <silent> i :<C-U>exe <SID>BlameCommit("exe <SID>BlameLeave()<Bar>edit")<CR> - nnoremap <buffer> <silent> o :<C-U>exe <SID>BlameCommit("split")<CR> - nnoremap <buffer> <silent> O :<C-U>exe <SID>BlameCommit("tabedit")<CR> - nnoremap <buffer> <silent> p :<C-U>exe <SID>BlameCommit("pedit")<CR> nnoremap <buffer> <silent> A :<C-u>exe "vertical resize ".(<SID>linechars('.\{-\}\ze [0-9:/+-][0-9:/+ -]* \d\+)')+1+v:count)<CR> nnoremap <buffer> <silent> C :<C-u>exe "vertical resize ".(<SID>linechars('^\S\+')+1+v:count)<CR> nnoremap <buffer> <silent> D :<C-u>exe "vertical resize ".(<SID>linechars('.\{-\}\ze\d\ze\s\+\d\+)')+1-v:count)<CR> @@ -4916,10 +4888,10 @@ function! fugitive#BlameSyntax() abort endif exe 'syn match FugitiveblameHash'.hash.' "\%(^\^\=\)\@<='.hash.'\x\{1,34\}\>" nextgroup=FugitiveblameAnnotation,FugitiveblameOriginalLineNumber,fugitiveblameOriginalFile skipwhite' endfor - call s:RehighlightBlame() + call s:BlameRehighlight() endfunction -function! s:RehighlightBlame() abort +function! s:BlameRehighlight() abort for [hash, cterm] in items(s:hash_colors) if !empty(cterm) || has('gui_running') || has('termguicolors') && &termguicolors exe 'hi FugitiveblameHash'.hash.' guifg=#'.hash.get(s:hash_colors, hash, '') @@ -4929,6 +4901,47 @@ function! s:RehighlightBlame() abort endfor endfunction +function! s:BlameFileType() abort + setlocal nomodeline + setlocal foldmethod=manual + if len(s:Dir()) + let &l:keywordprg = s:Keywordprg() + endif + let b:undo_ftplugin = 'setl keywordprg= foldmethod<' + if exists('+concealcursor') + setlocal concealcursor=nc conceallevel=2 + let b:undo_ftplugin .= ' concealcursor< conceallevel<' + endif + if &modifiable + return '' + endif + nnoremap <buffer> <silent> <F1> :help fugitive-:Gblame<CR> + nnoremap <buffer> <silent> g? :help fugitive-:Gblame<CR> + if mapcheck('q', 'n') =~# '^$\|bdelete' + nnoremap <buffer> <silent> q :exe <SID>BlameQuit()<Bar>echohl WarningMsg<Bar>echo ":Gblame q is deprecated in favor of gq"<Bar>echohl NONE<CR> + endif + exe 'nnoremap <buffer> <silent>' s:nowait "gq :exe <SID>BlameQuit()<CR>" + nnoremap <buffer> <silent> <CR> :<C-U>exe <SID>BlameCommit("exe <SID>BlameLeave()<Bar>edit")<CR> + nnoremap <buffer> <silent> - :<C-U>exe <SID>BlameJump('')<CR> + nnoremap <buffer> <silent> P :<C-U>exe <SID>BlameJump('^'.v:count1)<CR> + nnoremap <buffer> <silent> ~ :<C-U>exe <SID>BlameJump('~'.v:count1)<CR> + nnoremap <buffer> <silent> i :<C-U>exe <SID>BlameCommit("exe <SID>BlameLeave()<Bar>edit")<CR> + nnoremap <buffer> <silent> o :<C-U>exe <SID>BlameCommit("split")<CR> + nnoremap <buffer> <silent> O :<C-U>exe <SID>BlameCommit("tabedit")<CR> + nnoremap <buffer> <silent> p :<C-U>exe <SID>BlameCommit("pedit")<CR> +endfunction + +augroup fugitive_blame + autocmd! + autocmd FileType fugitiveblame call s:BlameFileType() + autocmd User Fugitive + \ if get(b:, 'fugitive_type') =~# '^\%(file\|blob\)$' || s:BlameBufnr() > 0 || filereadable(@%) | + \ exe "command! -buffer -bar -bang -range=-1 -nargs=* -complete=customlist,s:BlameComplete Gblame :execute s:BlameCommand(<line1>,<line2>,+'<range>',<count>,<bang>0,'<mods>',<q-reg>,<q-args>,[<f-args>])" | + \ endif + autocmd ColorScheme,GUIEnter * call s:BlameRehighlight() + autocmd BufWinLeave * execute getwinvar(+bufwinnr(+expand('<abuf>')), 'fugitive_leave') +augroup END + " Section: :Gbrowse call s:command("-bar -bang -range=-1 -nargs=* -complete=customlist,fugitive#CompleteObject Gbrowse", "Browse")