【问题标题】:Sublime Text 3 set syntax highlight by regex of filenameSublime Text 3 通过文件名的正则表达式设置语法高亮
【发布时间】:2016-12-17 02:57:07
【问题描述】:
我希望文件名以 view_ 开头并以 _js.php 结尾的文件具有 Javascript 突出显示。基本上如果有正则表达式view_*_js.php.
我已经知道我可以转到“首选项 > 设置 - 更多 > 特定语法 - 用户”我可以在 JSON 中编辑我想要的扩展名,但我希望它是文件名的正则表达式。
有谁知道我该怎么做?
【问题讨论】:
标签:
sublimetext3
syntax-highlighting
sublimetext
【解决方案1】:
由于 Sublime 想默认使用文件扩展名来选择语法,我相信这样的事情需要一个插件来交换语法。 PackageControl 上可能有类似的内容,尽管我的快速搜索没有找到任何似乎匹配的内容。
下面是一个简单的 Sublime text 3 插件示例,它使用on_load 事件根据需要交换语法。您可以将其保存在您的 Packages/User 文件夹中,例如 apply_syntax.py 或类似的东西。
import sublime, sublime_plugin,os,re
class ApplyJSSyntax (sublime_plugin.EventListener):
def __init__ (self):
self.file_pattern = re.compile ("^view_.*_js.php$")
def on_load (self, view):
if self.file_pattern.match (os.path.basename (view.file_name ())):
view.set_syntax_file ("Packages/JavaScript/JavaScript.sublime-syntax")
【解决方案2】:
您正在寻找的软件包是ApplySyntax,这是facelessuser 的另一个出色插件。它不仅应用更复杂的正则表达式规则来分析文件名本身,它还解析文件本身(通常只是前几行)以在多种文件可以具有相同扩展名的情况下寻找线索,例如所有各种.rb Ruby on Rails 项目中的文件。它也是完全可定制的,因此您可以为文件名和文件内容设计自己的规则。