From 438c778d3b6d72893f6756ee352fecdf028401a4 Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Mon, 11 Mar 2013 23:14:58 +0100 Subject: [PATCH] sw=2 -> sw=4 --- plugin/signify.vim | 692 +++++++++++++++++++++++---------------------- 1 file changed, 347 insertions(+), 345 deletions(-) diff --git a/plugin/signify.vim b/plugin/signify.vim index 5be76af..62a9db8 100644 --- a/plugin/signify.vim +++ b/plugin/signify.vim @@ -45,53 +45,53 @@ let s:id_top = s:id_start " Default mappings {{{1 if exists('g:signify_mapping_next_hunk') - exe 'nnoremap '. g:signify_mapping_next_hunk .' :SignifyJumpToNextHunk' + exe 'nnoremap '. g:signify_mapping_next_hunk .' :SignifyJumpToNextHunk' else - nnoremap gn :SignifyJumpToNextHunk + nnoremap gn :SignifyJumpToNextHunk endif if exists('g:signify_mapping_prev_hunk') - exe 'nnoremap '. g:signify_mapping_prev_hunk .' :SignifyJumpToPrevHunk' + exe 'nnoremap '. g:signify_mapping_prev_hunk .' :SignifyJumpToPrevHunk' else - nnoremap gp :SignifyJumpToPrevHunk + nnoremap gp :SignifyJumpToPrevHunk endif if exists('g:signify_mapping_toggle_highlight') - exe 'nnoremap '. g:signify_mapping_toggle_highlight .' :SignifyToggleHighlight' + exe 'nnoremap '. g:signify_mapping_toggle_highlight .' :SignifyToggleHighlight' else - nnoremap gh :SignifyToggleHighlight + nnoremap gh :SignifyToggleHighlight endif if exists('g:signify_mapping_toggle') - exe 'nnoremap '. g:signify_mapping_toggle .' :SignifyToggle' + exe 'nnoremap '. g:signify_mapping_toggle .' :SignifyToggle' else - nnoremap gt :SignifyToggle + nnoremap gt :SignifyToggle endif " Default signs {{{1 if exists('g:signify_sign_add') - exe 'sign define SignifyAdd text='. g:signify_sign_add .' texthl=SignifyAdd linehl=none' + exe 'sign define SignifyAdd text='. g:signify_sign_add .' texthl=SignifyAdd linehl=none' else - sign define SignifyAdd text=+ texthl=SignifyAdd linehl=none + sign define SignifyAdd text=+ texthl=SignifyAdd linehl=none endif if exists('g:signify_sign_delete') - exe 'sign define SignifyDelete text='. g:signify_sign_delete .' texthl=SignifyDelete linehl=none' + exe 'sign define SignifyDelete text='. g:signify_sign_delete .' texthl=SignifyDelete linehl=none' else - sign define SignifyDelete text=_ texthl=SignifyDelete linehl=none + sign define SignifyDelete text=_ texthl=SignifyDelete linehl=none endif if exists('g:signify_sign_change') - exe 'sign define SignifyChange text='. g:signify_sign_change .' texthl=SignifyChange linehl=none' + exe 'sign define SignifyChange text='. g:signify_sign_change .' texthl=SignifyChange linehl=none' else - sign define SignifyChange text=! texthl=SignifyChange linehl=none + sign define SignifyChange text=! texthl=SignifyChange linehl=none endif " Initial stuff {{{1 aug signify - au! - au ColorScheme * call s:colors_set() - au BufWritePost,BufEnter,FocusGained * call s:start(resolve(expand(':p'))) + au! + au ColorScheme * call s:colors_set() + au BufWritePost,BufEnter,FocusGained * call s:start(resolve(expand(':p'))) aug END com! -nargs=0 -bar SignifyToggle call s:toggle_signify() @@ -102,420 +102,422 @@ com! -nargs=0 -bar SignifyJumpToPrevHunk call s:jump_to_prev_hunk() " Internal functions {{{1 " Functions -> s:start() {{{2 function! s:start(path) abort - if empty(a:path) || &ft == 'help' + if empty(a:path) || &ft == 'help' + return + endif + + " Check for exceptions. + if exists('g:signify_exceptions_filetype') + for i in g:signify_exceptions_filetype + if i == &ft return - endif - - " Check for exceptions. - if exists('g:signify_exceptions_filetype') - for i in g:signify_exceptions_filetype - if i == &ft - return - endif - endfor - endif - if exists('g:signify_exceptions_filename') - for i in g:signify_exceptions_filename - if i == a:path - return - endif - endfor - endif - - " Is a diff available? - let diff = s:diff_get(a:path) - if empty(diff) - if has_key(s:sy, a:path) - call s:sign_remove_all(a:path) - endif + endif + endfor + endif + if exists('g:signify_exceptions_filename') + for i in g:signify_exceptions_filename + if i == a:path return - endif + endif + endfor + endif - " New buffer.. add to list. - if !has_key(s:sy, a:path) - let s:sy[a:path] = { 'active': 1, 'ids': [], 'id_jump': s:id_top, 'id_top': s:id_top, 'last_jump_was_next': -1 } + " Is a diff available? + let diff = s:diff_get(a:path) + if empty(diff) + if has_key(s:sy, a:path) + call s:sign_remove_all(a:path) + endif + return + endif + + " New buffer.. add to list. + if !has_key(s:sy, a:path) + let s:sy[a:path] = { 'active': 1, 'ids': [], 'id_jump': s:id_top, 'id_top': s:id_top, 'last_jump_was_next': -1 } " Inactive buffer.. bail out. - elseif s:sy[a:path].active == 0 - return + elseif s:sy[a:path].active == 0 + return " Update active buffer.. reset default values - else - call s:sign_remove_all(a:path) - let s:sy[a:path].id_top = s:id_top - let s:sy[a:path].id_jump = s:id_top - let s:sy[a:path].last_jump_was_next = -1 - endif + else + call s:sign_remove_all(a:path) + let s:sy[a:path].id_top = s:id_top + let s:sy[a:path].id_jump = s:id_top + let s:sy[a:path].last_jump_was_next = -1 + endif - if !s:sign_overwrite - call s:sign_get_others(a:path) - endif + if !s:sign_overwrite + call s:sign_get_others(a:path) + endif - " Set colors only for the first time or when a new colorscheme is set. - if !s:colors_set - call s:colors_set() - let s:colors_set = 1 - endif + " Set colors only for the first time or when a new colorscheme is set. + if !s:colors_set + call s:colors_set() + let s:colors_set = 1 + endif - " Use git's diff cmd to set our signs. - call s:diff_process(a:path, diff) + " Use git's diff cmd to set our signs. + call s:diff_process(a:path, diff) - let s:sy[a:path].id_top = (s:id_top - 1) + let s:sy[a:path].id_top = (s:id_top - 1) endfunction " Functions -> s:stop() {{{2 function! s:stop(path) abort - if !has_key(s:sy, a:path) - return - endif + if !has_key(s:sy, a:path) + return + endif - call s:sign_remove_all(a:path) + call s:sign_remove_all(a:path) - if (s:sy[a:path].active == 0) - return - else - call remove(s:sy, a:path) - endif + if (s:sy[a:path].active == 0) + return + else + call remove(s:sy, a:path) + endif - aug signify - au! * - aug END + aug signify + au! * + aug END endfunction " Functions -> s:sign_get_others() {{{2 function! s:sign_get_others(path) abort - redir => signlist - sil! exe 'sign place file='. a:path - redir END + redir => signlist + sil! exe 'sign place file='. a:path + redir END - for line in split(signlist, '\n') - if line =~ '^\s\+line' - let [ lnum, id ] = matchlist(line, '\vline\=(\d+)\s+id\=(\d+)')[1:2] - let s:other_signs_line_numbers[lnum] = id - endif - endfor + for line in split(signlist, '\n') + if line =~ '^\s\+line' + let [ lnum, id ] = matchlist(line, '\vline\=(\d+)\s+id\=(\d+)')[1:2] + let s:other_signs_line_numbers[lnum] = id + endif + endfor endfunction " Functions -> s:sign_set() {{{2 function! s:sign_set(lnum, type, path) - " Preserve non-signify signs - if get(s:other_signs_line_numbers, a:lnum) == 1 - return - endif + " Preserve non-signify signs + if get(s:other_signs_line_numbers, a:lnum) == 1 + return + endif - call add(s:sy[a:path].ids, s:id_top) - exe 'sign place '. s:id_top .' line='. a:lnum .' name='. a:type .' file='. a:path + call add(s:sy[a:path].ids, s:id_top) + exe 'sign place '. s:id_top .' line='. a:lnum .' name='. a:type .' file='. a:path - let s:id_top += 1 + let s:id_top += 1 endfunction " Functions -> s:sign_remove_all() {{{2 function! s:sign_remove_all(path) abort - for id in s:sy[a:path].ids - exe 'sign unplace '. id - endfor + for id in s:sy[a:path].ids + exe 'sign unplace '. id + endfor - let s:other_signs_line_numbers = {} - let s:sy[a:path].ids = [] + let s:other_signs_line_numbers = {} + let s:sy[a:path].ids = [] endfunction " Functions -> s:diff_get() {{{2 function! s:diff_get(path) abort - if !executable('grep') - echo 'signify: I cannot work without grep!' - return + if !executable('grep') + echo 'signify: I cannot work without grep!' + return + endif + + if executable('git') + let orig_dir = getcwd() + exe 'cd '. fnamemodify(a:path, ':h') + let diff = system('git diff --no-ext-diff -U0 -- '. a:path .' | grep "^@@ "') + if !v:shell_error + exe 'cd '. orig_dir + return diff + endif + exe 'cd '. orig_dir + endif + + if executable('hg') + let diff = system('hg diff --nodates -U0 -- '. a:path .' | grep "^@@ "') + if !v:shell_error + return diff + endif + endif + + if executable('diff') + if executable('svn') + let diff = system('svn diff --diff-cmd diff -x -U0 -- '. a:path .' | grep "^@@ "') + if !v:shell_error + return diff + endif endif - if executable('git') - let orig_dir = getcwd() - exe 'cd '. fnamemodify(a:path, ':h') - let diff = system('git diff --no-ext-diff -U0 -- '. a:path .' | grep "^@@ "') - if !v:shell_error - exe 'cd '. orig_dir - return diff - endif + if executable('bzr') + let diff = system('bzr diff --using diff --diff-options=-U0 -- '. a:path .' | grep "^@@ "') + if !v:shell_error + return diff + endif + endif + + if executable('darcs') + let orig_dir = getcwd() + exe 'cd '. fnamemodify(a:path, ':h') + let diff = system('darcs diff --no-pause-for-gui --diff-command="diff -U0 %1 %2" -- '. a:path .' | grep "^@@ "') + if !v:shell_error exe 'cd '. orig_dir + return diff + endif + exe 'cd '. orig_dir endif + endif - if executable('hg') - let diff = system('hg diff --nodates -U0 -- '. a:path .' | grep "^@@ "') - if !v:shell_error - return diff - endif + if exists('g:signify_enable_cvs') && (g:signify_enable_cvs == 1) + if executable('cvs') + let diff = system('cvs diff -U0 -- '. a:path .' 2>&1 | grep "^@@ "') + if !v:shell_error + return diff + endif endif + endif - if executable('diff') - if executable('svn') - let diff = system('svn diff --diff-cmd diff -x -U0 -- '. a:path .' | grep "^@@ "') - if !v:shell_error - return diff - endif - endif - - if executable('bzr') - let diff = system('bzr diff --using diff --diff-options=-U0 -- '. a:path .' | grep "^@@ "') - if !v:shell_error - return diff - endif - endif - - if executable('darcs') - let orig_dir = getcwd() - exe 'cd '. fnamemodify(a:path, ':h') - let diff = system('darcs diff --no-pause-for-gui --diff-command="diff -U0 %1 %2" -- '. a:path .' | grep "^@@ "') - if !v:shell_error - exe 'cd '. orig_dir - return diff - endif - exe 'cd '. orig_dir - endif - endif - - if exists('g:signify_enable_cvs') && (g:signify_enable_cvs == 1) - if executable('cvs') - let diff = system('cvs diff -U0 -- '. a:path .' 2>&1 | grep "^@@ "') - if !v:shell_error - return diff - endif - endif - endif - - return [] + return [] endfunction " Functions -> s:diff_process() {{{2 function! s:diff_process(path, diff) abort - " Determine where we have to put our signs. - for line in split(a:diff, '\n') - " Parse diff output. - let tokens = matchlist(line, '\v^\@\@ -(\d+),?(\d*) \+(\d+),?(\d*)') - if empty(tokens) - echo 'signify: I cannot parse this line "'. line .'"' - return - endif + " Determine where we have to put our signs. + for line in split(a:diff, '\n') + " Parse diff output. + let tokens = matchlist(line, '\v^\@\@ -(\d+),?(\d*) \+(\d+),?(\d*)') + if empty(tokens) + echo 'signify: I cannot parse this line "'. line .'"' + return + endif - let [ old_line, old_count, new_line, new_count ] = [ str2nr(tokens[1]), (tokens[2] == '') ? 1 : str2nr(tokens[2]), str2nr(tokens[3]), (tokens[4] == '') ? 1 : str2nr(tokens[4]) ] + let [ old_line, old_count, new_line, new_count ] = [ str2nr(tokens[1]), (tokens[2] == '') ? 1 : str2nr(tokens[2]), str2nr(tokens[3]), (tokens[4] == '') ? 1 : str2nr(tokens[4]) ] - " A new line was added. - if (old_count == 0) && (new_count >= 1) - let offset = 0 - while offset < new_count - call s:sign_set(new_line + offset, 'SignifyAdd', a:path) - let offset += 1 - endwhile - " An old line was removed. - elseif (old_count >= 1) && (new_count == 0) - call s:sign_set(new_line, 'SignifyDelete', a:path) - " A line was changed. - elseif (old_count == new_count) - let offset = 0 - while offset < new_count - call s:sign_set(new_line + offset, 'SignifyChange', a:path) - let offset += 1 - endwhile - else - " Lines were changed && deleted. - if (old_count > new_count) - let offset = 0 - while offset < new_count - call s:sign_set(new_line + offset, 'SignifyChange', a:path) - let offset += 1 - endwhile - call s:sign_set(new_line + offset - 1, 'SignifyDelete', a:path) - " (old_count < new_count): Lines were added && changed. - else - let offset = 0 - while offset < old_count - call s:sign_set(new_line + offset, 'SignifyChange', a:path) - let offset += 1 - endwhile - while offset < new_count - call s:sign_set(new_line + offset, 'SignifyAdd', a:path) - let offset += 1 - endwhile - endif - endif - endfor + " A new line was added. + if (old_count == 0) && (new_count >= 1) + let offset = 0 + while offset < new_count + call s:sign_set(new_line + offset, 'SignifyAdd', a:path) + let offset += 1 + endwhile + " An old line was removed. + elseif (old_count >= 1) && (new_count == 0) + call s:sign_set(new_line, 'SignifyDelete', a:path) + " A line was changed. + elseif (old_count == new_count) + let offset = 0 + while offset < new_count + call s:sign_set(new_line + offset, 'SignifyChange', a:path) + let offset += 1 + endwhile + else + " Lines were changed && deleted. + if (old_count > new_count) + let offset = 0 + while offset < new_count + call s:sign_set(new_line + offset, 'SignifyChange', a:path) + let offset += 1 + endwhile + call s:sign_set(new_line + offset - 1, 'SignifyDelete', a:path) + " (old_count < new_count): Lines were added && changed. + else + let offset = 0 + while offset < old_count + call s:sign_set(new_line + offset, 'SignifyChange', a:path) + let offset += 1 + endwhile + while offset < new_count + call s:sign_set(new_line + offset, 'SignifyAdd', a:path) + let offset += 1 + endwhile + endif + endif + endfor endfunction " Functions -> s:colors_set() {{{2 function! s:colors_set() abort - if has('gui_running') - if exists('g:signify_sign_color_guibg') - let guibg = g:signify_sign_color_guibg - endif - - if !exists('guibg') - let guibg = synIDattr(hlID('SignColumn'), 'bg', 'gui') - endif - - if exists('g:signify_sign_color_group_add') - exe 'hi! link SignifyAdd '. g:signify_sign_color_group_add - else - let guifg_add = exists('g:signify_sign_color_guifg_add') ? g:signify_sign_color_guifg_add : '#11ee11' - if empty(guibg) || guibg < 0 - exe 'hi SignifyAdd gui=bold guifg='. guifg_add - else - exe 'hi SignifyAdd gui=bold guifg='. guifg_add .' guibg='. guibg - endif - endif - - if exists('g:signify_sign_color_group_delete') - exe 'hi! link SignifyDelete '. g:signify_sign_color_group_delete - else - let guifg_delete = exists('g:signify_sign_color_guifg_delete') ? g:signify_sign_color_guifg_delete : '#ee1111' - if empty(guibg) || guibg < 0 - exe 'hi SignifyDelete gui=bold guifg='. guifg_delete - else - exe 'hi SignifyDelete gui=bold guifg='. guifg_delete .' guibg='. guibg - endif - endif - - if exists('g:signify_sign_color_group_change') - exe 'hi! link SignifyChange '. g:signify_sign_color_group_change - else - let guifg_change = exists('g:signify_sign_color_guifg_change') ? g:signify_sign_color_guifg_change : '#eeee11' - if empty(guibg) || guibg < 0 - exe 'hi SignifyChange gui=bold guifg='. guifg_change - else - exe 'hi SignifyChange gui=bold guifg='. guifg_change .' guibg='. guibg - endif - endif - else - if exists('g:signify_sign_color_ctermbg') - let ctermbg = g:signify_sign_color_ctermbg - endif - - if !exists('ctermbg') - let ctermbg = synIDattr(hlID('SignColumn'), 'bg', 'cterm') - endif - - if exists('g:signify_sign_color_group_add') - exe 'hi! link SignifyAdd '. g:signify_sign_color_group_add - else - let ctermfg_add = exists('g:signify_sign_color_ctermfg_add') ? g:signify_sign_color_ctermfg_add : 2 - if empty(ctermbg) || ctermbg < 0 - exe 'hi SignifyAdd cterm=bold ctermfg='. ctermfg_add - else - exe 'hi SignifyAdd cterm=bold ctermfg='. ctermfg_add .' ctermbg='. ctermbg - endif - endif - - if exists('g:signify_sign_color_group_delete') - exe 'hi! link SignifyDelete '. g:signify_sign_color_group_delete - else - let ctermfg_delete = exists('g:signify_sign_color_ctermfg_delete') ? g:signify_sign_color_ctermfg_delete : 1 - if empty(ctermbg) || ctermbg < 0 - exe 'hi SignifyDelete cterm=bold ctermfg='. ctermfg_delete - else - exe 'hi SignifyDelete cterm=bold ctermfg='. ctermfg_delete .' ctermbg='. ctermbg - endif - endif - - if exists('g:signify_sign_color_group_change') - exe 'hi! link SignifyChange '. g:signify_sign_color_group_change - else - let ctermfg_change = exists('g:signify_sign_color_ctermfg_change') ? g:signify_sign_color_ctermfg_change : 3 - if empty(ctermbg) || ctermbg < 0 - exe 'hi SignifyChange cterm=bold ctermfg='. ctermfg_change - else - exe 'hi SignifyChange cterm=bold ctermfg='. ctermfg_change .' ctermbg='. ctermbg - endif - endif + if has('gui_running') + if exists('g:signify_sign_color_guibg') + let guibg = g:signify_sign_color_guibg endif + + if !exists('guibg') + let guibg = synIDattr(hlID('SignColumn'), 'bg', 'gui') + endif + + if exists('g:signify_sign_color_group_add') + exe 'hi! link SignifyAdd '. g:signify_sign_color_group_add + else + let guifg_add = exists('g:signify_sign_color_guifg_add') ? g:signify_sign_color_guifg_add : '#11ee11' + if empty(guibg) || guibg < 0 + exe 'hi SignifyAdd gui=bold guifg='. guifg_add + else + exe 'hi SignifyAdd gui=bold guifg='. guifg_add .' guibg='. guibg + endif + endif + + if exists('g:signify_sign_color_group_delete') + exe 'hi! link SignifyDelete '. g:signify_sign_color_group_delete + else + let guifg_delete = exists('g:signify_sign_color_guifg_delete') ? g:signify_sign_color_guifg_delete : '#ee1111' + if empty(guibg) || guibg < 0 + exe 'hi SignifyDelete gui=bold guifg='. guifg_delete + else + exe 'hi SignifyDelete gui=bold guifg='. guifg_delete .' guibg='. guibg + endif + endif + + if exists('g:signify_sign_color_group_change') + exe 'hi! link SignifyChange '. g:signify_sign_color_group_change + else + let guifg_change = exists('g:signify_sign_color_guifg_change') ? g:signify_sign_color_guifg_change : '#eeee11' + if empty(guibg) || guibg < 0 + exe 'hi SignifyChange gui=bold guifg='. guifg_change + else + exe 'hi SignifyChange gui=bold guifg='. guifg_change .' guibg='. guibg + endif + endif + else + if exists('g:signify_sign_color_ctermbg') + let ctermbg = g:signify_sign_color_ctermbg + endif + + if !exists('ctermbg') + let ctermbg = synIDattr(hlID('SignColumn'), 'bg', 'cterm') + endif + + if exists('g:signify_sign_color_group_add') + exe 'hi! link SignifyAdd '. g:signify_sign_color_group_add + else + let ctermfg_add = exists('g:signify_sign_color_ctermfg_add') ? g:signify_sign_color_ctermfg_add : 2 + if empty(ctermbg) || ctermbg < 0 + exe 'hi SignifyAdd cterm=bold ctermfg='. ctermfg_add + else + exe 'hi SignifyAdd cterm=bold ctermfg='. ctermfg_add .' ctermbg='. ctermbg + endif + endif + + if exists('g:signify_sign_color_group_delete') + exe 'hi! link SignifyDelete '. g:signify_sign_color_group_delete + else + let ctermfg_delete = exists('g:signify_sign_color_ctermfg_delete') ? g:signify_sign_color_ctermfg_delete : 1 + if empty(ctermbg) || ctermbg < 0 + exe 'hi SignifyDelete cterm=bold ctermfg='. ctermfg_delete + else + exe 'hi SignifyDelete cterm=bold ctermfg='. ctermfg_delete .' ctermbg='. ctermbg + endif + endif + + if exists('g:signify_sign_color_group_change') + exe 'hi! link SignifyChange '. g:signify_sign_color_group_change + else + let ctermfg_change = exists('g:signify_sign_color_ctermfg_change') ? g:signify_sign_color_ctermfg_change : 3 + if empty(ctermbg) || ctermbg < 0 + exe 'hi SignifyChange cterm=bold ctermfg='. ctermfg_change + else + exe 'hi SignifyChange cterm=bold ctermfg='. ctermfg_change .' ctermbg='. ctermbg + endif + endif + endif endfunction " Functions -> s:toggle_signify() {{{2 function! s:toggle_signify() abort - let path = resolve(expand('%:p')) + let path = resolve(expand('%:p')) - if empty(path) - echo "signify: I don't sy empty buffers!" - return - endif + if empty(path) + echo "signify: I don't sy empty buffers!" + return + endif - if has_key(s:sy, path) - if (s:sy[path].active == 1) - let s:sy[path].active = 0 - call s:stop(path) - else - let s:sy[path].active = 1 - call s:start(path) - endif + if has_key(s:sy, path) + if (s:sy[path].active == 1) + let s:sy[path].active = 0 + call s:stop(path) + else + let s:sy[path].active = 1 + call s:start(path) endif + endif endfunction " Functions -> s:toggle_line_highlighting() {{{2 function! s:toggle_line_highlighting() abort - if s:line_highlight - sign define SignifyAdd text=+ texthl=SignifyAdd linehl=none - sign define SignifyDelete text=_ texthl=SignifyDelete linehl=none - sign define SignifyChange text=! texthl=SignifyChange linehl=none - let s:line_highlight = 0 - else - let add = exists('g:signify_line_color_add') ? g:signify_line_color_add : 'DiffAdd' - let delete = exists('g:signify_line_color_delete') ? g:signify_line_color_delete : 'DiffDelete' - let change = exists('g:signify_line_color_change') ? g:signify_line_color_change : 'DiffChange' - exe 'sign define SignifyAdd text=+ texthl=SignifyAdd linehl='. add - exe 'sign define SignifyDelete text=_ texthl=SignifyDelete linehl='. delete - exe 'sign define SignifyChange text=! texthl=SignifyChange linehl='. change - let s:line_highlight = 1 - endif - call s:start(resolve(expand('%:p'))) + if s:line_highlight + sign define SignifyAdd text=+ texthl=SignifyAdd linehl=none + sign define SignifyDelete text=_ texthl=SignifyDelete linehl=none + sign define SignifyChange text=! texthl=SignifyChange linehl=none + let s:line_highlight = 0 + else + let add = exists('g:signify_line_color_add') ? g:signify_line_color_add : 'DiffAdd' + let delete = exists('g:signify_line_color_delete') ? g:signify_line_color_delete : 'DiffDelete' + let change = exists('g:signify_line_color_change') ? g:signify_line_color_change : 'DiffChange' + exe 'sign define SignifyAdd text=+ texthl=SignifyAdd linehl='. add + exe 'sign define SignifyDelete text=_ texthl=SignifyDelete linehl='. delete + exe 'sign define SignifyChange text=! texthl=SignifyChange linehl='. change + let s:line_highlight = 1 + endif + call s:start(resolve(expand('%:p'))) endfunction " Functions -> s:jump_to_next_hunk() {{{2 function! s:jump_to_next_hunk() - let path = resolve(expand('%:p')) + let path = resolve(expand('%:p')) - if !has_key(s:sy, path) - echo "signify: I haven't detected any changes!" - return - endif + if !has_key(s:sy, path) + echo "signify: I haven't detected any changes!" + return + endif - if s:sy[path].last_jump_was_next == 0 - let s:sy[path].id_jump += 2 - endif + if s:sy[path].last_jump_was_next == 0 + let s:sy[path].id_jump += 2 + endif - if s:sy[path].id_jump > s:sy[path].id_top - let s:sy[path].id_jump = s:sy[path].ids[0] - endif + if s:sy[path].id_jump > s:sy[path].id_top + let s:sy[path].id_jump = s:sy[path].ids[0] + endif - exe 'sign jump '. s:sy[path].id_jump .' file='. path + exe 'sign jump '. s:sy[path].id_jump .' file='. path - let s:sy[path].id_jump += 1 - let s:sy[path].last_jump_was_next = 1 + let s:sy[path].id_jump += 1 + let s:sy[path].last_jump_was_next = 1 endfunction " Functions -> s:jump_to_prev_hunk() {{{2 function! s:jump_to_prev_hunk() - let path = resolve(expand('%:p')) + let path = resolve(expand('%:p')) - if !has_key(s:sy, path) - echo "signify: I haven't detected any changes!" - return - endif + if !has_key(s:sy, path) + echo "signify: I haven't detected any changes!" + return + endif - if s:sy[path].last_jump_was_next == 1 - let s:sy[path].id_jump -= 2 - endif + if s:sy[path].last_jump_was_next == 1 + let s:sy[path].id_jump -= 2 + endif - if s:sy[path].id_jump < s:sy[path].ids[0] - let s:sy[path].id_jump = s:sy[path].id_top - endif + if s:sy[path].id_jump < s:sy[path].ids[0] + let s:sy[path].id_jump = s:sy[path].id_top + endif - exe 'sign jump '. s:sy[path].id_jump .' file='. path + exe 'sign jump '. s:sy[path].id_jump .' file='. path - let s:sy[path].id_jump -= 1 - let s:sy[path].last_jump_was_next = 0 + let s:sy[path].id_jump -= 1 + let s:sy[path].last_jump_was_next = 0 endfunction " Functions -> SignifyDebugListActiveBuffers() {{{2 function! SignifyDebugListActiveBuffers() abort - if len(s:sy) == 0 - echo 'No active buffers!' - return - endif + if len(s:sy) == 0 + echo 'No active buffers!' + return + endif - for i in items(s:sy) - echo i - endfor + for i in items(s:sy) + echo i + endfor endfunction + +" vim:set et sw=2 sts=2: