我使用Smarty生成html模板。我目前使用 html 突出显示,这基本上很好,除了它不突出显示 smarty 标签,例如
{foreach}
我尝试安装 Smarty 软件包,但看起来不太好。
所以基本上我需要能够将大括号内任何内容的突出显示添加到标准 HTML 着色中。 这怎么办?
@MattDMo 是正确的,
.tmTheme
文件是控制突出显示的主要文件。它是一个 XML 文件,包含一系列正则表达式和标记,指示哪个正则表达式与哪种类型的语法元素匹配。
你可以在 GitHub 上搜索,发现很多人已经创建了包含
.tmTheme
文件的 Sublime Text 包。请注意,您可以直接使用为 TextMate 创建的包,因为 Sublime Text 使用相同的约定。 (至少就 .tmTheme
和 .tmPreferences
文件而言,这是正确的。)
例如,我可以直接采用原本为 TextMate 制作的 ChucK 语言的语法高亮包,并在 SublimeText2 中使用它。通过复制 TextMate 使用的文件,
.tmTheme
立即起作用。我刚刚删除了额外的垃圾文件,然后对 .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 中选择的配色方案有关。 (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
的字符串)就是这样。享受