如果您定义新的语法定义(即新的 .tmLanguage 文件),这是可能的。语法定义可以声明新的“范围名称”,然后您可以在新的自定义构建系统中使用它们。
新的语法定义文件实际上不必定义/匹配文件的语法,因为您可以简单地按文件扩展名进行匹配...!
看一看here http://docs.sublimetext.info/en/latest/extensibility/syntaxdefs.html#creating-a-new-syntax-definition在 .tmLanguage 文件语法中。 “scopeName”项允许您命名新范围(即“text.tex.latex”等)。下面我将通过一个例子来说明。
我创建了一个新的语法来定义一个新的范围——它非常简单(就像 Sublime 中的大多数东西一样):
- 在命令面板中,选择“包控制:安装包”
- 在包列表中,选择“PackageDev”
- 通过选择创建新的语法定义工具 > 包 > 包开发 > 新语法定义
- 您的新语法定义将如下所示:
{ "name": "Syntax Name",
"scopeName": "source.syntax_name",
"fileTypes": [""],
"patterns": [
],
"uuid": "..."
}
...将“Syntax Name”替换为描述性名称,将“source.syntax_name”替换为新的作用域名称,并填写“fileTypes”以包含一个或多个文件扩展名。例如:
"fileTypes": ["tex", "ltx"]
- 在 Packages/User 下使用“.JSON-tmLanguage”扩展名保存文件
- Select 工具 > 构建系统 > 选择 Json 到 tmLanguage
- Select 工具 > 构建
你完成了!任何恰好具有“fileTypes”中定义的扩展名之一的新文件都将激活“scopeName”范围。
您现在可以在新的构建系统文件中使用此范围(工具 > 构建系统 > 新构建系统...)
Cheers!