mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 19:42:56 +01:00
add setEagerModelSync-function to defaults, fixes #461
This commit is contained in:
parent
9b5c885b40
commit
9542c9f433
3 changed files with 36 additions and 8 deletions
|
|
@ -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
6
src/monaco.d.ts
vendored
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue