mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
Some error handling
This commit is contained in:
@@ -100,7 +100,7 @@ const ignoredErrors = [
|
||||
2792, /* Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option */
|
||||
];
|
||||
|
||||
export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocumentRegions>, languageId: 'javascript' | 'typescript', workspace: Workspace, extensionUri: Uri): LanguageMode {
|
||||
export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocumentRegions>, languageId: 'javascript' | 'typescript', workspace: Workspace, extensionUri?: Uri): LanguageMode {
|
||||
const jsDocuments = getLanguageModelCache<TextDocument>(10, 60, document => documentRegions.get(document).getEmbeddedDocument(languageId));
|
||||
|
||||
const host = getLanguageServiceHost(languageId === 'javascript' ? ts.ScriptKind.JS : ts.ScriptKind.TS);
|
||||
@@ -311,16 +311,22 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache<HTMLDocume
|
||||
range: convertRange(jsDocument, d.textSpan)
|
||||
};
|
||||
} else {
|
||||
if (!extensionUri) {
|
||||
return undefined;
|
||||
}
|
||||
const filePath = path.posix.join(extensionUri.path, '../node_modules/typescript/lib', d.fileName);
|
||||
const libUri = `${extensionUri.scheme}://${filePath}`;
|
||||
const content = loadLibrary(d.fileName);
|
||||
if (!content) {
|
||||
return undefined;
|
||||
}
|
||||
const libDocument = TextDocument.create(libUri, 'typescript', 1, content);
|
||||
return {
|
||||
uri: libUri,
|
||||
range: convertRange(libDocument, d.textSpan)
|
||||
};
|
||||
}
|
||||
});
|
||||
}).filter(d => !!d);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
@@ -113,7 +113,7 @@ export interface Uri {
|
||||
path: string;
|
||||
}
|
||||
|
||||
export function getLanguageModes(supportedLanguages: { [languageId: string]: boolean }, workspace: Workspace, clientCapabilities: ClientCapabilities, requestService: FileSystemProvider, extensionUri: Uri): LanguageModes {
|
||||
export function getLanguageModes(supportedLanguages: { [languageId: string]: boolean }, workspace: Workspace, clientCapabilities: ClientCapabilities, requestService: FileSystemProvider, extensionUri?: Uri): LanguageModes {
|
||||
const htmlLanguageService = getHTMLLanguageService({ clientCapabilities, fileSystemProvider: requestService });
|
||||
const cssLanguageService = getCSSLanguageService({ clientCapabilities, fileSystemProvider: requestService });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user