From fb6975bfdf58e181fa7a7238c5af5d53083b1f78 Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Wed, 2 Jul 2014 18:38:49 -0400 Subject: [PATCH] Extract autocmd repetition to functions --- plugin/fireplace.vim | 69 +++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/plugin/fireplace.vim b/plugin/fireplace.vim index ce4d5ab..ffc2543 100644 --- a/plugin/fireplace.vim +++ b/plugin/fireplace.vim @@ -1216,23 +1216,26 @@ nnoremap FireplaceDjump :exe Edit('edit', expand(' FireplaceDsplit :exe Edit('split', expand('')) nnoremap FireplaceDtabjump :exe Edit('tabedit', expand('')) +function! s:set_up_source() abort + setlocal includeexpr=tr(v:fname,'.-','/_') + if expand('%:e') ==# 'cljs' + setlocal suffixesadd=.cljs,.cljx,.clj,.java + else + setlocal suffixesadd=.clj,.cljx,.cljs,.java + endif + setlocal define=^\\s*(def\\w* + command! -bar -buffer -nargs=1 -complete=customlist,fireplace#eval_complete Djump :exe s:Edit('edit', ) + command! -bar -buffer -nargs=1 -complete=customlist,fireplace#eval_complete Dsplit :exe s:Edit('split', ) + nmap [ FireplaceDjump + nmap ] FireplaceDjump + nmap FireplaceDsplit + nmap d FireplaceDsplit + nmap gd FireplaceDtabjump +endfunction + augroup fireplace_source autocmd! - autocmd FileType clojure setlocal includeexpr=tr(v:fname,'.-','/_') - autocmd FileType clojure - \ if expand('%:e') ==# 'cljs' | - \ setlocal suffixesadd=.cljs,.cljx,.clj,.java | - \ else | - \ setlocal suffixesadd=.clj,.cljx,.cljs,.java | - \ endif - autocmd FileType clojure setlocal define=^\\s*(def\\w* - autocmd FileType clojure command! -bar -buffer -nargs=1 -complete=customlist,fireplace#eval_complete Djump :exe s:Edit('edit', ) - autocmd FileType clojure command! -bar -buffer -nargs=1 -complete=customlist,fireplace#eval_complete Dsplit :exe s:Edit('split', ) - autocmd FileType clojure nmap [ FireplaceDjump - autocmd FileType clojure nmap ] FireplaceDjump - autocmd FileType clojure nmap FireplaceDsplit - autocmd FileType clojure nmap d FireplaceDsplit - autocmd FileType clojure nmap gd FireplaceDtabjump + autocmd FileType clojure call s:set_up_source() augroup END " Section: Go to file @@ -1278,14 +1281,16 @@ function! s:GF(cmd, file) abort \ '| let &l:path = ' . string(&l:path) endfunction -funct +function! s:set_up_go_to_file() abort + nnoremap gf :exe GF('edit', expand('')) + nnoremap f :exe GF('split', expand('')) + nnoremap :exe GF('split', expand('')) + nnoremap gf :exe GF('tabedit', expand('')) +endfunction augroup fireplace_go_to_file autocmd! - autocmd FileType clojure nnoremap gf :exe GF('edit', expand('')) - autocmd FileType clojure nnoremap f :exe GF('split', expand('')) - autocmd FileType clojure nnoremap :exe GF('split', expand('')) - autocmd FileType clojure nnoremap gf :exe GF('tabedit', expand('')) + autocmd FileType clojure call s:set_up_go_to_file() augroup END " Section: Documentation @@ -1378,18 +1383,22 @@ endfunction nnoremap FireplaceK :=K() nnoremap FireplaceSource :Source +function! s:set_up_doc() abort + command! -buffer -nargs=1 FindDoc :exe s:Lookup('clojure.repl', 'find-doc', printf('#"%s"', )) + command! -buffer -bar -nargs=1 Javadoc :exe s:Lookup('clojure.java.javadoc', 'javadoc', ) + command! -buffer -bar -nargs=1 -complete=customlist,fireplace#eval_complete Doc :exe s:Doc() + command! -buffer -bar -nargs=1 -complete=customlist,fireplace#eval_complete Source :exe s:Lookup('clojure.repl', 'source', ) + setlocal keywordprg=:Doc + if empty(mapcheck('K', 'n')) + nmap K FireplaceK + endif + nmap [d FireplaceSource + nmap ]d FireplaceSource +endfunction + augroup fireplace_doc autocmd! - autocmd FileType clojure setlocal keywordprg=:Doc | - \ if empty(mapcheck('K', 'n')) | - \ nmap K FireplaceK| - \ endif - autocmd FileType clojure nmap [d FireplaceSource - autocmd FileType clojure nmap ]d FireplaceSource - autocmd FileType clojure command! -buffer -nargs=1 FindDoc :exe s:Lookup('clojure.repl', 'find-doc', printf('#"%s"', )) - autocmd FileType clojure command! -buffer -bar -nargs=1 Javadoc :exe s:Lookup('clojure.java.javadoc', 'javadoc', ) - autocmd FileType clojure command! -buffer -bar -nargs=1 -complete=customlist,fireplace#eval_complete Doc :exe s:Doc() - autocmd FileType clojure command! -buffer -bar -nargs=1 -complete=customlist,fireplace#eval_complete Source :exe s:Lookup('clojure.repl', 'source', ) + autocmd FileType clojure call s:set_up_doc() augroup END " Section: Tests