From dd5427baaf49f8de4355abeb6bc8c6dd14f74e25 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Wed, 7 Oct 2009 17:05:19 +0200 Subject: Initial check-in of files --- .vim/plugin/scmCloseParens.vim | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .vim/plugin/scmCloseParens.vim (limited to '.vim/plugin/scmCloseParens.vim') diff --git a/.vim/plugin/scmCloseParens.vim b/.vim/plugin/scmCloseParens.vim new file mode 100644 index 0000000..8aca684 --- /dev/null +++ b/.vim/plugin/scmCloseParens.vim @@ -0,0 +1,58 @@ +" Description: Simple script (hack ?) that closes opened parens +" Author: Adrien Pierard +" Modified: 04/05/07 +" Version: 0.1 +" +" Usage: I mapped it to p +" So, just go to normal mode, and type the shortcut, or :call +" RunScmCloseParens() yourself + + +let b:msg = "" +let b:bcpt = 0 + +function! SetCursorWhereItIsGoodToPutItEh() + let line = substitute(getline("."), "\\s\\+$", "", "") + call setline(line("."),line) + norm $ + let charUnderCursor = strpart(line("."), col(".") - 1, 1) + norm a) + call CountAsMuchAsPossible() +endfunction + +function! CountAsMuchAsPossible() + let cpt = 0 + while (CanWeGoOn() > 0) + let cpt = cpt + 1 + call OhGetBackAndSetAnotherOne() + endwhile + let line = substitute(getline("."), ")$", "", "") + call setline(line("."),line) + let b:cpt = cpt +endfunction + +function! CanWeGoOn() + return (searchpair('(', '', ')' , 'b' )) +endfunction + +function! OhGetBackAndSetAnotherOne() + call searchpair('(', '', ')') + norm a) + +endfunction + +function! InitScmCloseParens() + if ! exists("g:ScmCloseParens") + let g:ScmCloseParens = "Scheme on you !" + execute 'nmap p :call RunScmCloseParens()' + endif +endfunction + +fun! RunScmCloseParens() + let b:bcpt = 0 + call SetCursorWhereItIsGoodToPutItEh() + norm :echo b:bcpt +endfunction + +call InitScmCloseParens() + -- cgit v1.2.3-54-g00ecf