8

如何在构建系统中使用没有可用选择器(如等)的自定义扩展名(如等)定义*.ltx选择器?*.cmaketext.tex.latexsource.c++

是否可以?如果是 - 如何?

4

1 回答 1

12

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

新的语法定义文件实际上不必定义/匹配文件的语法,因为您可以简单地通过文件扩展名进行匹配......!

在此处查看.tmLanguage文件语法。“scopeName”项允许您命名新范围(即“text.tex.latex”等)。我将在下面通过一个示例。


我创建了一个定义新范围的新语法——它非常简单(就像 Sublime 中的大多数东西一样):

  • 在命令面板中,选择“包控制:安装包”
  • 在包列表中,选择“PackageDev”
  • 通过选择工具 > 包 > 包开发 > 新语法定义来创建新的语法定义
  • 您的新语法定义将如下所示:
{ "name": "语法名称",
  "scopeName": "source.syntax_name",
  “文件类型”: [””],
  “模式”:[
  ],
  “uuid”:“……”
}

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

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

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

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

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

干杯!

于 2013-01-10T17:32:23.610 回答