On Wed, 3 Feb 2010, Stahlman Family wrote:

> Gregor Uhlenheuer wrote:
> > Hi,
> > 
> > I have got a small problem with a syntax region meant to match some
> > nested comments in a syntax script.
> > 
> > That's the line:
> > syn region mComment start=/\/\*/ end=/\*\// contains=mComment
> > 
> > short example:
> > 
> > /* this should be highlighted as a /* comment */ */
> > this text is correctly not highlighted
> > this text is correctly not highlighted
> > this text is correctly not highlighted
> > 
> > /* this should be highlighted as a /* comment */*/
> > this text is highlighted, but shouldn't
> > this text is highlighted, but shouldn't
> > this text is highlighted, but shouldn't
> > 
> > Somehow the syntax needs that whitespace between the two comment 
> > ends, but it should not. I hope I described my problem 
> > understandable :)
> 
> Gregor,
> 
> Try something like this...
> syn region mComment matchgroup=mCommentMg start=/\/\*/ end=/\*\//
>       \ contains=mComment
> hi link mComment Comment
> hi link mCommentMg Comment
> 
> :help matchgroup
> 

Interesting.  I thought there was something among the things I 
mentioned.  This indeed solves the particular case of */*/ within a 
comment.  To see how it works, link mCommentMg to a different hilight:

:hi link mCommentMg Todo

It's possibly not a perfect solution.  E.g.:

/*/*/  (I'm presuming that should parse as a '/' in a comment)

Also interesting, though, is that Vim's C syntax highlighting tags that 
construct as 'cCommentStartError'.  (because it appears to be a start of a 
nested 
comment, and C-style comments aren't nestable).

Gregor, out of curiosity, for what language are you trying to write a syntax 
script?  If it's for something you're developing, it seems like you 
could avoid a headache by disallowing nesting.  Otherwise, have fun.  
:-)

If you're just worried about forgetting to check for 
comments-within-comments when commenting large blocks, check out The 
NERD Commenter:

http://www.vim.org/scripts/script.php?script_id=1218

-- 
Best,
Ben

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

Reply via email to