Skip to content

Commit cbd52ab

Browse files
author
guqiankun.gqk
committed
fix: contextKeyService dispose 报错
1 parent 7f91666 commit cbd52ab

3 files changed

Lines changed: 30 additions & 2 deletions

File tree

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ export class ChangesTreeContribution
168168
order: 4,
169169
});
170170

171-
// 在代码折叠上线之前先隐藏掉这个展开全文的按钮
172171
menus.registerMenuItem(MenuId.EditorTitle, {
173172
command: {
174173
id: ChangesTreeCommands.ExpandFile.id,

packages/core/src/client/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
PreferenceProviderProvider,
88
PreferenceScope,
99
PreferenceProvider,
10+
IContextKeyService,
1011
} from '@opensumi/ide-core-browser';
1112
import { BackService, BasicModule } from '@opensumi/ide-core-common';
1213
import { WSChannelHandler } from '@opensumi/ide-connection/lib/browser';
@@ -39,7 +40,7 @@ import {
3940
MonacoSnippetSuggestProviderOverride,
4041
MonacoSnippetSuggestProvider,
4142
} from './override/snippet.service';
42-
43+
import { MonacoContextKeyService } from './override/monacoContextKeyService';
4344
export * from './override/codeEditorService';
4445

4546
export { ExtensionManagerModule as ExtensionClientManagerModule } from './extension-manager';
@@ -85,6 +86,11 @@ export class ClientModule extends BrowserModule {
8586
useClass: MonacoSnippetSuggestProviderOverride,
8687
override: true,
8788
},
89+
{
90+
token: IContextKeyService,
91+
useClass: MonacoContextKeyService,
92+
override: true,
93+
},
8894
];
8995
preferences = injectDebugPreferences;
9096
}
@@ -158,6 +164,7 @@ export class ClientApp extends BasicClientApp {
158164
}
159165
}
160166
async dispose() {
167+
console.log('dispose =======');
161168
super.dispose();
162169
this.clearInjector();
163170
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { Autowired, Injectable } from '@opensumi/di';
2+
import { IContextKeyService } from '@opensumi/ide-core-browser';
3+
import { IConfigurationService } from '@opensumi/monaco-editor-core/esm/vs/platform/configuration/common/configuration';
4+
import { MonacoContextKeyService as BaseContextKeyService } from '@opensumi/ide-monaco/lib/browser/monaco.context-key.service';
5+
import { ContextKeyService } from '@opensumi/monaco-editor-core/esm/vs/platform/contextkey/browser/contextKeyService';
6+
// TODO 暂时此处覆盖其 dispose 防止报错
7+
@Injectable()
8+
export class MonacoContextKeyService extends BaseContextKeyService implements IContextKeyService {
9+
@Autowired(IConfigurationService)
10+
protected readonly configurationService: IConfigurationService;
11+
12+
public readonly contextKeyService: ContextKeyService;
13+
14+
constructor() {
15+
super();
16+
this.contextKeyService = new ContextKeyService(this.configurationService);
17+
this.listenToContextChanges();
18+
}
19+
dispose(): void {
20+
// 覆盖MonacoContextKeyService
21+
}
22+
}

0 commit comments

Comments
 (0)