右键菜单

  • 打开菜单事件

    1
    2
    3
    this.app.workspace.on("file-menu", ({ menu, path }) => {

    })
  • 移除所有菜单项

    1
    2
    3
    this.app.workspace.on("file-menu", ({ menu, path }) => {
    menu.empty();
    })
  • 指定的现有菜单项之后插入一个 菜单项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    this.app.workspace.on("file-menu", ({ menu, path }) => {
    // 在 打开 菜单下添加一个菜单项
    menu.insertItemAfter('[data-action="open"]', (item) => {
    // 设置菜单项的信息
    item.setKey("api-demo-fs") // 唯一ID

    // 设置标题
    item.setTitle("标题")

    // 设置左侧的图标。可以是一个字体图标类名(如 `'fa fa-...'`)或一个 HTMLElement。
    item.setIcon("fa-solid fa-file")

    // 菜单单击事件
    item.onClick(async () => {
    console.log(`文件或目录路径:${path}`);
    })

    // 设置子菜单
    item.setSubmenu((submenu) => {
    // 添加一个菜单项
    submenu.addItem((item) => {
    item.setKey("api-demo-fs-path2")
    item.setTitle("aaaaa")
    item.onClick(async () => {
    console.log(`当前文件路径:${path}`);
    });
    });

    // 添加一个分割线
    submenu.addSeparator();
    });
    });
    });
  • 指定的现有菜单项之后插入一个 分割线

    1
    2
    3
    this.app.workspace.on("file-menu", ({ menu, path }) => {
    menu.insertSeparatorAfter('[data-action="open"]');
    });
  • 移除由插件添加的菜单项

    1
    2
    3
    this.app.workspace.on("file-menu", ({ menu, path }) => {
    menu.removeExtendedMenuItem();
    });