opensumi / ide-electron

OpenSumi Electron Version
https://opensumi.com
MIT License
171 stars 56 forks source link

注册自定义菜单无效果 #100

Closed linlingyu closed 7 months ago

linlingyu commented 7 months ago

按装官方的文档注册一个新自定义菜单发现没有能够成功: 代码如下所示,直接在ide-electron源码中src/modules/basic/browser中的注册子菜单代码进行的修改

截屏2024-01-31 21 18 17

运行结果:

launch

请问需要如何才能够使注册菜单生效?

erha19 commented 7 months ago

@linlingyu 检查一下:

  1. 代码是否有构建成产物
  2. 注册菜单的命令是否有引入启动逻辑内
linlingyu commented 7 months ago

@linlingyu 检查一下:

  1. 代码是否有构建成产物
  2. 注册菜单的命令是否有引入启动逻辑内

我是直接在ide-electron/src/modules/basic/browser/menu.contribution.ts源码基础上改的。源码是注册一个一级菜单的子菜单,运行起来是正常的。于是我就注释了源码注册子菜单的部份,改成注册一级菜单项,运行结果无法出现一级菜单项。 我又尝试按照官网文档的方式注册子菜单,发现又是好的。结论就是好像注册一级菜单项是注册不了的。

import { MenuContribution } from '@opensumi/ide-core-browser/lib/menu/next';
import { Domain } from '@opensumi/ide-core-common';
@Domain(MenuContribution)
export class LocalMenuContribution implements MenuContribution {
  registerMenus(menuRegistry: IMenuRegistry): void {
    menuRegistry.registerMenubarItem('menubar/helloworld', {
      label: 'Hello',
      order: 1,
    });
  }
}

debug的时候,已经看到调用了setMenuItems,菜单项menubar/helloworl已经添到数组,但是界面就是没显示啊

截屏2024-02-01 12 29 20
linlingyu commented 7 months ago

通过进一步研究发现,只是注册一个一级菜单是不能显示的,需要再注册一级菜单的子菜单以后就会显示出来了