gpt4 book ai didi

python - Sublime Text 语法 : Python 3. 6 个 f 字符串

转载 作者:IT老高 更新时间:2023-10-28 21:05:09 25 4
gpt4 key购买 nike

我正在尝试修改默认 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 行?),我不知道如何开始。非常感谢您提供任何信息。

最佳答案

BUILD 3127 中对语法高亮进行了更新(其中包括:对 Python 语法高亮的重大改进)。

但是,一些用户表示,在 BUILD 3176 中,语法高亮仍未设置为正确高亮位于 f 字符串中的 Python 表达式。根据@Jollywatt,它被设置为 source.python f"string.quoted.double.block {constant.other.placeholder}" 而不是 f"string.quoted.double.block {source.python}"

看来 Sublime 使用了这个工具,PackageDev , “以简化 Sublime Text 的片段、语法定义等的创建。”

关于python - Sublime Text 语法 : Python 3. 6 个 f 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40965686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com