Define sign column highlights. Add colours and signs section.

This commit is contained in:
Andy Stewart
2013-03-08 11:36:44 +01:00
parent 7186f8bcad
commit cf2db0df65

View File

@@ -19,9 +19,9 @@ endif
function! s:init() function! s:init()
if !exists('g:gitgutter_initialised') if !exists('g:gitgutter_initialised')
call s:define_sign_column_highlight()
let s:highlight_lines = g:gitgutter_highlight_lines let s:highlight_lines = g:gitgutter_highlight_lines
call s:define_signs() call s:define_signs()
call s:define_highlights() call s:define_highlights()
" Vim doesn't namespace sign ids so every plugin shares the same " Vim doesn't namespace sign ids so every plugin shares the same
@@ -38,35 +38,6 @@ function! s:init()
endif endif
endfunction endfunction
function! s:define_highlights()
" sign highlights
hi GitGutterAddDefault guifg=#009900 guibg=NONE ctermfg=2 ctermbg=NONE
hi GitGutterChangeDefault guifg=#bbbb00 guibg=NONE ctermfg=3 ctermbg=NONE
hi GitGutterDeleteDefault guifg=#ff2222 guibg=NONE ctermfg=1 ctermbg=NONE
hi default link GitGutterChangeDeleteDefault GitGutterChangeDefault
if g:gitgutter_highlights
hi default link GitGutterAdd GitGutterAddDefault
hi default link GitGutterChange GitGutterChangeDefault
hi default link GitGutterDelete GitGutterDeleteDefault
hi default link GitGutterChangeDelete GitGutterChangeDeleteDefault
endif
" line highlight defaults, meant to be user-edited
hi default link GitGutterAddLine DiffAdd
hi default link GitGutterChangeLine DiffChange
hi default link GitGutterDeleteLine DiffDelete
hi default link GitGutterChangeDeleteLine GitGutterChangeLineDefault
call s:update_line_highlights(s:highlight_lines)
endfunction
function! s:define_signs()
sign define GitGutterLineAdded text=+ texthl=GitGutterAdd linehl=
sign define GitGutterLineModified text=~ texthl=GitGutterChange linehl=
sign define GitGutterLineRemoved text=_ texthl=GitGutterDelete linehl=
sign define GitGutterLineModifiedRemoved text=~_ texthl=GitGutterChangeDelete linehl=
endfunction
" }}} " }}}
@@ -76,22 +47,6 @@ function! s:is_active()
return g:gitgutter_enabled && s:exists_current_file() && s:is_in_a_git_repo() && s:is_tracked_by_git() return g:gitgutter_enabled && s:exists_current_file() && s:is_in_a_git_repo() && s:is_tracked_by_git()
endfunction endfunction
function! s:update_line_highlights(highlight_lines)
let s:highlight_lines = a:highlight_lines
if s:highlight_lines
sign define GitGutterLineAdded linehl=GitGutterAddLine
sign define GitGutterLineModified linehl=GitGutterChangeLine
sign define GitGutterLineRemoved linehl=GitGutterDeleteLine
sign define GitGutterLineModifiedRemoved linehl=GitGutterChangeDeleteLine
else
sign define GitGutterLineAdded linehl=
sign define GitGutterLineModified linehl=
sign define GitGutterLineRemoved linehl=
sign define GitGutterLineModifiedRemoved linehl=
endif
redraw!
endfunction
function! s:current_file() function! s:current_file()
return expand("%:p") return expand("%:p")
endfunction endfunction
@@ -131,6 +86,61 @@ function! s:is_tracked_by_git()
return !v:shell_error return !v:shell_error
endfunction endfunction
" }}}
" {{{ Colours and signs
function! s:define_sign_column_highlight()
highlight default link SignColumn LineNr
endfunction
function! s:define_highlights()
" sign highlights
hi GitGutterAddDefault guifg=#009900 guibg=NONE ctermfg=2 ctermbg=NONE
hi GitGutterChangeDefault guifg=#bbbb00 guibg=NONE ctermfg=3 ctermbg=NONE
hi GitGutterDeleteDefault guifg=#ff2222 guibg=NONE ctermfg=1 ctermbg=NONE
hi default link GitGutterChangeDeleteDefault GitGutterChangeDefault
if g:gitgutter_highlights
hi default link GitGutterAdd GitGutterAddDefault
hi default link GitGutterChange GitGutterChangeDefault
hi default link GitGutterDelete GitGutterDeleteDefault
hi default link GitGutterChangeDelete GitGutterChangeDeleteDefault
endif
" line highlight defaults, meant to be user-edited
hi default link GitGutterAddLine DiffAdd
hi default link GitGutterChangeLine DiffChange
hi default link GitGutterDeleteLine DiffDelete
hi default link GitGutterChangeDeleteLine GitGutterChangeLineDefault
call s:update_line_highlights(s:highlight_lines)
endfunction
function! s:define_signs()
sign define GitGutterLineAdded text=+ texthl=GitGutterAdd linehl=
sign define GitGutterLineModified text=~ texthl=GitGutterChange linehl=
sign define GitGutterLineRemoved text=_ texthl=GitGutterDelete linehl=
sign define GitGutterLineModifiedRemoved text=~_ texthl=GitGutterChangeDelete linehl=
endfunction
function! s:update_line_highlights(highlight_lines)
let s:highlight_lines = a:highlight_lines
if s:highlight_lines
sign define GitGutterLineAdded linehl=GitGutterAddLine
sign define GitGutterLineModified linehl=GitGutterChangeLine
sign define GitGutterLineRemoved linehl=GitGutterDeleteLine
sign define GitGutterLineModifiedRemoved linehl=GitGutterChangeDeleteLine
else
sign define GitGutterLineAdded linehl=
sign define GitGutterLineModified linehl=
sign define GitGutterLineRemoved linehl=
sign define GitGutterLineModifiedRemoved linehl=
endif
redraw!
endfunction
" }}} " }}}
" Diff processing {{{ " Diff processing {{{