我做了一些Sublime Text 2的插件,但是當Sublime Text 3出來時,它有一個新的Python引擎,我的插件停止工作。我設法通過逐個調試所有問題來修復它們,但現在我有兩個版本。原始安裝從包管理器順利,但新的只能從我從git檢出的代碼分支安裝。創建崇高的文本插件支持ST2和ST3
我應該如何妥善管理一個用於崇高文本的插件來支持多個版本?
是否有關於如何有效地做到這一點任何博客帖子?
我做了一些Sublime Text 2的插件,但是當Sublime Text 3出來時,它有一個新的Python引擎,我的插件停止工作。我設法通過逐個調試所有問題來修復它們,但現在我有兩個版本。原始安裝從包管理器順利,但新的只能從我從git檢出的代碼分支安裝。創建崇高的文本插件支持ST2和ST3
我應該如何妥善管理一個用於崇高文本的插件來支持多個版本?
是否有關於如何有效地做到這一點任何博客帖子?
您可以爲不同版本的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,就不會有功能。