Skip to content

Commit f13f22e

Browse files
committed
Towards eliminating IExtensionService from standalone editor
1 parent 24c9eba commit f13f22e

5 files changed

Lines changed: 9 additions & 13 deletions

File tree

src/vs/editor/browser/standalone/standaloneLanguages.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import { TPromise } from 'vs/base/common/winjs.base';
99
import { IDisposable } from 'vs/base/common/lifecycle';
10-
import { onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry';
1110
import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry';
1211
import { IMonarchLanguage } from 'vs/editor/common/modes/monarch/monarchTypes';
1312
import { ILanguageExtensionPoint } from 'vs/editor/common/services/modeService';
@@ -47,9 +46,8 @@ export function getLanguages(): ILanguageExtensionPoint[] {
4746
* @event
4847
*/
4948
export function onLanguage(languageId: string, callback: () => void): IDisposable {
50-
const desired = 'onLanguage:' + languageId;
51-
let disposable = onWillActivate.event((activationEvent) => {
52-
if (activationEvent === desired) {
49+
let disposable = StaticServices.modeService.get().onDidCreateMode((mode) => {
50+
if (mode.getId() === languageId) {
5351
// stop listening
5452
disposable.dispose();
5553
// invoke actual listener

src/vs/editor/browser/standalone/standaloneServices.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { ICodeEditorService } from 'vs/editor/common/services/codeEditorService'
2828
import { IEditorWorkerService } from 'vs/editor/common/services/editorWorkerService';
2929
import { EditorWorkerServiceImpl } from 'vs/editor/common/services/editorWorkerServiceImpl';
3030
import { IModeService } from 'vs/editor/common/services/modeService';
31-
import { MainThreadModeServiceImpl } from 'vs/editor/common/services/modeServiceImpl';
31+
import { ModeServiceImpl } from 'vs/editor/common/services/modeServiceImpl';
3232
import { IModelService } from 'vs/editor/common/services/modelService';
3333
import { ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl';
3434
import { CodeEditorServiceImpl } from 'vs/editor/browser/services/codeEditorServiceImpl';
@@ -129,7 +129,7 @@ export module StaticServices {
129129

130130
export const markerService = define(IMarkerService, () => new MarkerService());
131131

132-
export const modeService = define(IModeService, (o) => new MainThreadModeServiceImpl(instantiationService.get(o), extensionService.get(o), configurationService.get(o)));
132+
export const modeService = define(IModeService, (o) => new ModeServiceImpl(instantiationService.get(o), extensionService.get(o)));
133133

134134
export const modelService = define(IModelService, (o) => new ModelServiceImpl(markerService.get(o), configurationService.get(o), messageService.get(o)));
135135

src/vs/editor/common/services/modeServiceImpl.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,6 @@ export class ModeServiceImpl implements IModeService {
299299
this._instantiatedModes[modeId] = new FrankensteinMode(languageIdentifier);
300300

301301
this._onDidCreateMode.fire(this._instantiatedModes[modeId]);
302-
303-
this._extensionService.activateByEvent(`onLanguage:${modeId}`).done(null, onUnexpectedError);
304302
}
305303
return this._instantiatedModes[modeId];
306304
}
@@ -352,6 +350,10 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl {
352350
});
353351

354352
this._configurationService.onDidUpdateConfiguration(e => this.onConfigurationChange(e.config));
353+
354+
this.onDidCreateMode((mode) => {
355+
this._extensionService.activateByEvent(`onLanguage:${mode.getId()}`).done(null, onUnexpectedError);
356+
});
355357
}
356358

357359
public onReady(): TPromise<boolean> {

src/vs/platform/extensions/common/abstractExtensionService.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import * as nls from 'vs/nls';
88
import Severity from 'vs/base/common/severity';
99
import { TPromise } from 'vs/base/common/winjs.base';
1010
import { IExtensionDescription, IExtensionService, IExtensionsStatus, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions';
11-
import { IExtensionPoint, onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry';
11+
import { IExtensionPoint } from 'vs/platform/extensions/common/extensionsRegistry';
1212

1313
const hasOwnProperty = Object.hasOwnProperty;
1414

@@ -105,7 +105,6 @@ export abstract class AbstractExtensionService<T extends ActivatedExtension> imp
105105
}
106106

107107
private _activateByEvent(activationEvent: string): TPromise<void> {
108-
onWillActivate.fire(activationEvent);
109108
let activateExtensions = this._registry.getExtensionDescriptionsForActivationEvent(activationEvent);
110109
return this._activateExtensions(activateExtensions, 0);
111110
}

src/vs/platform/extensions/common/extensionsRegistry.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,10 @@ import Severity from 'vs/base/common/severity';
1111
import { IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
1212
import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry';
1313
import { Registry } from 'vs/platform/platform';
14-
import { Emitter } from 'vs/base/common/event';
1514

1615
const hasOwnProperty = Object.hasOwnProperty;
1716
const schemaRegistry = <IJSONContributionRegistry>Registry.as(Extensions.JSONContribution);
1817

19-
export const onWillActivate: Emitter<string> = new Emitter<string>();
20-
2118
export class ExtensionMessageCollector {
2219

2320
private _messageHandler: (msg: IMessage) => void;

0 commit comments

Comments
 (0)