diff --git a/delimitMate.txt b/delimitMate.txt index 1961b94..0cc693c 100644 --- a/delimitMate.txt +++ b/delimitMate.txt @@ -1,4 +1,4 @@ -*delimitMate.txt* Trying to keep those beasts at bay! +*delimitMate.txt* Trying to keep those beasts at bay! v.1.5 REFERENCE MANUAL * @@ -372,10 +372,16 @@ This script was inspired by the auto-completion of delimiters of TextMate. 8. HISTORY *delimitMateHistory* Version Date Release notes ~ +|---------|------------|-----------------------------------------------------| + 1.5 2009-10-05 Fix: delimitMate should work correctly for files + passed as arguments to Vim. Thanks to Ben Beuchler + for helping to nail this bug. + |---------|------------|-----------------------------------------------------| 1.4 2009-09-27 Fix: delimitMate is now enabled on new buffers even if they don't have set the file type option or were opened directly from the terminal. + |---------|------------|-----------------------------------------------------| 1.3 2009-09-24 Now local options can be used along with autocmd for specific file type configurations. @@ -395,12 +401,15 @@ This script was inspired by the auto-completion of delimiters of TextMate. the cursor would jump to the right. - New buffer inside the current window wouldn't have the mappings set. + |---------|------------|-----------------------------------------------------| 1.1 2009-08-25 Fixed an error that ocurred when mapleader wasn't set and added support for GetLatestScripts auto-detection. + |---------|------------|-----------------------------------------------------| 1.0 2009-08-23 Initial upload. + |---------|------------|-----------------------------------------------------| vim:tw=78:ts=8:ft=help:norl: diff --git a/delimitMate.vim b/delimitMate.vim index 31c5b30..ff8afd9 100644 --- a/delimitMate.vim +++ b/delimitMate.vim @@ -1,6 +1,6 @@ " ============================================================================ " File: delimitMate.vim -" Version: 1.4 +" Version: 1.5 " Description: This plugin tries to emulate the auto-completion of delimiters " that TextMate provides. " Maintainer: Israel Chauca F. @@ -343,7 +343,7 @@ endfunction "}}}1 function! s:ExtraMappings() "{{{1 " If pair is empty, delete both delimiters: - inoremap WithinEmptyPair() ? "" : "\" + inoremap WithinEmptyPair() ? "\\\" : "\" " Expand return if inside an empty pair: inoremap =ExpandReturn() @@ -407,39 +407,58 @@ function! s:SwitchAutoclose() "{{{1 endfunction "}}}1 function! s:UnMap() " {{{ - + " No Autoclose Mappings: for char in s:right_delims + s:quotes - if maparg(char,"i") =~ 'SkipDelim' + if maparg(char,"i") =~? 'SkipDelim' exec 'iunmap ' . char "echomsg 'iunmap ' . char endif endfor - for char in s:right_delims + s:left_delims + s:quotes - if maparg(s:visual_leader . char,"v") =~ 'IsBlock' - exec 'vunmap ' . s:visual_leader . char - "echomsg 'vunmap ' . s:visual_leader . char - endif - endfor + + " Autoclose Mappings: let s:i = 0 while s:i < len(s:matchpairs) - if maparg(char,"i") =~ s:left_delims[s:i] . s:right_delims[s:i] . '' - exec 'iunmap ' . char - "echomsg 'iunmap ' . char + if maparg(s:left_delims[s:i],"i") =~? s:left_delims[s:i] . s:right_delims[s:i] . '' + exec 'iunmap ' . s:left_delims[s:i] + "echomsg 'iunmap ' . s:left_delims[s:i] endif let s:i += 1 endwhile for char in s:quotes - if maparg(char, "i") =~ 'QuoteDelim' + if maparg(char, "i") =~? 'QuoteDelim' exec 'iunmap ' . char "echomsg 'iunmap ' . char endif endfor for char in s:right_delims - if maparg(char, "i") + if maparg(char, "i") =~? 'ClosePair' exec 'iunmap ' . char "echomsg 'iunmap ' . char endif endfor + + " Visual Mappings: + for char in s:right_delims + s:left_delims + s:quotes + if maparg(s:visual_leader . char,"v") =~? 'IsBlock' + exec 'vunmap ' . s:visual_leader . char + "echomsg 'vunmap ' . s:visual_leader . char + endif + endfor + + " Expansion Mappings: + if maparg('', "i") =~? 'WithinEmptyPair' + iunmap + "echomsg "iunmap " + endif + if maparg('',"i") =~? 'ExpandReturn' + iunmap + "echomsg "iunmap " + endif + if maparg('',"i") =~? 'ExpandSpace' + iunmap + "echomsg "iunmap " + endif + endfunction " }}} function! s:TestMappingsDo() "{{{1 @@ -459,12 +478,17 @@ function! s:DelimitMateDo() "{{{1 if exists("g:delimitMate_excluded_ft") for ft in split(g:delimitMate_excluded_ft,',') if ft ==? &filetype + if !exists("s:quotes") + return 1 + endif + "echomsg "excluded" call s:UnMap() return 1 endif endfor endif try + "echomsg "included" let save_cpo = &cpo set cpo&vim call s:Init() @@ -484,10 +508,13 @@ command! DelimitMateReload call s:DelimitMateDo() command! DelimitMateTest call s:TestMappingsDo() " Run on file type events. -autocmd VimEnter * autocmd FileType * call DelimitMateDo() +"autocmd VimEnter * autocmd FileType * call DelimitMateDo() +autocmd FileType * call DelimitMateDo() " Run on new buffers. autocmd BufNewFile,BufRead,BufEnter * if !exists("b:loaded_delimitMate") | call DelimitMateDo() | endif +"function! s:GetSynRegion () | echo synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name') | endfunction + " GetLatestVimScripts: 2754 1 :AutoInstall: delimitMate.vim " vim:foldmethod=marker:foldcolumn=2