From 95aea6b533e71e478d61d18fac71cca116c56a4d Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Sun, 22 May 2022 22:47:23 +0100 Subject: Add all the plugins I currently use --- start/signify/autoload/sy/highlight.vim | 94 +++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 start/signify/autoload/sy/highlight.vim (limited to 'start/signify/autoload/sy/highlight.vim') diff --git a/start/signify/autoload/sy/highlight.vim b/start/signify/autoload/sy/highlight.vim new file mode 100644 index 0000000..2ebe507 --- /dev/null +++ b/start/signify/autoload/sy/highlight.vim @@ -0,0 +1,94 @@ +" vim: et sw=2 sts=2 + +scriptencoding utf-8 + +" Init: values {{{1 +if get(g:, 'signify_sign_show_text', 1) + let s:sign_add = get(g:, 'signify_sign_add', '+') + let s:sign_delete_first_line = get(g:, 'signify_sign_delete_first_line', '‾') + let s:sign_change = get(g:, 'signify_sign_change', '!') + let s:sign_changedelete = get(g:, 'signify_sign_changedelete', s:sign_change) +else + let s:sign_add = ' ' + let s:sign_delete_first_line = ' ' + let s:sign_change = ' ' + let s:sign_changedelete = ' ' +endif + +let s:sign_show_count = get(g:, 'signify_sign_show_count', 1) + +" Function: #setup {{{1 +function! sy#highlight#setup() abort + highlight default link SignifyLineAdd DiffAdd + highlight default link SignifyLineDelete DiffDelete + highlight default link SignifyLineDeleteFirstLine SignifyLineDelete + highlight default link SignifyLineChange DiffChange + highlight default link SignifyLineChangeDelete SignifyLineChange + + highlight default link SignifySignAdd DiffAdd + highlight default link SignifySignDelete DiffDelete + highlight default link SignifySignDeleteFirstLine SignifySignDelete + highlight default link SignifySignChange DiffChange + highlight default link SignifySignChangeDelete SignifySignChange +endfunction + +" Function: #line_enable {{{1 +function! sy#highlight#line_enable() abort + execute 'sign define SignifyAdd text='. s:sign_add 'texthl=SignifySignAdd linehl=SignifyLineAdd' + execute 'sign define SignifyChange text='. s:sign_change 'texthl=SignifySignChange linehl=SignifyLineChange' + execute 'sign define SignifyRemoveFirstLine text='. s:sign_delete_first_line 'texthl=SignifySignDeleteFirstLine linehl=SignifyLineDeleteFirstLine' + + if s:sign_show_count + let s:sign_changedelete = substitute(s:sign_changedelete, '^.\zs.*', '', '') + for n in range(1, 9) + execute 'sign define SignifyChangeDelete'. n 'text='. s:sign_changedelete . n 'texthl=SignifySignChangeDelete linehl=SignifyLineChangeDelete' + endfor + execute 'sign define SignifyChangeDeleteMore text='. s:sign_changedelete .'> texthl=SignifySignChangeDelete linehl=SignifyLineChangeDelete' + else + for n in range(1, 9) + execute 'sign define SignifyChangeDelete'. n 'text='. s:sign_changedelete 'texthl=SignifySignChangeDelete linehl=SignifyLineChangeDelete' + endfor + execute 'sign define SignifyChangeDeleteMore text='. s:sign_changedelete 'texthl=SignifySignChangeDelete linehl=SignifyLineChangeDelete' + endif + + let g:signify_line_highlight = 1 +endfunction + +" Function: #line_disable {{{1 +function! sy#highlight#line_disable() abort + execute 'sign define SignifyAdd text='. s:sign_add 'texthl=SignifySignAdd linehl=' + execute 'sign define SignifyChange text='. s:sign_change 'texthl=SignifySignChange linehl=' + execute 'sign define SignifyRemoveFirstLine text='. s:sign_delete_first_line 'texthl=SignifySignDeleteFirstLine linehl=' + + if s:sign_show_count + while strwidth(s:sign_changedelete) > 1 + let s:sign_changedelete = substitute(s:sign_changedelete, '.', '', '') + endwhile + for n in range(1, 9) + execute 'sign define SignifyChangeDelete'. n 'text='. s:sign_changedelete . n 'texthl=SignifySignChangeDelete linehl=' + endfor + execute 'sign define SignifyChangeDeleteMore text='. s:sign_changedelete .'> texthl=SignifySignChangeDelete linehl=' + else + for n in range(1, 9) + execute 'sign define SignifyChangeDelete'. n 'text='. s:sign_changedelete 'texthl=SignifySignChangeDelete linehl=' + endfor + execute 'sign define SignifyChangeDeleteMore text='. s:sign_changedelete 'texthl=SignifySignChangeDelete linehl=' + endif + + let g:signify_line_highlight = 0 +endfunction + +" Function: #line_toggle {{{1 +function! sy#highlight#line_toggle() abort + if get(g:, 'signify_line_highlight') + call sy#highlight#line_disable() + else + call sy#highlight#line_enable() + endif + + redraw! + call sy#start() +endfunction +" }}} + +call sy#highlight#setup() -- cgit v1.2.3