我使用Smarty生成 html 模板。我目前使用 html 突出显示,这很好,除了它不突出 smarty 标签,例如{foreach}
我尝试安装 Smarty 包,但这看起来不太好。
所以基本上我需要能够将大括号内的任何内容突出显示到标准 HTML 着色中。如何才能做到这一点?
我使用Smarty生成 html 模板。我目前使用 html 突出显示,这很好,除了它不突出 smarty 标签,例如{foreach}
我尝试安装 Smarty 包,但这看起来不太好。
所以基本上我需要能够将大括号内的任何内容突出显示到标准 HTML 着色中。如何才能做到这一点?
@MattDMo 是正确的,.tmTheme
文件是控制突出显示的主要文件。它是一个带有一系列正则表达式和标记的 XML 文件,这些正则表达式和标记表示哪个 RegEx 匹配哪种类型的句法元素。
你可以在 GitHub 上搜索,发现很多人已经创建了包含.tmTheme
文件的 Sublime Text 包。请注意,您可以直接使用为 TextMate 创建的包,因为 Sublime Text 使用相同的约定。(至少就文件而言,这是正确的.tmTheme
。.tmPreferences
)
例如,我可以直接为 ChucK 语言获取一个语法高亮包,最初是为 TextMate 制作的,并使用它 SublimeText2。通过.tmTheme
复制与 TextMate 一起使用的文件立即工作。我刚刚删除了额外的垃圾文件,然后对 进行了一些更改.tmTheme
,并添加了对包管理器的支持。
在此处查看该项目:https ://github.com/nathanleiby/ChucK.tmbundle 。
包装控制
理想情况下,您已经想要的语法包含在 Sublime Text Package Control 中可供下载。在 Package Control 中搜索并直接安装。(如果你还没有Package Control,你必须得到它:https ://github.com/wbond/package_control_channel/ )
手动
如果您下载.tmTheme
文件或.tmBundle
直接下载文件,则需要将其复制到 ST 中相应的包文件夹中。注意有/Packages
文件夹和/Packages/User
文件夹。ST2 文档建议复制到后者,因为即使在更新过程中删除/修改了主文件夹中的其他包,也可以保证保留它。
在 OSX 上,该目录是:~/Library/Application Support/Sublime Text 2/Packages/User/
(注意:你可能更喜欢git clone
打包到这个文件夹中,这样你可以很容易地更新它。)
如果您想深入了解并自定义语法突出显示,这里有几个地方可以开始。
<ctrl> + <shift> + p
. 每当您查看文件时,选择任何单词并按下此组合键,然后查看页脚栏中。您应该会看到一系列语法描述。例如:我刚刚在我正在查看的 SQL 文件中突出显示了一个单词,响应是:source.sql string.other.quoted.backtick.sql
.这可能很明显,但语法高亮的用处与您在 Sublime Text 中选择的配色方案有关。(崇高文本 2 -> 首选项 -> 颜色方案 -> ...)
我还没有机会详细探索/验证这一点,但似乎某些配色方案可能会区分更多/更少类型的语法元素。
出于这个原因,我强烈推荐“Monokai”配色方案(特别是“Monokai Soda”变体)——它似乎“带出颜色”。
您可能需要修改您的.tmTheme
以添加自定义突出显示通过将您的语法设置为 Smarty 定义的范围。目录中应该有一个Smarty.tmlanguage
文件Packages/Smarty/Syntaxes
。它是 XML,因此对于随意阅读可能有点困难,但如果您了解正则表达式并且范围被智能命名,您应该能够弄清楚如何修改您的主题。
这很简单
<!--
,您会注意到(当前)有两个对“Smarty”的引用被注释了。取消评论这些。Smarty.tmLanguage
文件中搜索字符串scopeName
. 这实际上是一个键,相关的字符串应该是text.html.smarty
.HTML.tmLanguage
代替(您刚刚取消注释的最后一个块末尾source.smarty
的键的字符串)include
而已。享受