【问题标题】:Create sublime text plugin support both ST2 and ST3创建 sublime text 插件同时支持 ST2 和 ST3
【发布时间】:2014-05-12 21:46:49
【问题描述】:

我为 Sublime Text 2 制作了几个插件,但是当 Sublime Text 3 出现时,它有一个新的 Python 引擎,我的插件停止工作了。我设法通过一一调试所有问题来修复它们,但现在我有两个版本。原来的可以从包管理器顺利安装,但是新的只能从我把它放在从 git 签出的代码分支中安装。

我应该如何正确管理 sublime text 的插件以支持多个版本?

有没有关于如何有效地做到这一点的博客文章?

【问题讨论】:

    标签: python git sublimetext2 sublimetext sublimetext3


    【解决方案1】:

    您可以为不同的 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 时所具有的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      相关资源
      最近更新 更多