-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
Description
我使用示例仓库 增加了几个菜单
import {Autowired} from '@opensumi/di';
import {CommandContribution, CommandRegistry, CommandService, Domain} from '@opensumi/ide-core-browser';
import {IMenuRegistry, MenuContribution} from '@opensumi/ide-core-browser/lib/menu/next';
const TESTCOMMAND = {
id: 'ttttttt',
}
@Domain(CommandContribution, MenuContribution)
export class RegisterMenuContribution implements CommandContribution, MenuContribution {
@Autowired(CommandService)
private readonly commandService: CommandService;
registerMenus(registry: IMenuRegistry): void {
// 在 Menubar 区域注册一个新的菜单
registry.registerMenubarItem("TestMenuBarId", {
label: 'OpenSumi',
order: 0
});
// 注册二级菜单
const SubMenuId = 'test/next';
registry.registerMenuItem("TestMenuBarId", {
submenu: SubMenuId,
label: 'Hover Me',
group: '1_second',
});
}
registerCommands(commands: CommandRegistry): void {
commands.registerCommand(
{id: TESTCOMMAND.id},
{
execute: () => {
console.log('test command')
},
})
// 解绑 重命名命令
commands.unregisterCommand('terminal.split')
commands.registerCommand({id: 'terminal.split'})
this.commandService.executeCommand(TESTCOMMAND.id)
}
}
引入
@Injectable()
export class StartupModule extends BrowserModule {
providers: Provider[] = [AlexAppContribution, RegisterMenuContribution];
}
