Sublime 软件包
要求
这些软件包是针对
Sublime Text 的最新构建版本
在 dev 频道 中开发的。
随 Sublime Text 发布的最新软件包版本 应通过 git 在此仓库中标记。 你可以在 https://github.com/sublimehq/Packages/tags 找到列表。
旧版本构建中可能存在错误, 且所使用的格式与 Build 4095 之前的构建版本不兼容。
安装
若要修改这些软件包
并在本地进行测试,
请 fork 此仓库。
然后将修改后的软件包
符号链接到你的 Packages 文件夹。
(将以下命令中的 Python 替换为
要安装的语法名称。)
OS X
$ git clone https://github.com/sublimehq/Packages.git
$ ln -s `pwd`/Packages/Python ~/Library/Application\ Support/Sublime\ Text/Packages/
Linux
$ git clone https://github.com/sublimehq/Packages.git
$ ln -s `pwd`/Packages/Python ~/.config/sublime-text/Packages/
Windows
在 Windows 上, 你可以使用目录联接(directory junctions)代替符号链接(symlinks) (符号链接需要管理员权限; 目录联接则不需要):
# Using PowerShell
PS> git clone https://github.com/sublimehq/Packages.git
PS> cmd /c mklink /J "$env:APPDATA/Sublime Text/Packages/Python" (convert-path ./Packages/Python)
或者,下载便携版,
并将此仓库直接克隆为 Data 文件夹的子目录。
⚠️ 注意事项
完成后, 请记住您现在正在覆盖一个默认包。
-
如果其他人对已覆盖的包进行了上游更改, 当 Sublime Text 更新到新版本时,您的版本将会过时。 要获取最新版本, 请从此仓库拉取更改。
-
如果您删除/重命名了文件, 但它们仍然存在于 您正在使用的 Sublime Text 构建版本中随附的包版本中, 除非您用同名的已安装包 替换整个随附包, 否则这些原始文件仍会被 Sublime 拾取。
例如,如果您的 Sublime 构建版本在
<ST Installation Dir>/Packages/SQL.sublime-package的根目录下 有一个syntax_test_sql.sql文件, 然后您将此仓库中的 SQL 文件夹 符号链接到<ST User Data Dir>/Packages/SQL, 将该文件移动到tests子文件夹, 然后运行所有语法测试, 旧的语法测试文件仍会被拾取, 除了新的那个之外。为了防止这种情况, 您可以在您的
<ST User Data Dir>/Installed Packages目录中创建一个空的 zip 文件, 例如SQL.sublime-package, 这将导致 ST 加载此文件以替代随附的文件。 最终,您只是覆盖了一个空包, 而不是将新文件合并到现有包中。
快速创建此类空 zip 文件的方法如下:
$ printf "PK\x05\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" > empty.zip
# or
$ touch dummy && zip empty.zip dummy && zip -d empty.zip dummy && rm dummy
可选地,为了使您的空包在目录列表中更加醒目,
您可以使用指向此空 zip 文件的符号链接来创建它们,
而不是复制它,
例如 ln -s empty.zip SQL.sublime-package。
参考
请参阅官方文档:
拉取请求
Pull requests 应当:
- 以方括号中的包名开头,
例如
[XML]。 - 在合理范围内,保持尽可能小且自包含。 较小的更改更容易快速审查。
- 在更改
.sublime-syntax文件时, 包含一个新的(或增强的)语法测试。 - 在进行重大更改时, 包含多个语法测试 以及一组性能测量数据(旧版 vs. 新版)。
- 在合并时进行压缩,以保持提交历史的线性。
新包
针对新 packages 的 Pull requests 在此阶段将不会被接受, 因为新包可能会给那些 已通过 Package Control 安装了 同名包的用户 带来问题。 有一些计划中的更改 将在未来解决此问题。
复杂的插件, 例如自动补全系统和 linter, 通常应位于独立的包中, 而不是包含在默认包集合中。
缺失的包
此仓库仅包含以语法定义为重点的包。
值得注意的是,诸如 Default 和 Theme - Default 之类的包并未包含在内。