Sublime Text插件类命名约定

时间:2018-01-07 15:53:52

标签: python sublimetext2 sublimetext sublime-text-plugin

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

  1. C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User\Default (Windows).sublime-keymap"中添加此行(可从菜单首选项>键绑定 - 用户获得):

    { "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)
    
  4. 似乎“班级名称”应为:

    • command名称,其中每个_被移除

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

    • 在班级名称末尾添加Command

    因此:myplugin123_blah => class Myplugin123BlahCommand

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

1 个答案:

答案 0 :(得分: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

与您的发现相匹配。