"Andy Wokula" <anw...@yahoo.de> wrote:

> > In GotoImpl [1], I've implemented the [[:blank_or_comment:]] this
> way:
> >    \(\_s\|/\*.\{-}\*/\|//.*$\)*
> 
> Epanda, for a C-comment, the pattern
>     \/\*\_.\{-}\*\/
> is simpler than what I gave you.
> 
> > (Hum ... oddly I did not use \_. instead of . in the second
> > expression... I guess the pattern should be modified to use the \@
> > multi-items)
> 
> '\@' multi item?

:h /\...@!
:h /\...@=
:h /\@<=
...

(I've never been able to make sense out of them)

> > [1] http://code.google.com/p/lh-vim/wiki/lhCpp and more precisely:
> >
> http://code.google.com/p/lh-vim/source/browse/cpp/trunk/autoload/lh/cpp/AnalysisLib_Function.vim#526
> 
> Result:
>     /)\%(\_s\|\/\*.\{-}\*\/\|\/\/.*$\)*return\>
> 
> Minor difference: it will match wrong code like
> 
> )
> /* */ */
>     return

Worse, with \_. instead of ., it will match
    )
    /* some comment */
    g(42);
  }
  void g(int i) {
    /* other comment  */
    return i;
  }

Hence the need to play with \...@** patterns -- as we need to match:
  )
  /* somme comment
     on several lines */
  return 42;

> Alternative:
>     /)\_s*\%(\%(\/\*.\{-}\*\/\|\/\/.*$\)\_s*\)*return\>
> 
> This way it's easier to restrict the number of comments:
>     /)\_s*\%(\%(\/\*.\{-}\*\/\|\/\/.*$\)\_s*\)\{,5}return\>

-- 
Luc Hermitte
http://lh-vim.googlecode.com/
http://hermitte.free.fr/vim/

-- 
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php

Reply via email to