11

例如,我想在我的 Python 文档字符串中突出显示@param@type@return(即 epytext 声明)。我已经想出了如何通过简单的编辑来做到这一点Python/Python.tmLanguage;但是,出于以下几个原因,我真的很想把它放在自己的文件中:

  1. 我并不总是想应用此突出显示。它仅适用于使用epydoc作为文档工具的项目;在其他项目中,我想突出显示reStructuredText
  2. 当 Sublime Text 更新时,我希望将自己的语法覆盖到包含的功能上。Sublime 的作者可能会选择在未来的版本中包含 Python 的几个特性,我不想在每次更新修改基本 Python 语法定义时手动找出我更改了​​什么。
  3. 我在版本控制中保留了自己的编辑器配置,但我希望那是我自己的原创;我不想背负着必须携带 Sublime 附带的语法定义的副本(可能是专有的?我不知道,它似乎没有独立的许可证)。

有没有办法将突出显示规则放入单独的文件中,也许只适用于特定范围?

4

1 回答 1

8

在我看来,您想创建自己的语法文件,从 Python 语法文件 ( source.python) 继承,并在那里进行更改和自定义。Sublime Text 2 使用.tmLanguage 格式的语法文件,这有点复杂,但幸运的是大部分工作已经为你完成,只是继承自source.python.

您要做的是设置一个正则表达式模式来匹配您要突出显示的子字符串,并为该模式命名;之类punctuation.definition.comment.epydoc的,要遵循中设置的约定Java/JavaDoc.tmLanguage。然后,检查您的配色方案文件(以 结尾.tmTheme)并确保您选择的范围有设置 - 或其父级之一,因为 ST2 应该为这类事情使用适当的范围规则。

要使用您创建的语法文件,请将其粘贴Packages/User(以便 ST2 在升级时不会覆盖它),在编辑器中打开一个 Python 文件,然后从右下角的下拉列表中选择您的新语法窗户。如果您已正确设置所有内容,则 epydoc 字符串应更改为您在配色方案中设置的任何颜色。

祝你好运!当你有一个有效的语法文件时,在某个地方发布一个链接,这样其他人也可以看到和使用它!

于 2012-11-09T23:18:45.360 回答