mirror of
https://github.com/amix/vimrc
synced 2025-06-16 01:25:00 +08:00
Updated plugins
This commit is contained in:
@ -85,6 +85,27 @@ function! gitgutter#toggle() abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
function! gitgutter#buffer_disable() abort
|
||||
let bufnr = bufnr('')
|
||||
call gitgutter#utility#setbufvar(bufnr, 'enabled', 0)
|
||||
call s:clear(bufnr)
|
||||
endfunction
|
||||
|
||||
function! gitgutter#buffer_enable() abort
|
||||
let bufnr = bufnr('')
|
||||
call gitgutter#utility#setbufvar(bufnr, 'enabled', 1)
|
||||
call gitgutter#process_buffer(bufnr, 1)
|
||||
endfunction
|
||||
|
||||
function! gitgutter#buffer_toggle() abort
|
||||
if gitgutter#utility#getbufvar(bufnr(''), 'enabled', 1)
|
||||
call gitgutter#buffer_disable()
|
||||
else
|
||||
call gitgutter#buffer_enable()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
function! s:setup_maps()
|
||||
|
@ -45,20 +45,20 @@ function! gitgutter#highlight#define_highlights() abort
|
||||
|
||||
" Highlights used by the signs.
|
||||
|
||||
execute "highlight GitGutterAddDefault guifg=#009900 guibg=" . guibg . " ctermfg=2 ctermbg=" . ctermbg
|
||||
execute "highlight GitGutterChangeDefault guifg=#bbbb00 guibg=" . guibg . " ctermfg=3 ctermbg=" . ctermbg
|
||||
execute "highlight GitGutterDeleteDefault guifg=#ff2222 guibg=" . guibg . " ctermfg=1 ctermbg=" . ctermbg
|
||||
highlight default link GitGutterChangeDeleteDefault GitGutterChangeDefault
|
||||
|
||||
" When they are invisible.
|
||||
execute "highlight GitGutterAddInvisible guifg=bg guibg=" . guibg . " ctermfg=" . ctermbg . " ctermbg=" . ctermbg
|
||||
execute "highlight GitGutterChangeInvisible guifg=bg guibg=" . guibg . " ctermfg=" . ctermbg . " ctermbg=" . ctermbg
|
||||
execute "highlight GitGutterDeleteInvisible guifg=bg guibg=" . guibg . " ctermfg=" . ctermbg . " ctermbg=" . ctermbg
|
||||
highlight default link GitGutterChangeDeleteInvisible GitGutterChangeInvisible
|
||||
|
||||
highlight default link GitGutterAdd GitGutterAddDefault
|
||||
highlight default link GitGutterChange GitGutterChangeDefault
|
||||
highlight default link GitGutterDelete GitGutterDeleteDefault
|
||||
highlight default link GitGutterChangeDelete GitGutterChangeDeleteDefault
|
||||
" When they are visible.
|
||||
" By default use Diff* foreground colors with SignColumn's background.
|
||||
for type in ['Add', 'Change', 'Delete']
|
||||
let [guifg, ctermfg] = s:get_foreground_colors('Diff'.type)
|
||||
execute "highlight GitGutter".type."Default guifg=".guifg." guibg=".guibg." ctermfg=".ctermfg." ctermbg=".ctermbg
|
||||
execute "highlight default link GitGutter".type." GitGutter".type."Default"
|
||||
endfor
|
||||
highlight default link GitGutterChangeDelete GitGutterChange
|
||||
|
||||
" Highlights used for the whole line.
|
||||
|
||||
@ -131,6 +131,21 @@ function! s:define_sign_line_highlights() abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:get_foreground_colors(group) abort
|
||||
redir => highlight
|
||||
silent execute 'silent highlight ' . a:group
|
||||
redir END
|
||||
|
||||
let link_matches = matchlist(highlight, 'links to \(\S\+\)')
|
||||
if len(link_matches) > 0 " follow the link
|
||||
return s:get_foreground_colors(link_matches[1])
|
||||
endif
|
||||
|
||||
let ctermfg = s:match_highlight(highlight, 'ctermfg=\([0-9A-Za-z]\+\)')
|
||||
let guifg = s:match_highlight(highlight, 'guifg=\([#0-9A-Za-z]\+\)')
|
||||
return [guifg, ctermfg]
|
||||
endfunction
|
||||
|
||||
function! s:get_background_colors(group) abort
|
||||
redir => highlight
|
||||
silent execute 'silent highlight ' . a:group
|
||||
|
@ -123,6 +123,30 @@ function! gitgutter#hunk#cursor_in_hunk(hunk) abort
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
|
||||
function! gitgutter#hunk#in_hunk(lnum)
|
||||
" Hunks are sorted in the order they appear in the buffer.
|
||||
for hunk in gitgutter#hunk#hunks(bufnr(''))
|
||||
" if in a hunk on first line of buffer
|
||||
if a:lnum == 1 && hunk[2] == 0
|
||||
return 1
|
||||
endif
|
||||
|
||||
" if in a hunk generally
|
||||
if a:lnum >= hunk[2] && a:lnum < hunk[2] + (hunk[3] == 0 ? 1 : hunk[3])
|
||||
return 1
|
||||
endif
|
||||
|
||||
" if hunk starts after the given line
|
||||
if a:lnum < hunk[2]
|
||||
return 0
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
|
||||
function! gitgutter#hunk#text_object(inner) abort
|
||||
let hunk = s:current_hunk()
|
||||
|
||||
|
@ -53,6 +53,7 @@ endfunction
|
||||
" This function does not and should not make any system calls.
|
||||
function! gitgutter#utility#is_active(bufnr) abort
|
||||
return g:gitgutter_enabled &&
|
||||
\ gitgutter#utility#getbufvar(a:bufnr, 'enabled', 1) &&
|
||||
\ !pumvisible() &&
|
||||
\ s:is_file_buffer(a:bufnr) &&
|
||||
\ s:exists_file(a:bufnr) &&
|
||||
|
Reference in New Issue
Block a user