Permalink
Browse files

Fix CR expansion & syn fold enabled by InsertLeave

Benamin Fritz reported the following:

Without the "zv", if the user has syntax folding on, when the mapping
invokes <Esc> the pair of braces which were just separated by a <CR>
could become folded, so that the trailing "o" opens a new line AFTER
the pair.
  • Loading branch information...
1 parent 9c1564a commit 1dfe26a5385de33cd7d9a0175c4fa89defd88386 @Raimondi committed Jun 8, 2012
Showing with 19 additions and 2 deletions.
  1. +3 −1 autoload/delimitMate.vim
  2. +16 −1 test/expand_cr.txt
@@ -418,7 +418,9 @@ function! delimitMate#ExpandReturn() "{{{
" Not sure why I used the previous combos, but I'm sure somebody will tell
" me about it.
- return "\<Esc>a\<CR>\<Esc>O"
+ " XXX zv prevents breaking expansion with syntax folding enabled by
+ " InsertLeave.
+ return "\<Esc>a\<CR>\<Esc>zvO"
else
return "\<CR>"
endif
View
@@ -46,5 +46,20 @@ sub foo {
call setline(1, "\"{bracketed}")
normal A"x
================================================================================
-"{bracketed}"x
+"{bracketed""x
+--------------------------------------------------------------------------------
+# Syntax folding enabled by autocmd breaks expansion. But ti can't be tested
+# with :normal
+new
+autocmd InsertEnter * let w:fdm=&foldmethod | setl foldmethod=manual
+autocmd InsertLeave * let &foldmethod = w:fdm
+set foldmethod=marker
+set foldmarker={,}
+set foldlevel=0
+set backspace=2
+exec "normal iabc {\<CR>x"
+================================================================================
+abc {
+ x
+}
--------------------------------------------------------------------------------

0 comments on commit 1dfe26a

Please sign in to comment.