如何在构建系统中使用自定义扩展程序(如*.ltx
,*.cmake
等)定义选择器,其中没有可用的选择器(如text.tex.latex
,{{1等等)?
有可能吗?如果是 - 怎么样?
答案 0 :(得分:12)
如果您定义新的语法定义(即新的.tmLanguage文件),则可能。语法定义可以声明新的“范围名称”,然后您可以在新的自定义构建系统中使用它们。
新的语法定义文件实际上不必定义/匹配文件的语法,因为您只需按文件扩展名进行匹配......!
以.tmLanguage文件语法查看here。 “scopeName”项允许您命名新范围(即“text.tex.latex”等)。我将在下面举例说明。
我创建了一个定义新范围的新语法 - 它很容易(就像Sublime中的大多数事情一样):
{ "name": "Syntax Name", "scopeName": "source.syntax_name", "fileTypes": [""], "patterns": [ ], "uuid": "..." }
...将带有新范围名称的描述性名称“source.syntax_name”替换为“语法名称”,并填写“fileTypes”以包含一个或多个文件扩展名。例如:
"fileTypes": ["tex", "ltx"]
你已经完成了!任何恰好具有“fileTypes”中定义的扩展名之一的新文件都将激活“scopeName”范围。
您现在可以在新的构建系统文件中使用此范围(工具>构建系统>新构建系统...... )
干杯!