From 3d1a4de093971c0694c2b517d7b05fccfc0aa1b1 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 8 Mar 2018 22:08:31 -0500 Subject: move autobrace to its own repository --- .gitmodules | 3 + vim/pack/plugins/start/autobrace | 1 + vim/plugin/autobrace.vim | 141 --------------------------------------- vimrc | 1 + 4 files changed, 5 insertions(+), 141 deletions(-) create mode 160000 vim/pack/plugins/start/autobrace delete mode 100644 vim/plugin/autobrace.vim diff --git a/.gitmodules b/.gitmodules index 9d20cdf..deb421d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -100,3 +100,6 @@ [submodule "vim/pack/plugins/start/diff-changes"] path = vim/pack/plugins/start/diff-changes url = git://github.com/doy/vim-diff-changes +[submodule "vim/pack/plugins/start/autobrace"] + path = vim/pack/plugins/start/autobrace + url = git://github.com/doy/vim-autobrace diff --git a/vim/pack/plugins/start/autobrace b/vim/pack/plugins/start/autobrace new file mode 160000 index 0000000..0113c56 --- /dev/null +++ b/vim/pack/plugins/start/autobrace @@ -0,0 +1 @@ +Subproject commit 0113c56e537e0ebf5e41fadcc9fb52cb3af8e04a diff --git a/vim/plugin/autobrace.vim b/vim/plugin/autobrace.vim deleted file mode 100644 index 09ab06c..0000000 --- a/vim/plugin/autobrace.vim +++ /dev/null @@ -1,141 +0,0 @@ -let s:pair_chars = { -\ '(': ')', -\ '[': ']', -\ '{': '}', -\} -let s:pair_cr_maps = { -\ ')': "go_up()", -\ ']': "go_up()", -\ '}': "go_up()", -\} -let s:pair_bs_maps = { -\ '"': "maybe_remove_adjacent_char('\"')", -\ "'": "maybe_remove_adjacent_char(\"'\")", -\ '(': "maybe_remove_empty_pair(')')", -\ '[': "maybe_remove_empty_pair(']')", -\ '{': "maybe_remove_empty_pair('}')", -\ '': "maybe_collapse_pair()", -\} - -function! s:move_cursor_left() - return "\i" -endfunction - -function! s:skip_closing_char(char) - if s:nextchar() == a:char - return "\la" - else - return a:char - endif -endfunction - -function! s:has_bs_mapping(char) - return has_key(s:pair_bs_maps, a:char) -endfunction - -function! s:run_bs_mapping(char) - return eval(s:pair_bs_maps[a:char]) -endfunction - -function! s:has_cr_mapping(char) - return has_key(s:pair_cr_maps, a:char) -endfunction - -function! s:run_cr_mapping(char) - return eval(s:pair_cr_maps[a:char]) -endfunction - -function! s:go_up() - return "\\O" -endfunction - -function! s:maybe_remove_adjacent_char(char) - if s:nextchar() == a:char - return "\\" - else - return "\" - endif -endfunction - -function! s:maybe_remove_empty_pair(char) - let l:start = [line('.'), col('.')] - let l:end = searchpos('[^ \t]', 'cnWz') - if l:end == [0, 0] - return "\" - endif - - let l:next_nonblank = s:charat(l:end[0], l:end[1]) - if l:next_nonblank != a:char - return "\" - endif - - let l:diff = [l:end[0] - l:start[0], l:end[1] - l:start[1]] - if l:diff[0] == 0 - return "\" . repeat("\", l:diff[1] + 1) - elseif l:diff[0] == 1 - return "\" . (l:diff[0] + 1) . "Ji" . "\\" - else - return "\" . (l:diff[0] + 1) . "Ji" . "\\\" - endif -endfunction - -function! s:maybe_collapse_pair() - let l:prev_line_idx = line('.') - 1 - if l:prev_line_idx < 1 - return "\" - endif - - let l:prev_line_char = s:charat(l:prev_line_idx, col([l:prev_line_idx, '$']) - 1) - if l:prev_line_char !~ '[([{]' - return "\" - endif - - let l:end = searchpos('[^ \t]', 'cnWz') - if l:end == [0, 0] - return "\" - endif - - let l:next_nonblank = s:charat(l:end[0], l:end[1]) - if l:next_nonblank != s:pair_chars[l:prev_line_char] - return "\" - endif - - return "\\" . (l:end[0] - l:prev_line_idx + 1) . "Ji\" -endfunction - -function! s:prevchar() - return s:charat(line('.'), col('.') - 1) -endfunction - -function! s:nextchar() - return s:charat(line('.'), col('.')) -endfunction - -function! s:charat(line, col) - return getline(a:line)[a:col - 1] -endfunction - -for [s:start, s:end] in [['(', ')'], ['{', '}'], ['[', ']']] - exe "inoremap ".s:start. - \ " ".s:start.s:end."=move_cursor_left()" - exe "inoremap ".s:end. - \ " =skip_closing_char('".s:end."')" -endfor -inoremap ' - \ nextchar() == "'" - \ ? "\=\skip_closing_char(\"'\")\" - \ : col('.') == 1 \|\| match(prevchar(), '\W') != -1 - \ ? "''\=\move_cursor_left()\" - \ : "'" -inoremap " - \ nextchar() == '"' - \ ? "\=\skip_closing_char('\"')\" - \ : "\"\"\=\move_cursor_left()\" -inoremap - \ has_bs_mapping(prevchar()) - \ ? "\=\run_bs_mapping(\prevchar())\" - \ : "\" -inoremap - \ has_cr_mapping(nextchar()) - \ ? "\=\run_cr_mapping(\nextchar())\" - \ : "\" diff --git a/vimrc b/vimrc index 3ca23f1..fe01d12 100644 --- a/vimrc +++ b/vimrc @@ -67,6 +67,7 @@ let g:ale_history_enabled = 0 let g:ale_history_log_output = 0 " }}} " airline +" autobrace " commentary {{{ map x :Commentary " }}} -- cgit v1.2.3-54-g00ecf