gpt4 book ai didi

vim - 如何在 Python 中突出显示成员变量?

转载 作者:行者123 更新时间:2023-12-05 01:20:14 26 4
gpt4 key购买 nike

我正在尝试为 Python 设置某种类型的语法突出显示。

我要selfcls像评论一样突出显示。我希望成员变量像函数一样突出显示。

例如,如果 normal text是(白色),comments是(灰色),和functions是(红色):

self._member

应该是self (灰色). (白色)_member (红色)

self._member.other.method()

应该是self (灰色). (白色)_member (红色).other.method() (白色)

self._method()

应该是self (灰色)._method() (白色)

我尝试复制和修 retrofit 饰器的语法,因为它们看起来很相似,但没有成功。我也拿了look at the docs ,但他们非常激烈。知道我该怎么做吗?

编辑:

几乎明白了:

syn keyword pythonThis   cls self
syn match pythonMember "\(cls\.\|self\.\)\@<=[A-Za-z_]\+\(\.\| \)"

hi link pythonThis Comment
hi link pythonMember Function

唯一的问题是成员变量后面的点是红色而不是白色(self._member.other.method() 没有像上面指定的那样完全突出显示)。没什么大不了的,但如果知道如何在单场比赛中忽略多个组就好了(看来你不能多次使用 \@<=)。

最佳答案

syn keyword pythonThis cls self

syn match pythonChain '\v(^|\W)(cls|self)\zs(\s*\.\s*\h\w*)+' contains=pythonMember
syn match pythonMember '\h\w*' contained

hi link pythonThis Comment
hi link pythonMember Function

关于vim - 如何在 Python 中突出显示成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20279530/

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