add setEagerModelSync-function to defaults, fixes #461

This commit is contained in:
Johannes Rieken 2017-06-19 12:01:58 +02:00
parent 9b5c885b40
commit 9542c9f433
3 changed files with 36 additions and 8 deletions

View file

@ -19,6 +19,7 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.
private _onDidChange = new Emitter<monaco.languages.typescript.LanguageServiceDefaults>();
private _extraLibs: { [path: string]: string };
private _workerMaxIdleTime: number;
private _eagerModelSync: boolean;
private _compilerOptions: monaco.languages.typescript.CompilerOptions;
private _diagnosticsOptions: monaco.languages.typescript.DiagnosticsOptions;
@ -89,6 +90,16 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.
getWorkerMaxIdleTime() {
return this._workerMaxIdleTime;
}
setEagerModelSync(value: boolean) {
// doesn't fire an event since no
// worker restart is required here
this._eagerModelSync = value;
}
getEagerModelSync() {
return this._eagerModelSync;
}
}
// --- BEGIN enums copied from typescript to prevent loading the entire typescriptServices ---

6
src/monaco.d.ts vendored
View file

@ -136,6 +136,12 @@ declare module monaco.languages.typescript {
* mean never shut down.
*/
setMaximunWorkerIdleTime(value: number): void;
/**
* Configure if all existing models should be eagerly sync'd
* to the worker on start or restart.
*/
setEagerModelSync(value: boolean): void;
}
export var typescriptDefaults: LanguageServiceDefaults;

View file

@ -74,7 +74,18 @@ export class WorkerManager {
}
});
this._client = this._worker.getProxy();
let p = this._worker.getProxy();
if (this._defaults.getEagerModelSync()) {
p = p.then(worker => {
return this._worker.withSyncedResources(monaco.editor.getModels()
.filter(model => model.getModeId() === this._modeId)
.map(model => model.uri)
);
})
}
this._client = p;
}
return this._client;