On Mon, 24 Jul 2006 13:06:47 -0500, Gautam Iyer
<[EMAIL PROTECTED]> wrote:

>> I use foldmethod=expr with the following foldexpr:
>> 
>> set foldexpr=GetFoldLevel(v:lnum) 
>> 
>> function! GetFoldLevel(line) 
>>    let line_text = getline(a:line) 
>>    if (line_text =~ '\%({.*}\)\|\%(}.*{\)')
>>       return '=' 
>>    elseif (line_text =~ '{') 
>>       return "a1" 
>>    elseif (line_text =~ '}') 
>>       return "s1" 
>>    endif 
>>    return '=' 
>> endfunction 

>I haven't read the above too carefully: But if all you want to do is
>fold your code based on {...} blocks, then use Vim 7 and set fdm=syntax
>(for C / C++ files).

Unfortunately, that doesn't work for the way I do my folding. I also
insert braces manually in comments where I want folds, e.g.:

  //@{ Private data.

  private int blah;

  //@}

>Incidentally, fdm=syntax is also slow (though much much faster than
>fdm=expr). I could (grudgingly) live with a short delay when first
>loading the file. The thing that bothers me is that when I switch
>between buffers, Vim takes it's own sweet time to get the syntax based
>folding right.

I wonder why, because you'd think it would be about the same work as
just figuring out the syntax highlighting?

>So I only enable syntax folding for files that have less than 3000
>lines. Once my clever spies steal Benji Fisher's computer, I'm going to
>up this limit to 18000.

I have a quad qore Opteron machine, perhaps if vim could take
advantage of all the CPUs it would be tolerable. :)

-- 
Be seeing you.

Reply via email to