Hi Thore,

You can probably get away with foldmethod=expr in large files by de-activating
it in Insert mode.  I.e., add this to your after/ftplugin/php.vim:

  augroup FastFold
  autocmd!
  autocmd InsertEnter * if &ft == 'php' | setlocal foldmethod=manual | endif
  autocmd Insertleave * if &ft == 'php' | setlocal foldmethod=expr | endif
  augroup end

I tried it out and it actually seems to work.  Folds are re-evaluated when you
are finished inserting.

HTH,
Peter



--- "Thore B. Karlsen" <[EMAIL PROTECTED]> wrote:

> On Mon, 24 Jul 2006 23:48:12 -0500, Thore B. Karlsen <[EMAIL PROTECTED]>
> wrote:
> 
> >>Hi Thore,
> >>
> >>I've never tried folding like this before, and unfortunately I don't have
> time
> >>to try out this 'optimized' version, but it may work faster for you (I've
> just
> >>replaced the regex matches with stridx and rearranged the code flow):
> >>
> >>  set foldexpr=GetFoldLevel()
> >>
> >>  function! GetFoldLevel()
> >>    let line_text = getline(v:lnum)
> >>
> >>    let left_idx = (stridx(line_text, '{') >= 0)
> >>    let right_idx = (stridx(line_text, '}') >= 0)
> >>
> >>    if left_idx
> >>      if ! right_idx
> >>        return 'a1'
> >>      endif
> >>    elseif right_idx
> >>      return 's1'
> >>    endif
> >>
> >>    return '='
> >>  endfunction
> 
> >Thanks! I did a quick test, and that does appear to speed it up. One
> >of the files that was giving me problems before is now fast enough to
> >work in. There's still a slight latency when I type, but it's much
> >better. I'll do some more testing to see how it works in other files,
> >but this looks promising!
> 
> I spoke too soon. I tested it on another file that is 2500 lines long,
> and it is still unbearably slow. It gets worse towards the end of the
> file, where it can still take seconds for characters to show up when I
> type them. I think I'll have to fire up vim in a profiler to see what
> is causing this slowness, because if this system can compress dozens
> of channels of video in realtime without breaking a sweat it seems
> strange that inserting a character in a smallish text file would be a
> problem.
> 
> -- 
> Be seeing you.
> 
> 


Send instant messages to your online friends http://au.messenger.yahoo.com 

Reply via email to