register multiple extra libs at once (#24)

register multiple extra libs at once
pull/2748/head
Alexandru Dima 5 years ago committed by GitHub
commit 72321822f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -93,6 +93,24 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.
}; };
} }
setExtraLibs(libs: { content: string; filePath?: string }[]): void {
// clear out everything
this._extraLibs = Object.create(null);
if (libs && libs.length > 0) {
for (const lib of libs) {
const filePath = lib.filePath || `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;
const content = lib.content;
this._extraLibs[filePath] = {
content: content,
version: 1
};
}
}
this._fireOnDidExtraLibsChangeSoon();
}
private _fireOnDidExtraLibsChangeSoon(): void { private _fireOnDidExtraLibsChangeSoon(): void {
if (this._onDidExtraLibsChangeTimeout !== -1) { if (this._onDidExtraLibsChangeTimeout !== -1) {
// already scheduled // already scheduled

10
src/monaco.d.ts vendored

@ -136,7 +136,7 @@ declare module monaco.languages.typescript {
/** /**
* Add an additional source file to the language service. Use this * Add an additional source file to the language service. Use this
* for typescript (definition) files that won't be loaded as editor * for typescript (definition) files that won't be loaded as editor
* document, like `jquery.d.ts`. * documents, like `jquery.d.ts`.
* *
* @param content The file content * @param content The file content
* @param filePath An optional file path * @param filePath An optional file path
@ -145,6 +145,14 @@ declare module monaco.languages.typescript {
*/ */
addExtraLib(content: string, filePath?: string): IDisposable; addExtraLib(content: string, filePath?: string): IDisposable;
/**
* Remove all existing extra libs and set the additional source
* files to the language service. Use this for typescript definition
* files that won't be loaded as editor documents, like `jquery.d.ts`.
* @param libs An array of entries to register.
*/
setExtraLibs(libs: { content: string; filePath?: string }[]): void;
/** /**
* Set TypeScript compiler options. * Set TypeScript compiler options.
*/ */

Loading…
Cancel
Save