diff --git a/src/main.tsx b/src/main.tsx index 796319e..2d6a734 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -30,6 +30,7 @@ import * as SCMPlugin from './plugins/web-scm.plugin'; import * as AlexApp from './plugins/alex-app.plugin'; import { StartupModule } from './module/Startup.module' +import { ToobarModule } from './module/ToolBar.module'; const CodeServiceModule = requireModule( '@alipay/alex-code-service' @@ -64,6 +65,9 @@ const layoutConfig = { [SlotLocation.extra]: { modules: ['breadcrumb-menu'], }, + [SlotLocation.action]: { + modules: ['@opensumi/ide-toolbar-action'], + }, }; const platformConfig = { @@ -108,6 +112,7 @@ const App = () => ( }), CodeAPIModule, StartupModule, + ToobarModule, ], extensionMetadata: [ css, diff --git a/src/module/ToolBar.module.ts b/src/module/ToolBar.module.ts new file mode 100644 index 0000000..5fbc37d --- /dev/null +++ b/src/module/ToolBar.module.ts @@ -0,0 +1,38 @@ +import { requireModule } from "alex"; +import { ToolBarRightBtn } from "./editorEmpty.view"; +const CommonDI = requireModule("@opensumi/di"); +const CoreBrowser = requireModule("@opensumi/ide-core-browser"); +const Editor = requireModule("@opensumi/ide-editor"); +const Theme = requireModule("@opensumi/ide-theme"); + +const { Injectable } = CommonDI; +const { BrowserModule, Domain, MenuContribution , ToolBarActionContribution} = CoreBrowser; + +// 注册 toobar 参考 https://github.com/opensumi/core/blob/main/packages/core-browser/__tests__/toolbar.test.ts +@Domain(ToolBarActionContribution, MenuContribution) +export class ToolbarContribution { + registerToolbarActions(registry: any) { + registry.addLocation('menu-right'); + registry.setDefaultLocation('menu-right'); + + registry.registerToolbarAction({ + description: '跳转标准版 Ant Codespaces', + component: ToolBarRightBtn, + id: 'toolbar-right-btn', + weight: 1, + preferredPosition: { + location: 'menu-right', + }, + neverCollapse: true, + }); + } + registerMenus(menus:any) { + // 由于目前 toolbar 尚未处理插件自定义组件展示,因此先卸载掉toolbar的右键 + menus.unregisterMenuId('kt/toolbar/context'); + } +} + +@Injectable() +export class ToobarModule extends BrowserModule { + providers: any[] = [ToolbarContribution]; +} \ No newline at end of file diff --git a/src/module/editorEmpty.view.tsx b/src/module/editorEmpty.view.tsx index aee937f..5ae73e2 100644 --- a/src/module/editorEmpty.view.tsx +++ b/src/module/editorEmpty.view.tsx @@ -1,7 +1,11 @@ export const EditorEmptyComponent = () => { - return ( -
- test empty page -
- ); -}; \ No newline at end of file + return
test empty page
; +}; + +export const ToolBarRightBtn = () => { + const clickFn = () => { + console.log(1); + }; + + return ; +};