diff --git a/extensions/html-language-features/server/build/javaScriptLibraryLoader.js b/extensions/html-language-features/server/build/javaScriptLibraryLoader.js index 85792138ba4..51e74618042 100644 --- a/extensions/html-language-features/server/build/javaScriptLibraryLoader.js +++ b/extensions/html-language-features/server/build/javaScriptLibraryLoader.js @@ -31,7 +31,7 @@ module.exports = function () { queue.push(name); }; - enqueue('es6'); + enqueue('es2020.full'); var result = []; while (queue.length > 0) { diff --git a/extensions/html-language-features/server/src/modes/javascriptLibs.ts b/extensions/html-language-features/server/src/modes/javascriptLibs.ts index bdca89be362..7abf94edf22 100644 --- a/extensions/html-language-features/server/src/modes/javascriptLibs.ts +++ b/extensions/html-language-features/server/src/modes/javascriptLibs.ts @@ -24,7 +24,7 @@ export function loadLibrary(name: string) { try { content = readFileSync(libPath).toString(); } catch (e) { - console.log(`Unable to load library ${name} at ${libPath}: ${e.message}`); + console.log(`Unable to load library ${name} at ${libPath}`); content = ''; } contents[name] = content; diff --git a/extensions/html-language-features/server/src/modes/javascriptMode.ts b/extensions/html-language-features/server/src/modes/javascriptMode.ts index 7f9e3f1d85a..a119a9248ae 100644 --- a/extensions/html-language-features/server/src/modes/javascriptMode.ts +++ b/extensions/html-language-features/server/src/modes/javascriptMode.ts @@ -19,7 +19,7 @@ import { getSemanticTokens, getSemanticTokenLegend } from './javascriptSemanticT const JS_WORD_REGEX = /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g; function getLanguageServiceHost(scriptKind: ts.ScriptKind) { - const compilerOptions: ts.CompilerOptions = { allowNonTsExtensions: true, allowJs: true, lib: ['lib.es6.d.ts'], target: ts.ScriptTarget.Latest, moduleResolution: ts.ModuleResolutionKind.Classic, experimentalDecorators: false }; + const compilerOptions: ts.CompilerOptions = { allowNonTsExtensions: true, allowJs: true, lib: ['lib.es2020.full.d.ts'], target: ts.ScriptTarget.Latest, moduleResolution: ts.ModuleResolutionKind.Classic, experimentalDecorators: false }; let currentTextDocument = TextDocument.create('init', 'javascript', 1, ''); const jsLanguageService = import(/* webpackChunkName: "javascriptLibs" */ './javascriptLibs').then(libs => { @@ -52,7 +52,7 @@ function getLanguageServiceHost(scriptKind: ts.ScriptKind) { }; }, getCurrentDirectory: () => '', - getDefaultLibFileName: (_options: ts.CompilerOptions) => 'es6', + getDefaultLibFileName: (_options: ts.CompilerOptions) => 'es2020.full', readFile: (path: string, _encoding?: string | undefined): string | undefined => { if (path === currentTextDocument.uri) { return currentTextDocument.getText(); @@ -66,6 +66,15 @@ function getLanguageServiceHost(scriptKind: ts.ScriptKind) { } else { return !!libs.loadLibrary(path); } + }, + directoryExists: (path: string): boolean => { + // typescript tries to first find libraries in node_modules/@types and node_modules/@typescript + // there's no node_modules in our setup + if (path.startsWith('node_modules')) { + return false; + } + return true; + } }; return ts.createLanguageService(host);