首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Sublime文本语法: Python 3.6 f-string

Sublime文本语法: Python 3.6 f-string
EN

Stack Overflow用户
提问于 2016-12-05 09:07:25
回答 1查看 2K关注 0票数 18

我正在尝试修改默认的Python.sublime_syntax文件,以正确处理Python的f字符串文字。我的目标是让插值字符串中的表达式被识别为:

代码语言:javascript
复制
f"hello {person.name if person else 'there'}"
         -----------source.python----------
------string.quoted.double.block.python------

在f字符串中,单个{和另一个}之间的文本范围(但在!r}:<5}等格式说明符之前终止-请参阅PEP 498)应被识别为表达式。据我所知,这可能看起来有点像这样:

代码语言:javascript
复制
...
string:
 - match: "(?<=[^\{]\{)[^\{].*)(?=(!(s|r|a))?(:.*)?\})" # I'll need a better regex
   push: expressions

然而,在检查内置的Python.sublime_syntax文件时,字符串上下文尤其难以接近(大约480行?)我不知道该怎么开始。感谢heaps提供的任何信息。

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 07:28:28

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文本的代码片段、语法定义等的创建”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40965686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档