eclipse-xtext / eclipse-xtext/xtext

Textmate grammar generator produces broken expression for comments

Open
#3,596 17 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
831
Forks
330
Avg merge
3d 7h
Merged PRs (30d)
12

Description

After running the generator from #1329 for our grammar, the resulting expression for comments is this:

"match": "/\\*\\*[^\\*](/\\*[^\\*]//[^\\\n\\\r]*(\\\r?\\\n)?",

First, its missing a closing bracket:

"match": "/\\*\\*[^\\*](/\\*[^\\*]//[^\\\n\\\r]*(\\\r?\\\n)?)",

With this change, I do get highlighting in VS Code (using the generated JSON file), but comments still don't work. So something in the expression is still broken. Its not clear where the missing bracket belongs, I tried different places and it doesn't help making comments work.

This website is useful for quick testing: https://www.leskoff.com/s02050-0

The rules for comments we have are:

terminal DOC_COMMENT:
    '/**' !'*' -> '*/'
;
@Override
terminal ML_COMMENT:
    ('/*' !'*' -> '*/') | ('/***' -> '*/')
;
@Override
terminal SL_COMMENT:
    '//' !('\n'|'\r')* ('\r'? '\n')?
;

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the TextMate grammar generator introduced by #1329 and reproduce the generated JSON for the DOC_COMMENT, ML_COMMENT, and SL_COMMENT rules shown here. Check the generated match expression with the linked regex tester and VS Code; done means the expression is valid and all three comment forms highlight correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.