Atom Editor插件:我可以创建一个对话框吗?

时间:2017-03-14 05:19:48

标签: javascript plugins dialog atom-editor

我正在编写一个Atom插件,但我想与用户一起检查一些选项。

该插件包含不同任务的子菜单。每项任务都需要设置几个选项。

为此,我想提供一个对话框,其中包含您在HTML表单中使用的表单控件,例如复选框,单选按钮和文本框。我希望每个子菜单项都有一个不同的对话框。

Atom Editor似乎没有太多使用它们,所以我甚至不确定它是否可以完成。

如何创建或模拟对话框?

1 个答案:

答案 0 :(得分:2)

Atom API提供了多个对话框,包括confirmmodalnotifications。除非您想使用自己的逻辑编写自己的模态,否则您可以使用通知来表明您的包需要调整其设置。

示例:

var meta, notification;

meta = require("../package.json");

if (atom.config.get(meta.name + ".essentialSetting") === false) {
  notification = atom.notifications.addWarning("You need to adjust your package settings", {
    dismissable: true,
    buttons: [
      {
        text: "Open Settings",
        onDidClick: function() {
          atom.workspace.open("atom://config/packages/" + meta.name);
          return notification.dismiss();
        }
      }
    ]
  });
}

意见:如果你决定把它放在activate()中,那么可能通过添加第二个按钮来减少这种不那么突兀:

{
  text: 'Ignore',
  onDidClick: function () {
    atom.config.set(meta.name + '.muteWarning', true);
    notification.dismiss();
  }
}

PS:您可以忽略meta.name位并将其替换为您的设置名称,这是我在大多数软件包中使用的方便。