0

如何仅为文件或仅为文件夹添加侧栏菜单(当我右键单击文件时)?例如,如果我将此代码添加到"Side Bar.sublime-menu"

{ "caption": "New command", "command": "my_command", "args": {"files": []} }

我将为侧边栏中的所有文件和文件夹获得新选项。

如何仅为文件添加此选项?

4

1 回答 1

2

在您的MyCommandCommand课程中,添加一个is_enabled()方法。来自ST2 API 文档

如果此时命令能够运行,则返回 true。默认实现总是简单地返回 True。

就像是

def is_enabled(self, paths=[]):
    self.has_files = False
    for path in paths:
        if os.path.isdir(path) == False:
            self.has_files = True
        if self.has_files:
            break
    return self.has_files

应该管用。(警告:未经过充分测试!)

还有另一种选择,那就是要么依赖现有的安装SideBarEnhancements,要么借用sidebar/SideBarSelection.py并将其包含在您的源代码中。这样,您可以调用

from SideBarEnhancements.sidebar.SideBarSelection import SideBarSelection
# if depending on an existing install

或者

from .SideBarSelection import SideBarSelection
# if using the file in your own code - probably the best way to go

.py文件的顶部。然后,在您的MyCommandCommand班级中,使用以下内容:

def is_enabled(self, paths = []):
    return SideBarSelection(paths).hasFiles()

你会准备好的。

我强烈建议您阅读 的源代码SideBarEnhancements,那里可能还有其他您可以使用的功能。

最后,请注意SideBarEnhancementsSublime Text 2 不再支持它。如果您仍需要在 ST2 中运行它,请在此处查看我的回答,解释为什么以及如何解决它。如果需要,还有一个链接可以下载与 ST2 兼容的源 zip 文件。越来越多的插件正在迁移到仅限 ST3 的版本,因为 API 中有显着的增强,这使得在两个版本中维护相同的功能有时真的很痛苦。如果您编写的插件是供公众使用的,请在发布前确保它与 ST2 和 ST3 兼容。

祝你好运!

于 2014-03-27T21:43:59.107 回答