From 02f0120c06ea14ed080e30a9979d253fa27c5a40 Mon Sep 17 00:00:00 2001 From: Shougo Matsushita Date: Wed, 14 Mar 2012 08:49:57 +0900 Subject: [PATCH] - Fixed expand bug. --- .../sources/snippets_complete.vim | 42 +++++++++++++------ doc/neocomplcache-snippets-complete.txt | 1 + 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/autoload/neocomplcache/sources/snippets_complete.vim b/autoload/neocomplcache/sources/snippets_complete.vim index 4d787b3..222a208 100644 --- a/autoload/neocomplcache/sources/snippets_complete.vim +++ b/autoload/neocomplcache/sources/snippets_complete.vim @@ -89,25 +89,33 @@ function! s:source.initialize()"{{{ " Supported conceal features. augroup neocomplcache autocmd BufNewFile,BufRead,ColorScheme * - \ syn match neocomplcacheExpandSnippets - \ '\${\d\+\%(:.\{-}\)\?\\\@\|\$\d\+' conceal cchar=$ + \ execute 'syn match neocomplcacheExpandSnippets' + \ "'".s:get_placeholder_marker_pattern(). '\|' + \ .s:get_sync_placeholder_marker_pattern().'\|' + \ .s:get_mirror_placeholder_marker_pattern()."'" + \ 'conceal cchar=$' augroup END else augroup neocomplcache autocmd BufNewFile,BufRead,ColorScheme * - \ syn match neocomplcacheExpandSnippets - \ '\${\d\+\%(:.\{-}\)\?\\\@\|\$\d\+' + \ execute 'syn match neocomplcacheExpandSnippets' + \ "'".s:get_placeholder_marker_pattern(). '\|' + \ .s:get_sync_placeholder_marker_pattern().'\|' + \ .s:get_mirror_placeholder_marker_pattern()."'" augroup END endif hi def link NeoComplCacheExpandSnippets Special command! -nargs=? -complete=customlist,neocomplcache#filetype_complete - \ NeoComplCacheEditSnippets call s:edit_snippets(, 0) + \ NeoComplCacheEditSnippets + \ call s:edit_snippets(, 0) command! -nargs=? -complete=customlist,neocomplcache#filetype_complete - \ NeoComplCacheEditRuntimeSnippets call s:edit_snippets(, 1) + \ NeoComplCacheEditRuntimeSnippets + \ call s:edit_snippets(, 1) command! -nargs=? -complete=customlist,neocomplcache#filetype_complete - \ NeoComplCacheCachingSnippets call s:caching_snippets() + \ NeoComplCacheCachingSnippets + \ call s:caching_snippets() " Select mode mappings. if !exists('g:neocomplcache_disable_select_mode_mappings') @@ -543,9 +551,10 @@ function! neocomplcache#sources#snippets_complete#expand(cur_text, col, trigger_ let next_col = len(snippet_lines[-1]) + 1 let snippet_lines[-1] = snippet_lines[-1] . next_line - call setline(line('.'), snippet_lines) - call cursor(0, next_col) - + call setline(line('.'), snippet_lines[0]) + if len(snippet_lines) > 1 + call append(line('.'), snippet_lines[1:]) + endif call s:indent_snippet(begin_line, end_line) if has('folding') && foldclosed(line('.')) " Open fold. @@ -770,9 +779,18 @@ function! neocomplcache#sources#snippets_complete#get_snippets()"{{{ return snippets endfunction"}}} -function! s:SID_PREFIX() +function! s:get_placeholder_marker_pattern()"{{{ + return '\${\d\+\%(:.\{-}\)\?\\\@' +endfunction"}}} +function! s:get_mirror_placeholder_marker_pattern()"{{{ + return '\$\d\+' +endfunction"}}} +function! s:SID_PREFIX()"{{{ return matchstr(expand(''), '\d\+_') -endfunction +endfunction"}}} " Plugin key-mappings. inoremap (neocomplcache_snippets_expand) diff --git a/doc/neocomplcache-snippets-complete.txt b/doc/neocomplcache-snippets-complete.txt index 8bd76df..2084b43 100644 --- a/doc/neocomplcache-snippets-complete.txt +++ b/doc/neocomplcache-snippets-complete.txt @@ -297,6 +297,7 @@ CHANGELOG *neocomplcache-snippets-complete-changelog* 2012-03-14 - Refactored expand snippet behavior. +- Fixed expand bug. 2012-03-08 - Use shiftwidth instead of softabstop.