]> git.rmz.io Git - dotfiles.git/blobdiff - vim/indent/cmake.vim
vim: indent/cmake only reindent when entering last char
[dotfiles.git] / vim / indent / cmake.vim
index 421afcb6d75caa459992faa6041989ede444aa1d..854e3cbf28d89c1b8232a33f50fdf2da1226797c 100644 (file)
@@ -17,7 +17,7 @@ endif
 let b:did_indent = 1
 
 setlocal indentexpr=CMakeGetIndent(v:lnum)
-setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE(
+setlocal indentkeys+=0=~ENDIF(,0=~ENDFOREACH(,0=~ENDMACRO(,0=~ELSE(,0=~ELSEIF(,0=~ENDWHILE(
 
 " Only define the function once.
 if exists("*CMakeGetIndent")
@@ -61,7 +61,8 @@ fun! CMakeGetIndent(lnum)
                     \            '\(' . cmake_regex_comment . '\)\?$'
 
   let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*('
-  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*('
+  let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*(' .
+              \ or . ')\s*$'
 
   " Add
   if previous_line =~? cmake_indent_comment_line " Handle comments