我为Sublime Text 2制作了几个插件,但是当Sublime Text 3出现时,它有一个新的Python引擎,我的插件停止工作。我设法通过逐个调试所有问题来修复它们,但现在我有两个版本。原始版本从Package Manager顺利安装,但新版本只能从我从git签出的代码分支中安装。
如何正确管理sublime文本的插件以支持多个版本?
是否有关于如何有效执行此操作的博客文章?
答案 0 :(得分:3)
您可以为Sublime Text的不同版本管理两个不同的代码分支。如果你看一下第200行及以下的example-repository.json
,你会看到这个例子:
// If your package is only compatible with specific builds of
// Sublime Text, this will cause the package to be hidden from
// users with incompatible versions.
{
"details": "https://github.com/wbond/sublime_alignment",
"releases": [
{
// This branch (default: "master") is for Sublime Text 2.
// Remember: The sublime_text key is required!
"sublime_text": "<3000",
"details": "https://github.com/wbond/sublime_alignment"
}
{
// This branch ("st3") is for Sublime Text 3 (and above).
// You can specify as many releases as you want.
"sublime_text": ">=3000",
"details": "https://github.com/wbond/sublime_alignment/tree/st3"
}
]
},
这样,如果您对不同版本的ST,甚至ST3的不同版本有不同的代码库,如果您依赖某些仅在某个版本中实现的API更改,最终用户将无缝地获取您希望他们使用的插件版本。
根据您使用API的方式,可能无法实现,但从长远来看,最简单的方法是在ST2和ST3之间协调您的代码。如果您需要使用某些高级功能,则可以始终使用此类构造:
if sublime.version() >= 3000:
do_advanced_stuff()
else:
do_st2_stuff()
分割你的代码并优雅地失败,并且在某些情况下,在ST2下运行的某些插件可能不会拥有他们在使用ST3时所拥有的功能。