Sublime Text 3 通过文件名的正则表达式设置语法高亮

Sublime Text 3 set syntax highlight by regex of filename

我希望文件名以 view_ 开头并以 _js.php 结尾的文件具有 Javascript 突出显示。基本上如果有正则表达式 view_*_js.php.
我已经知道我可以去 "Preferences > Settings - More > Syntax Specific - User" 我可以在 JSON 中编辑我想要的扩展名,但我希望它是文件名的正则表达式。
有谁知道我该怎么做?

由于 Sublime 默认使用 select 语法的文件扩展名,我相信像这样的东西需要一个插件来交换语法。 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")

您要找的包裹是ApplySyntax, yet another great plugin by facelessuser。它不仅应用更复杂的正则表达式规则来分析文件名本身,它还会解析文件本身(通常只是前几行)以在多种文件可以具有相同扩展名的情况下寻找线索,例如所有各种Rails 项目的 Ruby 中的 .rb 个文件。它还是完全可定制的,因此您可以为文件名和文件内容设计自己的规则。