YAMLMacros
由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 |
自述文件
注意: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文件发送到标准输出。路径将以您的当前工作目录为相对路径解析。