Skip to content
This repository has been archived by the owner on Nov 5, 2021. It is now read-only.

register multiple extra libs at once #24

Merged
merged 4 commits into from Dec 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/monaco.contribution.ts
Expand Up @@ -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 {
if (this._onDidExtraLibsChangeTimeout !== -1) {
// already scheduled
Expand Down
10 changes: 9 additions & 1 deletion src/monaco.d.ts
Expand Up @@ -136,7 +136,7 @@ declare module monaco.languages.typescript {
/**
* Add an additional source file to the language service. Use this
* 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 filePath An optional file path
Expand All @@ -145,6 +145,14 @@ declare module monaco.languages.typescript {
*/
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.
*/
Expand Down