【问题标题】:I want pigments package in packages list of menu bar我想在菜单栏的包列表中包含颜料包
【发布时间】:2021-06-30 12:40:51
【问题描述】:

我已经在 atom 中安装了颜料包。我可以在设置安装包中看到这个包。 但是我怎样才能在菜单栏中的包列表中看到这个包。

【问题讨论】:

  • 要将答案标记为已接受,请单击答案旁边的复选标记以将其从灰色切换为已填充。

标签: atom-editor


【解决方案1】:

由于某种原因,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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2023-01-20
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多