【发布时间】:2017-04-19 08:10:06
【问题描述】:
我正在尝试修改默认的 Python.sublime_syntax 文件以正确处理 Python 的 f 字符串文字。我的目标是使插值字符串中的表达式被识别为:
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 行?),我不知道如何开始。非常感谢您提供任何信息。
【问题讨论】:
-
使用诸如regex101.com 之类的正则表达式调试器可能有助于解析日志正则表达式模式
-
这个问题现在在
Build 3127中得到修复
标签: python syntax sublimetext3 syntax-highlighting