watermarkhu / textmate-grammar-python

Python lexer and tokenizer based on textmate grammars
https://textmate-grammar-python.readthedocs.io
MIT License
8 stars 2 forks source link

invalid backref number/name with python tm language json #72

Open nitanmarcel opened 2 weeks ago

nitanmarcel commented 2 weeks ago

https://github.com/microsoft/vscode/blob/main/extensions/python/syntaxes/MagicPython.tmLanguage.json

Traceback (most recent call last):
  File "/home/nitanmarcel/projects/prompt-mate/prompt_mate/lexer.py", line 11, in <module>
    parser = GrammarParser(data)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/prompt_mate/grammar.py", line 6, in __init__
    super().__init__(grammar, **kwargs)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parsers/base.py", line 66, in __init__
    self.repository[key] = GrammarParser.initialize(
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parser.py", line 38, in initialize
    return PatternsParser(grammar, **kwargs)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parser.py", line 327, in __init__
    self.patterns = [
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parser.py", line 328, in <listcomp>
    self.initialize(pattern, language_parser=self.language_parser)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parser.py", line 34, in initialize
    return BeginEndParser(grammar, **kwargs)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/textmate_grammar/parser.py", line 513, in __init__
    self.exp_end = re.compile(grammar["end"])
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/onigurumacffi.py", line 179, in compile
    _compile_regex_t(pattern, regex)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/onigurumacffi.py", line 174, in _compile_regex_t
    _check(ret, err_info)
  File "/home/nitanmarcel/.pyenv/versions/3.10.15/lib/python3.10/site-packages/onigurumacffi.py", line 38, in _check
    raise OnigError(_err(code, *args))
onigurumacffi.OnigError: invalid backref number/name
nitanmarcel commented 2 weeks ago

Looks like captures need to be replaced

https://github.com/microsoft/vscode-textmate/blob/7e0ea282f4f25fef12a6c84fa4fa7266f67b58dc/src/utils.ts#L59