提交 86ba9e4e 编写于 作者: A Alex Dima

Remove editorWorkerService dep from modeService

上级 f61d3681
......@@ -423,10 +423,12 @@ export function getAPI(): typeof vscode {
export function createCustomMode(language:MonarchTypes.ILanguage): TPromise<Modes.IMode> {
startup.initStaticServicesIfNecessary();
var modeService = standaloneServices.ensureStaticPlatformServices(null).modeService;
let staticPlatformServices = standaloneServices.ensureStaticPlatformServices(null);
let modeService = staticPlatformServices.modeService;
let editorWorkerService = staticPlatformServices.editorWorkerService;
var modeId = language.name;
var name = language.name;
let modeId = language.name;
let name = language.name;
ModesRegistry.registerLanguage({
id: modeId,
......@@ -434,7 +436,7 @@ export function createCustomMode(language:MonarchTypes.ILanguage): TPromise<Mode
});
PluginsRegistry.registerOneTimeActivationEventListener('onLanguage:' + modeId, () => {
modeService.registerMonarchDefinition(modeId, language);
modeService.registerMonarchDefinition(editorWorkerService, modeId, language);
});
return modeService.getOrCreateMode(modeId);
......@@ -451,8 +453,11 @@ export function registerStandaloneLanguage(language:ILanguageExtensionPoint, def
}
startup.initStaticServicesIfNecessary();
var modeService = standaloneServices.ensureStaticPlatformServices(null).modeService;
modeService.registerMonarchDefinition(language.id, value.language);
let staticPlatformServices = standaloneServices.ensureStaticPlatformServices(null);
let modeService = staticPlatformServices.modeService;
let editorWorkerService = staticPlatformServices.editorWorkerService;
modeService.registerMonarchDefinition(editorWorkerService, language.id, value.language);
}, (err) => {
console.error('Cannot find module ' + defModule, err);
});
......
......@@ -195,7 +195,7 @@ export function getOrCreateStaticServices(services?: IEditorOverrideServices): I
var modeService = services.modeService;
if (!modeService) {
modeService = new MainThreadModeServiceImpl(threadService, pluginService, modelService, editorWorkerService);
modeService = new MainThreadModeServiceImpl(threadService, pluginService, modelService);
}
var codeEditorService = services.codeEditorService || new CodeEditorServiceImpl();
......
......@@ -15,6 +15,7 @@ import {IReferenceContribution} from 'vs/editor/common/modes/supports/referenceS
import {IParameterHintsContribution} from 'vs/editor/common/modes/supports/parameterHintsSupport';
import {ISuggestContribution} from 'vs/editor/common/modes/supports/suggestSupport';
import Event from 'vs/base/common/event';
import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService';
export var IModeService = createDecorator<IModeService>('modeService');
......@@ -77,5 +78,5 @@ export interface IModeService {
registerTokenizationSupport(modeId: string, callback: (mode: Modes.IMode) => Modes.ITokenizationSupport): IDisposable;
registerRichEditSupport(modeId: string, support: IRichEditConfiguration): IDisposable;
registerMonarchDefinition(modeId:string, language:MonarchTypes.ILanguage): IDisposable;
registerMonarchDefinition(editorWorkerService:IEditorWorkerService, modeId:string, language:MonarchTypes.ILanguage): IDisposable;
}
......@@ -419,7 +419,7 @@ export class ModeServiceImpl implements IModeService {
);
}
public registerMonarchDefinition(modeId:string, language:MonarchTypes.ILanguage): IDisposable {
public registerMonarchDefinition(editorWorkerService:IEditorWorkerService, modeId:string, language:MonarchTypes.ILanguage): IDisposable {
var lexer = compile(Objects.clone(language));
return this.doRegisterMonarchDefinition(modeId, lexer);
}
......@@ -483,18 +483,15 @@ export class ModeServiceImpl implements IModeService {
export class MainThreadModeServiceImpl extends ModeServiceImpl {
private _modelService: IModelService;
private _editorWorkerService:IEditorWorkerService;
private _hasInitialized: boolean;
constructor(
threadService:IThreadService,
pluginService:IPluginService,
modelService:IModelService,
editorWorkerService:IEditorWorkerService
modelService:IModelService
) {
super(threadService, pluginService);
this._modelService = modelService;
this._editorWorkerService = editorWorkerService;
this._hasInitialized = false;
languagesExtPoint.setHandler((extensions:IExtensionPointUser<ILanguageExtensionPoint[]>[]) => {
......@@ -564,14 +561,14 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl {
return super.registerModeSupport(modeId, support, callback);
}
public registerMonarchDefinition(modeId:string, language:MonarchTypes.ILanguage): IDisposable {
public registerMonarchDefinition(editorWorkerService:IEditorWorkerService, modeId:string, language:MonarchTypes.ILanguage): IDisposable {
this._getModeServiceWorkerHelper().registerMonarchDefinition(modeId, language);
var lexer = compile(Objects.clone(language));
return combinedDispose(
super.doRegisterMonarchDefinition(modeId, lexer),
this.registerModeSupport(modeId, 'suggestSupport', (mode) => {
return MonarchDefinition.createSuggestSupport(this._modelService, this._editorWorkerService, modeId, lexer);
return MonarchDefinition.createSuggestSupport(this._modelService, editorWorkerService, modeId, lexer);
})
);
}
......@@ -614,6 +611,6 @@ export class ModeServiceWorkerHelper {
}
public registerMonarchDefinition(modeId:string, language:MonarchTypes.ILanguage): void {
this._modeService.registerMonarchDefinition(modeId, language);
this._modeService.registerMonarchDefinition(null, modeId, language);
}
}
\ No newline at end of file
}
......@@ -276,7 +276,7 @@ export class WorkbenchShell {
let modelService = new ModelServiceImpl(this.threadService, markerService);
let editorWorkerService = new EditorWorkerServiceImpl(modelService);
let modeService = new MainThreadModeServiceImpl(this.threadService, pluginService, modelService, editorWorkerService);
let modeService = new MainThreadModeServiceImpl(this.threadService, pluginService, modelService);
let untitledEditorService = new UntitledEditorService();
this.themeService = new ThemeService(pluginService);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册