Я пытаюсь изменить файл Python.sublime_syntax по умолчанию, Python.sublime_syntax правильно обрабатывать литералы f-string Pythons. Моя цель состоит в том, чтобы выражения в интерполированных строках были признаны таковыми:
f"hello {person.name if person else 'there'}"
-----------source.python----------
------string.quoted.double.block.python------
Внутри f-строк диапазоны текста между одним { и другим } (но заканчивающиеся перед спецификаторами формата, такие как !r} :<5} и т.д. - см. PEP 498) должны быть распознаны как выражения. Насколько я знаю, это может выглядеть примерно так:
...
string:
- match: "(?<=[^\{]\{)[^\{].*)(?=(!(s|r|a))?(:.*)?\})" # I'll need a better regex
push: expressions
Однако при проверке встроенного файла Python.sublime_syntax контексты строк особенно неудобны для четного подхода (~ 480 строк?), И я не знаю, как начать. Спасибо за кучу за любую информацию.