崇高文本插件类命名约定



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

  1. C:UsersUserAppDataRoamingSublime Text 2PackagesUserDefault (Windows).sublime-keymap"中添加此行(可从菜单首选项>键绑定 - 用户(获得(:

    { "keys": ["ctrl+alt+enter"], "command": "myplugin123_blah" },
    
  2. 我创建一个同名的 Python 文件,即 myplugin123_blah.py C:UsersUserAppDataRoamingSublime Text 2PackagesUser

  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 插件,然后将该名称"翻译"为您可以从 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

这与您的发现相匹配。

最新更新