【发布时间】:2021-06-30 12:40:51
【问题描述】:
我已经在 atom 中安装了颜料包。我可以在设置安装包中看到这个包。 但是我怎样才能在菜单栏中的包列表中看到这个包。
【问题讨论】:
-
要将答案标记为已接受,请单击答案旁边的复选标记以将其从灰色切换为已填充。
标签: atom-editor
我已经在 atom 中安装了颜料包。我可以在设置安装包中看到这个包。 但是我怎样才能在菜单栏中的包列表中看到这个包。
【问题讨论】:
标签: atom-editor
由于某种原因,Pigments 包的作者决定不为命令添加菜单项。但是,您可以自己使用 Atom 的Init Script
当 Atom 完成加载后,它将评估您的
~/.atom目录中的init.coffee,让您有机会运行 CoffeeScript 代码进行自定义。您可以从Atom > Init Script 菜单的编辑器中打开
init.coffee文件。此文件也可以命名为init.js并包含 JavaScript 代码。
可以使用MenuManager API 以编程方式添加菜单项。这是 Pigment 的命令之一的简单示例:
atom.menu.add([
{
'label': 'Packages',
'submenu': [
{
'label': 'Pigments',
'submenu': [
{
'label': 'Show Palette',
'command': 'pigments:show-palette'
}
]
}
]
}
]);
或者,您可以通过编程方式填充菜单。以下示例是用 JavaScript 编写的,因此您要么必须如上所述重命名 init 脚本,要么将其转换为 CoffeeScript。
const packageName = 'Pigments';
const registeredCommands = Object.keys(atom.commands.registeredCommands);
const pigmentsCommands = registeredCommands.filter(item => {
return item.startsWith(`${packageName.toLowerCase()}:`)
});
if (!pigmentsCommands.length) return;
const menuItems = [
{
'label': 'Packages',
'submenu': [
{
'label': packageName,
'submenu': pigmentsCommands.map(command => {
const [, label] = command.split(':');
return {
// TODO: Format the label
label: label,
command: command
}
})
}
]
}
];
atom.menu.add(menuItems);
【讨论】: