如何仅为文件或仅为文件夹添加侧栏菜单(当我右键单击文件时)?例如,如果我将此代码添加到"Side Bar.sublime-menu"
:
{ "caption": "New command", "command": "my_command", "args": {"files": []} }
我将为侧边栏中的所有文件和文件夹获得新选项。
如何仅为文件添加此选项?
如何仅为文件或仅为文件夹添加侧栏菜单(当我右键单击文件时)?例如,如果我将此代码添加到"Side Bar.sublime-menu"
:
{ "caption": "New command", "command": "my_command", "args": {"files": []} }
我将为侧边栏中的所有文件和文件夹获得新选项。
如何仅为文件添加此选项?
在您的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
,那里可能还有其他您可以使用的功能。
最后,请注意SideBarEnhancements
Sublime Text 2 不再支持它。如果您仍需要在 ST2 中运行它,请在此处查看我的回答,解释为什么以及如何解决它。如果需要,还有一个链接可以下载与 ST2 兼容的源 zip 文件。越来越多的插件正在迁移到仅限 ST3 的版本,因为 API 中有显着的增强,这使得在两个版本中维护相同的功能有时真的很痛苦。如果您编写的插件是供公众使用的,请在发布前确保它与 ST2 和 ST3 兼容。
祝你好运!