【发布时间】:2013-01-03 09:23:12
【问题描述】:
如何在构建系统中使用自定义扩展(如*.ltx、*.cmake 等)定义一个选择器,但没有可用的选择器(如text.tex.latex、source.c++ 等)?
有可能吗?如果是 - 如何?
【问题讨论】:
标签: build-automation sublimetext2
如何在构建系统中使用自定义扩展(如*.ltx、*.cmake 等)定义一个选择器,但没有可用的选择器(如text.tex.latex、source.c++ 等)?
有可能吗?如果是 - 如何?
【问题讨论】:
标签: build-automation sublimetext2
如果您定义新的语法定义(即新的 .tmLanguage 文件),这是可能的。语法定义可以声明新的“范围名称”,然后您可以在新的自定义构建系统中使用它们。
新的语法定义文件实际上不必定义/匹配文件的语法,因为您可以简单地通过文件扩展名进行匹配...!
查看here 的 .tmLanguage 文件语法。 “scopeName”项允许您命名新范围(即“text.tex.latex”等)。下面我将通过一个示例。
我创建了一个新的语法来定义一个新的范围——它很简单(就像 Sublime 中的大多数东西一样):
... 将“语法名称”替换为描述性名称,将“source.syntax_name”替换为您的新范围名称,并填写“fileTypes”以包含一个或多个文件扩展名。例如:
"fileTypes": ["tex", "ltx"]
你已经完成了!任何碰巧具有“fileTypes”中定义的扩展名之一的新文件都将激活“scopeName”范围。
您现在可以在新的构建系统文件中使用此范围(Tools > Build System > New Build System...)
干杯!
【讨论】: