Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Higher priority for certain things inside a comment #332

Open
MetRonnie opened this issue Nov 11, 2022 · 3 comments
Open

Higher priority for certain things inside a comment #332

MetRonnie opened this issue Nov 11, 2022 · 3 comments

Comments

@MetRonnie
Copy link

MetRonnie commented Nov 11, 2022

Templating languages often get executed prior to whatever language the file is written in, so even if a templating block is inside a comment it will still get executed.

For example, Jinja2:

GitHub theme - displays as comment (incorrect):

image

Default Dark+ - displays as normal (correct):

image

Scopes:

# foo {% foo %}
^^^^^^^^^^^^^^^ comment.line.cylc, source.cylc
      ^^        punctuation.definition.template-expression.begin.jinja, source.jinja, meta.embedded.block.jinja,  comment.line.cylc, source.cylc    
             ^^ punctuation.definition.template-expression.end.jinja, source.jinja, meta.embedded.block.jinja,  comment.line.cylc, source.cylc    
      ^^^^^^^^^ source.jinja, meta.embedded.block.jinja, comment.line.cylc, source.cylc    

foreground for GitHub theme:

# foo {% foo %}
  ^^^^^^^^^^^^^ comment

foreground for Default Dark+:

# foo {% foo %}
  ^^^^          comment
      ^^        punctuation.definition.template-expression.begin 
             ^^ punctuation.definition.template-expression.begin 
        ^^^^^   meta.embedded
@MetRonnie MetRonnie changed the title Higher priority for templating source language inside a comment Higher priority for certain things inside a comment Nov 11, 2022
@simurai
Copy link
Contributor

simurai commented Jan 3, 2023

What's the steps to reproduce the issue inside VS Code? I tried the following with the example code of:

# Jinja2 in a comment should not display as commented out
# foo {% foo %}
foo {% foo %}
  1. Add a new file with .jinja2 extension
  2. Let VS code auto-detect the language

It picked C, but I assume an additional extension needs to be installed?

Screen Shot 2023-01-03 at 16 26 38

@MetRonnie
Copy link
Author

MetRonnie commented Jan 3, 2023

It needs a VSCode language that supports embedded languages. For example Cylc (cylc.vscode-cylc) supports embedded Jinja2 (no need to have any Jinja2 language installed).

I think the key difference between GitHub theme and Default Dark+ is that the former just gives a comment.line.cylc, meta.embedded.block.jinja-scoped token a foreground colour of comment whereas the latter defers to the usual foreground colours for a non-comment meta.embedded.block.jinja token, if that makes any sense (I've updated the OP slightly to help clarify this).

@simurai
Copy link
Contributor

simurai commented Jan 17, 2023

Maybe we could be less strict with this line:

- "meta.embedded.expression"
+ "meta.embedded"

Then the meta.embedded scope overrides the comment scope for lines with meta.embedded.block.jinja:

Before After
Screen Shot 2023-01-17 at 17 06 03 Screen Shot 2023-01-17 at 17 06 59

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants