2013-03-26 77 views
10

我使用Smarty来生成html模板。我目前使用html突出显示,除了没有突出显示smarty标签,ex {foreach} 我试过安装Smarty包,但这看起来不太好。所以基本上我需要能够使用大括号将标准HTML着色中的任何内容加亮。可能吗?如何才能做到这一点?崇高文字:如何自定义语法高亮?

+0

这是一个模糊的问题,所以我只能模糊地说要尝试使用brackethighlighter2。 – AGS 2013-03-26 21:42:41

回答

2

您可能需要修改您的.tmTheme,为通过将语法设置为Smarty定义的范围添加自定义高亮显示。 Packages/Smarty/Syntaxes目录中应该有一个Smarty.tmlanguage文件。它是XML,因此对于随意阅读可能有点困难,但是如果您了解正则表达式并且范围被智能地命名,您应该能够弄清楚如何修改您的主题。

24

背景

@MattDMo是正确的一个.tmTheme文件是控制高亮的主要文件。它是一个包含一系列正则表达式和标记的XML文件,用于表示哪个RegEx匹配哪种类型的语法元素。

您可以在GitHub上搜索并找到许多已经创建了包含.tmTheme文件的Sublime Text包的人。请注意,您可以直接使用为TextMate创建的包,因为Sublime Text使用相同的约定。 (这是真的,至少只要.tmTheme.tmPreferences文件去。)

例如,我能直接拿一个语法高亮显示包夹头语言,最初是为TextMate的制作,并使用它SublimeText2。 .tmTheme通过复制与TextMate一起使用的文件立即生效。我刚刚删除了其他垃圾文件,然后对.tmTheme进行了一些更改,并增加了对软件包管理器的支持。

查看该项目在这里:https://github.com/nathanleiby/ChucK.tmbundle

如何安装新的语法

包控制

理想情况下,你已经想语法包括可供下载的崇高文本包控制。在Package Control中搜索并直接安装。如果你直接下载一个.tmTheme文件或.tmBundle

手动

,你会想要将它复制到相应的软件包:(https://github.com/wbond/package_control_channel/如果没有包控制的是,你必须得到它) ST中的文件夹。请注意,有一个/Packages文件夹和一个/Packages/User文件夹。 ST2文档建议复制到后者,因为即使主文件夹中的其他软件包在更新过程中被删除/修改,它也可以保留。

在OSX,该目录是:~/Library/Application Support/Sublime Text 2/Packages/User/

(注意:您可能希望git clone包放到这个文件夹,这样就可以轻松地更新它。)

如何创建自己的

如果你想挖和自定义语法高亮,这里有几个地方开始。

  • 刷上正则表达式。
  • Sublime Text documentation for syntax definitions
  • <ctrl> + <shift> + p。无论何时查看文件,选择任何单词并按下该组合键,然后查看页脚栏。你应该看到一系列的语法描述。例如:我只是在我正在查看的SQL文件中突出显示一个单词,其回应是:source.sql string.other.quoted.backtick.sql
  • 您可能更喜欢使用JavaScript/JSON解析您的语法,而不是XML。使用PackageDev。你可以通过包控制来获得这个。它具有允许您在.json(JSON)和.tmTheme(XML)文件之间来回切换的命令。
  • A related question on StackOverflow

买者

这可能是显而易见的,但语法高亮的用处是关系到其配色方案您在崇高的文本选择。 (Sublime Text 2 - > Preferences - > Color Scheme - > ...)

我还没有机会探索/详细验证这一点,但似乎有些配色方案可能会区分更多/更少类型的语法元素。

因为这个原因,我强烈推荐“Monokai”配色方案(特别是“Monokai苏打水”),它似乎是“带出颜色”。

+1

如果你想要一个与许多(可定制)示波器完美对比的主题,请查看我的[Neon.tmTheme](https://github.com/MattDMo/Neon.tmTheme)。它是明亮的黑色,虽然我主要将它用于Python,但它与许多其他语言(包括HTML/CSS/JavaScript)看起来不错。是的,你在说明某些配色方案没有其他配色方案的范围时是正确的。我已经整理了一些关于我的主题的其他计划的范围,所以希望有些东西可供您使用。但是,这一切都取决于细粒度的。tmLanguage文件是。 – MattDMo 2013-04-08 20:06:40

+0

谢谢@MattDMo - 我会给它一个镜头!看起来非常简单和干净。我很高兴知道我的观察是正确的,一些颜色方案区分了更多/更少的句法范围。 – Nate 2013-04-09 22:55:01

2

这很简单

  1. 有了崇高的文本2默认安装
  2. 打开文件 “包\ HTML \ HTML.tmLanguage”,如果搜索字符串<!--你会发现,(目前)有是对“Smarty”评论的两个参考。不要评论这些。
  3. 在您的Smarty.tmLanguage文件中搜索字符串scopeName。这实际上是一个关键,相关的字符串应该是类似text.html.smarty
  4. 该字符串复制到HTML.tmLanguage到位source.smarty的(字符串为重点include在最后块结束时,你只是取消注释)

就是这样。享受

+2

如果你能解释“Packages \ HTML \ HTML.tmLanguage”是什么或者如何在Sublime Text中打开,那将会很棒。我不知道这些信息是否在我头顶。 – bafromca 2013-12-29 04:52:37

+2

在sublimetext的菜单中有一个叫做'''浏览包''的链接。这将打开你的包的目标文件夹(例如使用finder或Explorer)。 – svassr 2014-01-01 18:25:16