> -----Messaggio originale-----
> Da: Benji Fisher [mailto:[EMAIL PROTECTED]
> Inviato: giovedì 13 luglio 2006 15.35
> A: vim
> Cc: Dan Sharp
> Oggetto: Re: matchit doesn't work for php
> 
> On Thu, Jul 13, 2006 at 06:42:43AM +0200, Cesar Romani wrote:
> >
> > In the following function the bracket at 3 doesn't match the bracket at
> 17
> > And the bracket at 5 doesn't match the bracket at 8
> >
> >  1 <?php
> >  2   function test1($a,$b,$c,$d,$e,$f)
> >  3   {
> >  4     if($e=='hola')
> >  5     {
> >  6       if($f=='') $f='1000';
> >  7       $s='{'.$d.':'.$f.'}amigo';
> >  8     }
> >  9     else
> > 10     {
> > 11       $s='{'.$d.':'.$f.'}amiga';
> > 12     }
> > 13     $this->s=$s;
> > 14     $this->a=$a;
> > 15     $this->b=$b;
> > 16     $this->c=$c;
> > 17   }
> > 18 ?>
> >
> > Many thanks in advance.
> >
> > Cesar
> 
>      The problem is that "{" is included in the 'matchpairs' option but
> not in b:match_words.  The matchit script recognizes that "{" is a
> matching character, but does not have a rule for it, so it defaults to
> the built-in % matching behavior.  You can confirm this with
> 
> :normal! %
> 
>      The solution is to add '{:}' to b:match_words ; probably also '(:)'
> and '[:]' while you are at it.  Also, I notice that ftplugin/php.vim
> :source's ftplugin/html.vim and so inherits the HTML setting of
> b:match_skip .  I think that PHP would do better with the default skip
> behavior, so it should :unlet this variable.
> 
>      I am cc'ing the maintainer of ftplugin/php.vim .
> 
> HTH                                   --Benji Fisher

Thanks a lot, it works but I also notice that "else if" is not part of the
matching, although "else if" is a valid expression in php:
It matches if, else, elseif
but it doesn't match if, else, else if
How can I include "else if" in the matching?
Many thanks in advance.

Cesar

Reply via email to