Sublime Text 2:构建系统自定义选择器

时间:2013-01-03 09:23:12

标签: build-automation sublimetext2

如何在构建系统中使用自定义扩展程序(如*.ltx*.cmake等)定义选择器,其中没有可用的选择器(如text.tex.latex,{{1等等)?

有可能吗?如果是 - 怎么样?

1 个答案:

答案 0 :(得分:12)

如果您定义新的语法定义(即新的.tmLanguage文件),则可能。语法定义可以声明新的“范围名称”,然后您可以在新的自定义构建系统中使用它们。

新的语法定义文件实际上不必定义/匹配文件的语法,因为您只需按文件扩展名进行匹配......!

以.tmLanguage文件语法查看here。 “scopeName”项允许您命名新范围(即“text.tex.latex”等)。我将在下面举例说明。


我创建了一个定义新范围的新语法 - 它很容易(就像Sublime中的大多数事情一样):

  • 在命令选项板中,选择“程序包控制:安装程序包”
  • 在包列表中,选择“PackageDev”
  • 选择工具>创建新的语法定义套餐>包装开发>新语法定义
  • 您的新语法定义如下所示:
{ "name": "Syntax Name",
  "scopeName": "source.syntax_name",
  "fileTypes": [""],
  "patterns": [
  ],
  "uuid": "..."
}

...将带有新范围名称的描述性名称“source.syntax_name”替换为“语法名称”,并填写“fileTypes”以包含一个或多个文件扩展名。例如:

"fileTypes": ["tex", "ltx"]

  • 使用Packages / User
  • 下的“.JSON-tmLanguage”扩展名保存文件
  • 选择工具>构建系统>选择Json to tmLanguage
  • 选择工具>构建

你已经完成了!任何恰好具有“fileTypes”中定义的扩展名之一的新文件都将激活“scopeName”范围。

您现在可以在新的构建系统文件中使用此范围(工具>构建系统>新构建系统......

干杯!