如何仅为文件或文件夹添加侧栏菜单(当我右键单击文件时)?例如,如果我将此代码添加到"Side Bar.sublime-menu"
:
{ "caption": "New command", "command": "my_command", "args": {"files": []} }
我将为侧边栏中的所有文件和文件夹获取新选项。
如何仅为文件添加此选项?
答案 0 :(得分:2)
在MyCommandCommand
课程中,添加is_enabled()
方法。来自ST2 API docs:
如果此时能够运行该命令,则返回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
的来源,也可以使用其他功能。
最后,请注意,Sublime Text 2不再支持SideBarEnhancements
。如果您仍需要在ST2中运行,请参阅my answer here解释原因和解决方法。如果需要,还有一个链接可以下载源的ST2兼容zip文件。越来越多的插件正在迁移到仅限ST3的版本,因为API中的重要增强功能使得在两个版本中保持相同的功能有时会非常痛苦。如果您正在编写的插件是供公众使用的,请在发布之前确保它与ST2和ST3兼容。