ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

YAMLMacros

作者: Thom1729 全面兼容

由Python驱动的YAML文件宏系统。专为Sublime Text开发设计。

详细信息

安装

  • 总数 5K
  • Win 2K
  • Mac 2K
  • Linux 1K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 1 0 2 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 2 0 1 0 3 1 0 0 1 1 0 0 0 1 1 3 1 0 1 1 2 0 0 0
Mac 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 2 0 1 1 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 3 0 0 0 1

自述文件

源代码
raw.githubusercontent.com

注意:YAML宏3.0.0已发布。所有先期功能应稳定;然而,一些新特性可能还在变动。查看发布说明以获取更多详细信息。

YAML宏

由Python驱动的YAML文件宏系统。设计用于Sublime Text语法开发。

安装

YAMLMacros可以通过软件包管理器安装。您还可以将此仓库的git clone副本放入您的包目录中。如果这样做,请更名为“YAMLMacros”。

概述

Sublime Text的语法定义往往有很多样板和重复代码。考虑这个简单的语法,它突出显示SQL关键字

%YAML 1.2
---
name: SQL Simple (YAML Macros example)
scope: source.sql
contexts:
  main:
  - match: \b(?i:select|from|where)\b
    scope: keyword.control.sql

  - match: \b(?i:distinct|as)\b
    scope: keyword.operator.word.sql

  - match: \b(?i:dual)\b
    scope: constant.language.sql

相同的结构 \b(?i:…)\b一次又一次地重复。这可能是写作的麻烦和阅读的烦恼,在一个完整、复杂的SQL语法中,有十几个或更多类似匹配的情况下,一个难以注意到的不小心错误可能导致一个难以检测的错误,例如关键字只在小写时生效。借助YAML宏,您可以通过提取常用用法来精简语法实现“DRY”原则

%YAML 1.2
%TAG ! tag:yaml-macros:sql_simple_macros:
---
name: SQL Simple (YAML Macros example)
scope: source.sql
contexts:
  main:
    - match: !word select|from|where
      scope: keyword.control.sql

    - match: !word distinct|as
      scope: keyword.operator.word.sql

    - match: !word dual
      scope: constant.language.sql

然后在sql_simple_macros.py文件中

def word(str):
    return r'\b(?i:%s)\b' % str

就这么简单!有关更复杂用法的多个宏的示例,请参阅完整的SQL示例

用法

导入宏

要将宏导入您的YAML文件,请在顶部添加一个引用包含您的宏的文件的%TAG指令。其语法如下

%TAG <tag handle> tag:yaml-macros:<macro package>:

<tag handle> 是您将用于调用宏的前缀。它必须以感叹号开头。<macro package> 是宏定义文件的路径。您可以使用多个宏定义文件;只需写出两个具有不同标签处理器的%TAG指令即可。

调用宏

您可以在YAML文件的任何期望值的位置调用宏

<tag handle><macro name> <value>

示例

!word select
!expect [ ';', 'punctuation.terminator.statement.sql' ]

注意,标签处理器和宏名称之间没有空格。

定义宏

宏定义文件是任何Python模块。它可以非常简单,只包含一个函数定义,也可以非常复杂。如果Python能实现的功能,你都可以将其放入宏中。

若将宏应用于YAML列表,则每个列表项都将作为参数传递。若将宏应用于YAML字典,则每个项目都将作为关键字参数传递。否则,宏将接收一个单一值。

应用您的宏

如果您已将文件命名为.yaml-macros扩展名,只需选择“YAML宏”构建系统。运行构建将在同一位置创建一个编译后的YAML文件,而不带额外的.yaml-macros后缀。

命令行界面

有一个基本的命令行界面。CLI期望您的YAML宏文件作为标准输入,并将编译后的YAML文件发送到标准输出。路径将以您的当前工作目录为相对路径解析。