On 9/11/06, Mark Manning <[EMAIL PROTECTED]> wrote:
Hey, I hate to keep barging in here asking questions and such but here
is a new one.  :-)

In the new basic.vim file I am having a problem.  In FreeBasic you can
use both single as well as double quotes to enclose a string.
Unfortunately, you can also have comments which start with a single
quote.  So far I can capture and highlight correctly these three conditions:

1. REM <Comment>
2. <Spaces>'<Comment>
3. :<Spaces><Comment>

What I can not get is the:

1. '<Comment>

Like so:

test.bas
rem This is a comment
    '   This is a comment
    :   '   This is a comment
'   This is a comment too but it doesn't properly highlight.  Instead,
it thinks it is a string.
    end

Here are my commands:

"    Comments
syn match    bSpecial    contained "\\."
syn region  bComment    start="^rem" end="$" contains=bSpecial,bTodo
syn region    bComment    start=":\s*'" end="$" contains=bSpecial,bTodo
syn region    bComment    start="^\s*'" end="$" contains=bSpecial,bTodo

" String and Character contstants
syn region    bString        start='"' end='"' contains=bSpecial,bTodo
syn region    bString        start="'" end="'" contains=bSpecial,bTodo

Suggestions?

Try to reverse order of statements, putting Comment after String. The
last one takes precedence, and you want Comment to take precedence
over string. Like this:

" String must go before Comments
" String and Character contstants
syn region    bString        start='"' end='"' contains=bSpecial,bTodo
syn region    bString        start="'" end="'" contains=bSpecial,bTodo

"    Comments
syn match    bSpecial    contained "\\."
syn region  bComment    start="^rem" end="$" contains=bSpecial,bTodo
syn region    bComment    start=":\s*'" end="$" contains=bSpecial,bTodo
syn region    bComment    start="^\s*'" end="$" contains=bSpecial,bTodo

Yakov

Reply via email to