Skip to content

Commit 32d756d

Browse files
author
guqiankun.gqk
committed
fix: 注册时序问题
1 parent cbd52ab commit 32d756d

3 files changed

Lines changed: 53 additions & 31 deletions

File tree

packages/acr/src/modules/merge-request/merge-request.contribution.ts

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,33 @@
1-
import { Domain, getIcon, localize } from '@opensumi/ide-core-browser';
2-
import { ComponentContribution, ComponentRegistry } from '@opensumi/ide-core-browser/lib/layout';
1+
import { Domain, getIcon, localize, SlotLocation } from '@opensumi/ide-core-browser';
2+
import {
3+
ComponentContribution,
4+
ComponentRegistry,
5+
ClientAppContribution,
6+
} from '@opensumi/ide-core-browser';
7+
import { Autowired } from '@opensumi/di';
38

49
import { MergeRequestSummary } from './mr-summary';
510
import { MergeRequestExplorerId } from './common';
611
import { ChangeTreeView } from './changes-tree';
712
import { WebSCMView } from './web-scm';
813
import { MenuContribution, IMenuRegistry } from '@opensumi/ide-core-browser/lib/menu/next';
14+
import { LayoutState, LAYOUT_STATE } from '@opensumi/ide-core-browser/lib/layout/layout-state';
15+
import { IMainLayoutService } from '@opensumi/ide-main-layout';
16+
17+
@Domain(ComponentContribution, MenuContribution, ClientAppContribution)
18+
// @ts-ignore
19+
export class MergeRequestContribution
20+
implements ComponentContribution, MenuContribution, ClientAppContribution
21+
{
22+
@Autowired(IMainLayoutService)
23+
layoutService: IMainLayoutService;
24+
25+
@Autowired(ComponentRegistry)
26+
componentRegistry: ComponentRegistry;
27+
28+
@Autowired()
29+
private layoutState: LayoutState;
930

10-
@Domain(ComponentContribution, MenuContribution)
11-
export class MergeRequestContribution implements ComponentContribution, MenuContribution {
12-
// MR Explorer
1331
registerComponent(registry: ComponentRegistry) {
1432
registry.register(MergeRequestExplorerId, [ChangeTreeView, WebSCMView], {
1533
titleComponent: MergeRequestSummary,
@@ -19,6 +37,27 @@ export class MergeRequestContribution implements ComponentContribution, MenuCont
1937
});
2038
}
2139

40+
onDidStart() {
41+
const tabbarService = this.layoutService.getTabbarService(SlotLocation.left);
42+
const componentRegistry =
43+
this.componentRegistry.getComponentRegistryInfo(MergeRequestExplorerId);
44+
if (componentRegistry) {
45+
tabbarService.registerContainer(MergeRequestExplorerId, componentRegistry);
46+
const state = this.layoutState.getState(LAYOUT_STATE.MAIN, {});
47+
let currentId: string,
48+
size: number = 0,
49+
show = true;
50+
for (const key in state) {
51+
if (key === SlotLocation.left) {
52+
currentId = state[key]?.currentId;
53+
size = state[key]?.size || 0;
54+
show = currentId ? true : false;
55+
}
56+
}
57+
this.layoutService.toggleSlot(SlotLocation.left, show, size);
58+
}
59+
}
60+
2261
registerMenus(menus: IMenuRegistry) {
2362
// 卸载左侧面板的右键菜单
2463
menus.unregisterMenuId(`accordion/${MergeRequestExplorerId}`);
Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,12 @@
11
import { ExtraMetadata, IExtensionMetadata } from '@alipay/alex-shared';
22

3+
import {
4+
IExtensionNodeClientService,
5+
ExtensionNodeServiceServerPath,
6+
} from '@opensumi/ide-extension';
7+
38
// https://medium.com/javascript-in-plain-english/leveraging-type-only-imports-and-exports-with-typescript-3-8-5c1be8bd17fb
49
// https://blog.logrocket.com/whats-new-in-typescript-3-8/
510
export type { ExtraMetadata, IExtensionMetadata };
611

7-
export const ExtensionNodeServiceServerPath = 'ExtensionNodeServiceServerPath';
8-
9-
export const IExtensionNodeClientService = Symbol('IExtensionNodeClientService');
10-
export interface IExtensionNodeClientService {
11-
getElectronMainThreadListenPath(clientId: string): Promise<string>;
12-
getAllExtensions(
13-
scan: string[],
14-
extensionCandidate: string[],
15-
localization: string,
16-
extraMetaData: ExtraMetadata
17-
): Promise<IExtensionMetadata[]>;
18-
createProcess(clientId: string): Promise<void>;
19-
getExtension(
20-
extensionPath: string,
21-
localization: string,
22-
extraMetaData?: ExtraMetadata
23-
): Promise<IExtensionMetadata | undefined>;
24-
infoProcessNotExist(): void;
25-
infoProcessCrash(): void;
26-
disposeClientExtProcess(clientId: string, info: boolean): Promise<void>;
27-
updateLanguagePack(
28-
languageId: string,
29-
languagePackPath: string,
30-
storagePath: string
31-
): Promise<void>;
32-
}
12+
export { IExtensionNodeClientService, ExtensionNodeServiceServerPath };

packages/core/src/server/kaitian-extension/extension.service.client.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ export class ExtensionServiceClientImpl implements IExtensionNodeClientService {
6767
updateLanguagePack(): Promise<void> {
6868
return Promise.resolve();
6969
}
70+
restartExtProcessByClient(): void {
71+
throw new Error('Method not implemented.');
72+
}
7073
}
7174

7275
async function getExtraMetaData(

0 commit comments

Comments
 (0)