python - 我们可以使用 Sublime Text 3 中的插件添加/更改范围吗?

标签 python sublimetext3

在自定义 *.sublime-syntax 文件中,我有以下内容:

- match: '(\d+)/(\d+)x (.+)$'
  captures:
    1: constant.numeric.owned.items_tracker
    2: constant.numeric.needed.items_tracker
    3: variable.description.items_tracker

如果捕获 1 大于捕获 2,我想将捕获 3 范围设置为 variable.description.done.items_tracker

我认为在 sublime-syntax 中不可能做到这一点;那么,我可以在插件中使用 python 来实现这一点吗?如何实现?

最佳答案

在 Sublime 中,语法定义是应用范围的唯一方法,并且通过使用正则表达式匹配(例如问题中概述的匹配)来应用范围。

语法工具没有任何类型的直接“条件”逻辑,允许它采取编程操作,例如将匹配项转换为整数,然后比较它们并执行不同的操作。

此外,虽然插件可以随意修改文件的源,但它不能应用范围;这严格是语法定义本身的权限。

因此,在一般情况下,您想要做的事情是不可能直接实现的。一个潜在的解决方法可能是拥有与数值组合一样多的规则,但这并不实用,除非值的总范围以及它们之间的价差非常小。

关于python - 我们可以使用 Sublime Text 3 中的插件添加/更改范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151390/

相关文章:

python - beautifulsoup - TypeError : sequence item 0: expected string, 找到标签

Python设计问题(在这种情况下可以/应该使用装饰器吗?)

windows - Sublime Text 3 上的 SASS - [解码错误 - 输出不是 utf-8]

javascript - 如何在 Sublime 3 中为 tern-js 设置跳转到方法定义键绑定(bind)

python - 两列Python之间的关系

python - 检查网页状态最快的方法是什么?

python - matplotlib 图中等距网格线

search - 如何从 Sublime Text 3 的搜索中永久排除文件夹?

regex - Sublime Text 3中的ignore_words中的正则表达式拼写检查?

python-3.x - Sublime Text 3 和 Python 3 - 异常消息