diff --git a/after/ftplugin/cmake.vim b/after/ftplugin/cmake.vim index 67ef971..2097737 100644 --- a/after/ftplugin/cmake.vim +++ b/after/ftplugin/cmake.vim @@ -1,17 +1,5 @@ -" TODO Create fold markers based on cmake syntax, eg. -" -" if() <- open -" endif() <- close -" -" foreach() <- open -" endforeach() <- close -" -" and so on for all other begin end style command pairs. -" -" Then change the setting. -" -" setlocal foldmethod=syntax -setlocal foldmethod=indent +" Enable syntax folding, see .vim/after/syntax/cmake.vim +setlocal foldmethod=syntax " Set comment string setlocal commentstring=#%s diff --git a/after/syntax/cmake.vim b/after/syntax/cmake.vim new file mode 100644 index 0000000..71151c1 --- /dev/null +++ b/after/syntax/cmake.vim @@ -0,0 +1,6 @@ +" Transparent regions to enable syntax based folding. +syntax region cmakeIfBlock start='if(.*)' end='endif(.*)' fold transparent keepend +syntax region cmakeFunctionBlock start='function(.*)' end='endfunction(.*)' fold transparent keepend +syntax region cmakeMacroBlock start='macro(.*)' end='endmacro(.*)' fold transparent keepend +syntax region cmakeForeachBlock start='foreach(.*)' end='endforeach(.*)' fold transparent keepend +syntax region cmakeWhileBlock start='while(.*)' end='endwhile(.*)' fold transparent keepend