【问题标题】:Sublime Text 2: build system custom selectorSublime Text 2:构建系统自定义选择器
【发布时间】:2013-01-03 09:23:12
【问题描述】:

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

有可能吗?如果是 - 如何?

【问题讨论】:

    标签: build-automation sublimetext2


    【解决方案1】:

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

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

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


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

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

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

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

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

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

    您现在可以在新的构建系统文件中使用此范围(Tools > Build System > New Build System...

    干杯!

    【讨论】:

    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多