On 3/1/07, MM <[EMAIL PROTECTED]> wrote:
How do I create folds such that it starts at matched expression and
ends at the line containing  part of the matched expression.
e.g i'd like to fold

procedure xyz ( .....
:
:
:
:
:
end xyz;


Does this do what you want (untested):

let REGEX1='^procedure'
let REGEX2='^end'
set foldmethod=expr foldexpr=MyFoldLevel()
function! MyFoldLevel()
   let line=getline(v:lnum)
   if line =~ REGEX1
      return "a1"      " increase foldlevel
   elseif line =~ REGEX2
       return "s1"     " decrease foldlevel
   else
       return '='      " foldlevel same as previous
   endif
endfunc

Yakov

Reply via email to