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

m0n*_*awk 8 build-automation sublimetext2

我如何定义在构建系统选择与自定义扩展(如*.ltx,*.cmake等),对此有没有可用的选择(如text.tex.latex,source.c++等)?

可能吗?如果是 - 如何?

Gre*_*sky 12

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

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

看看这里的.tmLanguage文件语法."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到tmLanguage
  • 选择工具>构建

你完成了!任何碰巧具有"fileTypes"中定义的扩展之一的新文件都将激活"scopeName"范围.

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

干杯!