我正试图修改默认的Python.sublime_syntax
文件,以正确处理Python的f-string文字。我的目标是将插入字符串中的表达式识别为表达式:
f"hello {person.name if person else 'there'}"
-----------source.python----------
------string.quoted.double.block.python------
在 f-strings 中,介于单个 {
和另一个 }
之间的文本范围(但在格式说明符之前终止,如 !r}
,:<5}
等等——请参见 PEP 498),应该被识别为表达式。据我所知,这可能看起来像这样:
...
string:
- match: "(?<=[^\{]\{)[^\{].*)(?=(!(s|r|a))?(:.*)?\})" # I'll need a better regex
push: expressions
然而,在检查内置Python.sublime_syntax
文件时,特别是字符串上下文,它们太笨重了,甚至无法接近(约480行?)我不知道从哪里开始。感谢任何信息。
Build 3127
中修复。 - Rafael