chroma icon indicating copy to clipboard operation
chroma copied to clipboard

C lexer treats #define as a comment

Open carlynorama opened this issue 1 year ago • 1 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Describe the bug

The C lexer treats #define as a comment in (Looks like C++ does as well), at least the style appears the same.

maybe adding it around line 14?

    <analyse first="true" >
      <regex pattern="(?m)^\s*#include &lt;" score="0.1" />
      <regex pattern="(?m)^\s*#ifn?def " score="0.1" />
    </analyse>

ETA - nope, those are comments, too!

It's fine if they don't get special treatment, but it's rough that they can fade into the comments.

Thank you!

To Reproduce

Reproduced Here

same for include and if

carlynorama avatar Apr 02 '24 15:04 carlynorama

Shorter repro case, for what I believe is the same issue.

#define TEST "//test"

HTML:

<span class="cp">#define TEST &#34;</span><span class="c1">//test&#34;</span>

Expected:

<span class="cp">#define TEST &#34;//test&#34;</span>

Playground link: https://swapoff.org/chroma/playground/#eyJsYW5ndWFnZSI6IkMiLCJzdHlsZSI6Im1vbm9rYWlsaWdodCIsInRleHQiOiIjZGVmaW5lIFRFU1QgXCIvL3Rlc3RcIiIsImNsYXNzZXMiOnRydWV9

Apologies if this is unrelated.

As a side note, this syntax is valid C, I was unsure and tried it. This program prints TEST: //gris.

#include <stdio.h>
#define TEST "//gris"

int main() {
    printf("TEST: %s\n", TEST);
    return 0;
}

walles avatar Aug 11 '24 07:08 walles