【问题标题】:Sublime Text plugin class naming conventionSublime Text 插件类命名约定
【发布时间】:2018-01-07 15:53:52
【问题描述】:

为了在 Sublime Text 中为简单任务创建一个极简插件,我这样做了:

  1. C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\Default (Windows).sublime-keymap" 中添加这一行(可从菜单Preferences > Key bindings - User 获得):

    { "keys": ["ctrl+alt+enter"], "command": "myplugin123_blah" },
    
  2. 我用同名创建了一个 Python 文件,即myplugin123_blah.py in C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\

  3. 我创建插件代码:

    import sublime
    import sublime_plugin
    import subprocess
    
    class Myplugin123BlahCommand(sublime_plugin.WindowCommand):
        def run(self):
            command = 'doanything'
            subprocess.Popen(command)
    

看来“类名”应该是:

  • command 名称,其中删除了每个 _

  • 每个单词(在被删除之前由_ 分隔)必须以大写字母开头

  • 在类名末尾添加Command

因此:myplugin123_blah => class Myplugin123BlahCommand

这是正确的吗(只是通过反复试验和查看其他示例发现的)?这是sublime_plugin.WindowCommand 子类的通用命名规则吗?

【问题讨论】:

    标签: python sublimetext2 sublimetext sublime-text-plugin


    【解决方案1】:

    通常这是从另一个方向接近 - 编写一个带有一些文本/窗口命令的 Python 插件,然后将该名称“翻译”为您可以从 ST 调用的名称 - 但在任何一种情况下,知道规则在您不这样做时会很有帮助'不想在 Python 代码或键绑定等中出现不必要的难以理解的名称。

    非官方文档(对于 ST3,其规则与已弃用的 ST2 相同)是这样解释的: http://docs.sublimetext.info/en/latest/reference/plugins.html#conventions-for-command-names

    按照约定,Sublime Text 命令类名以Command 为后缀,写作NamesLikeThisCommand。 但是,命令名称会自动从 NamesLikeThisCommand 转换为 name_like_this。因此,ExampleCommand 将变为 exampleAnotherExampleCommand 将变为 another_example。 在定义命令的类的名称中,使用NameLikeThisCommand。要从 API 调用命令,请使用标准化的 name_like_this

    这与您的发现相符。

    【讨论】:

    • 是否需要以Command为后缀。没有太多的作品
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 2014-02-13
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多