Sublime Text 3,侧边栏项目不显示
Sublime Text 3, sidebar items are not showing
我正在为 Sublime Text 3 制作一个简单的插件,它应该在一个或多个文件夹中创建一个 .gitignore
文件。到目前为止,该软件包包含两个命令,可以使用 window.command(...)
.
从 ST3 控制台调用它们
我希望能够右键单击边栏中的文件夹,然后 select 弹出菜单中的命令。我添加了 Side Bar.sublime-menu
项目来调用方法,但是当右键单击边栏中的文件夹或文件时,菜单项没有显示。
根据下面的信息,有人知道这里缺少什么吗?
插件树:
~/Library/Application Support/Sublime Text 3/Packages/GitIgnoreFolderContents
├── Side\ Bar.sublime-menu
├── git_ignore_folder_contents.py
├── git_ignore_folder_contents.sublime-settings
├── libs
│ ├── settings.py
│ └── util.py
└── notes_use_later.txt
侧面Bar.sublime-菜单:
[
{
"caption": "-"
},
{
"caption": "Git Ignore Folder Contents",
"id": "git_ignore_folder_contents",
"children:": [
{
"caption": "Create .gitignore",
"command": "create_folder_gitignore",
"args": {
"paths": []
}
},
{
"caption": "Create .gitkeep",
"command": "create_folder_gitkeep",
"args": {
"paths": []
}
}
]
}
]
git_ignore_folder_contents.py:
import sublime
import sublime_plugin
from .libs.util import print_debug
class BaseCreateFolderIgnoreFileCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):
print_debug('[GIFC] running {}'.format(self.__class__.__name__))
print_debug('[GIFC] paths:', paths)
if not paths:
print_debug('[GIFC] paths is empty, halting function')
return
for path in paths:
# ToDo: create files here
pass
def is_enabled(self, paths=[]):
# ToDo: disable when one of paths is not a folder
return True
class CreateFolderGitignoreCommand(BaseCreateFolderIgnoreFileCommand):
filename = '.gitignore'
contents = '*\n!.gitignore'
class CreateFolderGitkeepCommand(BaseCreateFolderIgnoreFileCommand):
filename = '.gitkeep'
contents = ''
环境:
- 从 macOS 的开发频道构建 3160。
- 软件包 "SideBarEnhancements" 已安装(在其他软件包中,一些带有工作侧边栏菜单项)
看起来这对您不起作用的原因是您的 sublime-menu
文件被巧妙地破坏了; children
键中有一个杂散的 :
字符。
特别是,当我使用您在此处提供的文件创建包时(相同版本的 Sublime,但在 Windows 而不是 MacOS 上),顶级菜单项出现在菜单中,但是它没有任何人可能期望的 children 。选择 Git Ignore Folder Contents
命令会在控制台中生成错误。我猜那是因为它没有直接 command
执行,因为它不应该是可选的。
将这一行修正为在密钥中没有冒号应该可以解决您的问题;或者至少它对我有用:
"children:": [
我正在为 Sublime Text 3 制作一个简单的插件,它应该在一个或多个文件夹中创建一个 .gitignore
文件。到目前为止,该软件包包含两个命令,可以使用 window.command(...)
.
我希望能够右键单击边栏中的文件夹,然后 select 弹出菜单中的命令。我添加了 Side Bar.sublime-menu
项目来调用方法,但是当右键单击边栏中的文件夹或文件时,菜单项没有显示。
根据下面的信息,有人知道这里缺少什么吗?
插件树:
~/Library/Application Support/Sublime Text 3/Packages/GitIgnoreFolderContents
├── Side\ Bar.sublime-menu
├── git_ignore_folder_contents.py
├── git_ignore_folder_contents.sublime-settings
├── libs
│ ├── settings.py
│ └── util.py
└── notes_use_later.txt
侧面Bar.sublime-菜单:
[
{
"caption": "-"
},
{
"caption": "Git Ignore Folder Contents",
"id": "git_ignore_folder_contents",
"children:": [
{
"caption": "Create .gitignore",
"command": "create_folder_gitignore",
"args": {
"paths": []
}
},
{
"caption": "Create .gitkeep",
"command": "create_folder_gitkeep",
"args": {
"paths": []
}
}
]
}
]
git_ignore_folder_contents.py:
import sublime
import sublime_plugin
from .libs.util import print_debug
class BaseCreateFolderIgnoreFileCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):
print_debug('[GIFC] running {}'.format(self.__class__.__name__))
print_debug('[GIFC] paths:', paths)
if not paths:
print_debug('[GIFC] paths is empty, halting function')
return
for path in paths:
# ToDo: create files here
pass
def is_enabled(self, paths=[]):
# ToDo: disable when one of paths is not a folder
return True
class CreateFolderGitignoreCommand(BaseCreateFolderIgnoreFileCommand):
filename = '.gitignore'
contents = '*\n!.gitignore'
class CreateFolderGitkeepCommand(BaseCreateFolderIgnoreFileCommand):
filename = '.gitkeep'
contents = ''
环境:
- 从 macOS 的开发频道构建 3160。
- 软件包 "SideBarEnhancements" 已安装(在其他软件包中,一些带有工作侧边栏菜单项)
看起来这对您不起作用的原因是您的 sublime-menu
文件被巧妙地破坏了; children
键中有一个杂散的 :
字符。
特别是,当我使用您在此处提供的文件创建包时(相同版本的 Sublime,但在 Windows 而不是 MacOS 上),顶级菜单项出现在菜单中,但是它没有任何人可能期望的 children 。选择 Git Ignore Folder Contents
命令会在控制台中生成错误。我猜那是因为它没有直接 command
执行,因为它不应该是可选的。
将这一行修正为在密钥中没有冒号应该可以解决您的问题;或者至少它对我有用:
"children:": [