diff --git a/build/lib/extensions.js b/build/lib/extensions.js index 202cded3dcc..bc715ea3baa 100644 --- a/build/lib/extensions.js +++ b/build/lib/extensions.js @@ -44,11 +44,20 @@ function fromLocal(extensionPath, sourceMappingURLBase) { contents: fs.createReadStream(filePath) }); }); var filesStream = es.readArray(files); - // check for a webpack configuration file, then invoke webpack + // check for a webpack configuration files, then invoke webpack // and merge its output with the files stream. also rewrite the package.json // file to a new entry point - if (fs.existsSync(path.join(extensionPath, 'extension.webpack.config.js'))) { - var packageJsonFilter = filter('package.json', { restore: true }); + var pattern = path.join(extensionPath, '/**/extension.webpack.config.js'); + var webpackConfigLocations = glob.sync(pattern, { ignore: ['**/node_modules'] }); + if (webpackConfigLocations.length) { + var packageJsonFilter = filter(function (f) { + if (path.basename(f.path) === 'package.json') { + // only modify package.json's next to the webpack file. + // to be safe, use existsSync instead of path comparison. + return fs.existsSync(path.join(path.dirname(f.path), 'extension.webpack.config.js')); + } + return false; + }, { restore: true }); var patchFilesStream = filesStream .pipe(packageJsonFilter) .pipe(buffer()) @@ -58,38 +67,36 @@ function fromLocal(extensionPath, sourceMappingURLBase) { return data; })) .pipe(packageJsonFilter.restore); - var webpackConfig = __assign({}, require(path.join(extensionPath, 'extension.webpack.config.js')), { mode: 'production', stats: 'errors-only' }); - var webpackStream = webpackGulp(webpackConfig, webpack) - .pipe(es.through(function (data) { - data.stat = data.stat || {}; - data.base = extensionPath; - this.emit('data', data); - })) - .pipe(es.through(function (data) { - // source map handling: - // * rewrite sourceMappingURL - // * save to disk so that upload-task picks this up - if (sourceMappingURLBase) { - var contents = data.contents.toString('utf8'); - data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { - return "\n//# sourceMappingURL=" + sourceMappingURLBase + "/extensions/" + path.basename(extensionPath) + "/dist/" + g1; - }), 'utf8'); - if (/\.js\.map$/.test(data.path)) { - if (!fs.existsSync(path.dirname(data.path))) { - fs.mkdirSync(path.dirname(data.path)); + var webpackStreams = webpackConfigLocations.map(function (webpackConfigPath) { + var webpackConfig = __assign({}, require(webpackConfigPath), { mode: 'production', stats: 'errors-only' }); + var relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path); + var webpackBaseDir = path.dirname(webpackConfigPath); + return webpackGulp(webpackConfig, webpack) + .pipe(es.through(function (data) { + data.stat = data.stat || {}; + data.base = extensionPath; + this.emit('data', data); + })) + .pipe(es.through(function (data) { + // source map handling: + // * rewrite sourceMappingURL + // * save to disk so that upload-task picks this up + if (sourceMappingURLBase) { + var contents = data.contents.toString('utf8'); + data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { + return "\n//# sourceMappingURL=" + sourceMappingURLBase + "/extensions/" + path.basename(extensionPath) + "/" + relativeOutputPath + "/" + g1; + }), 'utf8'); + if (/\.js\.map$/.test(data.path)) { + if (!fs.existsSync(path.dirname(data.path))) { + fs.mkdirSync(path.dirname(data.path)); + } + fs.writeFileSync(data.path, data.contents); } - fs.writeFileSync(data.path, data.contents); } - } - this.emit('data', data); - })); - es.merge(webpackStream, patchFilesStream) - // .pipe(es.through(function (data) { - // // debug - // console.log('out', data.path, data.contents.length); - // this.emit('data', data); - // })) - .pipe(result); + this.emit('data', data); + })); + }); + es.merge.apply(es, webpackStreams.concat([patchFilesStream])).pipe(result); } else { filesStream.pipe(result); diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index 3c74455ccad..dec4c00bd36 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -41,11 +41,21 @@ export function fromLocal(extensionPath: string, sourceMappingURLBase?: string): const filesStream = es.readArray(files); - // check for a webpack configuration file, then invoke webpack + // check for a webpack configuration files, then invoke webpack // and merge its output with the files stream. also rewrite the package.json // file to a new entry point - if (fs.existsSync(path.join(extensionPath, 'extension.webpack.config.js'))) { - const packageJsonFilter = filter('package.json', { restore: true }); + const pattern = path.join(extensionPath, '/**/extension.webpack.config.js'); + const webpackConfigLocations = (glob.sync(pattern, { ignore: ['**/node_modules'] })); + if (webpackConfigLocations.length) { + + const packageJsonFilter = filter(f => { + if (path.basename(f.path) === 'package.json') { + // only modify package.json's next to the webpack file. + // to be safe, use existsSync instead of path comparison. + return fs.existsSync(path.join(path.dirname(f.path), 'extension.webpack.config.js')); + } + return false; + }, { restore: true }); const patchFilesStream = filesStream .pipe(packageJsonFilter) @@ -57,38 +67,42 @@ export function fromLocal(extensionPath: string, sourceMappingURLBase?: string): })) .pipe(packageJsonFilter.restore); - const webpackConfig = { - ...require(path.join(extensionPath, 'extension.webpack.config.js')), - ...{ mode: 'production', stats: 'errors-only' } - }; - const webpackStream = webpackGulp(webpackConfig, webpack) - .pipe(es.through(function (data) { - data.stat = data.stat || {}; - data.base = extensionPath; - this.emit('data', data); - })) - .pipe(es.through(function (data: File) { - // source map handling: - // * rewrite sourceMappingURL - // * save to disk so that upload-task picks this up - if (sourceMappingURLBase) { - const contents = (data.contents).toString('utf8'); - data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { - return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/dist/${g1}`; - }), 'utf8'); + const webpackStreams = webpackConfigLocations.map(webpackConfigPath => { + const webpackConfig = { + ...require(webpackConfigPath), + ...{ mode: 'production', stats: 'errors-only' } + }; + let relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path); + let webpackBaseDir = path.dirname(webpackConfigPath); - if (/\.js\.map$/.test(data.path)) { - if (!fs.existsSync(path.dirname(data.path))) { - fs.mkdirSync(path.dirname(data.path)); + return webpackGulp(webpackConfig, webpack) + .pipe(es.through(function (data) { + data.stat = data.stat || {}; + data.base = extensionPath; + this.emit('data', data); + })) + .pipe(es.through(function (data: File) { + // source map handling: + // * rewrite sourceMappingURL + // * save to disk so that upload-task picks this up + if (sourceMappingURLBase) { + const contents = (data.contents).toString('utf8'); + data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { + return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`; + }), 'utf8'); + + if (/\.js\.map$/.test(data.path)) { + if (!fs.existsSync(path.dirname(data.path))) { + fs.mkdirSync(path.dirname(data.path)); + } + fs.writeFileSync(data.path, data.contents); } - fs.writeFileSync(data.path, data.contents); } - } - this.emit('data', data); - })) - ; + this.emit('data', data); + })); + }); - es.merge(webpackStream, patchFilesStream) + es.merge(...webpackStreams, patchFilesStream) // .pipe(es.through(function (data) { // // debug // console.log('out', data.path, data.contents.length); diff --git a/extensions/css-language-features/.vscodeignore b/extensions/css-language-features/.vscodeignore index debeb96e691..89a62ee0761 100644 --- a/extensions/css-language-features/.vscodeignore +++ b/extensions/css-language-features/.vscodeignore @@ -1,11 +1,21 @@ test/** .vscode/** -client/src/** -client/tsconfig.json -server/src/** -server/test/** -server/out/test/** server/.vscode/** +node_modules/** +server/node_modules/** +client/src/** +server/src/** +client/out/** +server/out/** +client/tsconfig.json server/tsconfig.json -**/node_modules/@types/** -**/node_modules/*/lib/esm/** \ No newline at end of file +server/test/** +server/bin/** +server/build/** +server/yarn.lock +server/.npmignore +yarn.lock +server/extension.webpack.config.js +extension.webpack.config.js +!node_modules/vscode-nls/** +!server/node_modules/vscode-nls/** \ No newline at end of file diff --git a/extensions/css-language-features/client/src/cssMain.ts b/extensions/css-language-features/client/src/cssMain.ts index dce55982cb9..e91d5408054 100644 --- a/extensions/css-language-features/client/src/cssMain.ts +++ b/extensions/css-language-features/client/src/cssMain.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; import * as path from 'path'; +import * as fs from 'fs'; import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); @@ -14,8 +15,9 @@ import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind, Di // this method is called when vs code is activated export function activate(context: ExtensionContext) { - // The server is implemented in node - let serverModule = context.asAbsolutePath(path.join('server', 'out', 'cssServerMain.js')); + let serverMain = readJSONFile(context.asAbsolutePath('./server/package.json')).main; + let serverModule = context.asAbsolutePath(path.join('server', serverMain)); + // The debug options for the server let debugOptions = { execArgv: ['--nolazy', '--inspect=6044'] }; @@ -120,3 +122,12 @@ export function activate(context: ExtensionContext) { } } +function readJSONFile(location: string) { + try { + return JSON.parse(fs.readFileSync(location).toString()); + } catch (e) { + console.log(`Problems reading ${location}: ${e}`); + return {}; + } +} + diff --git a/extensions/css-language-features/extension.webpack.config.js b/extensions/css-language-features/extension.webpack.config.js new file mode 100644 index 00000000000..593d1340b7f --- /dev/null +++ b/extensions/css-language-features/extension.webpack.config.js @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../shared.webpack.config'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const path = require('path'); + +module.exports = withDefaults({ + context: path.join(__dirname, 'client'), + entry: { + extension: './src/cssMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'cssMain.js', + path: path.join(__dirname, 'client', 'dist'), + libraryTarget: "commonjs", + }, + externals: { + './files': 'commonjs', // ignored because it doesn't exist + }, + plugins: [ + new CopyWebpackPlugin([ + { from: './out/*.sh', to: '[name].sh' }, + { from: './out/nls.*.json', to: '[name].json' } + ]) + ] +}); diff --git a/extensions/css-language-features/package.json b/extensions/css-language-features/package.json index cf0903f0a81..ade358261dc 100644 --- a/extensions/css-language-features/package.json +++ b/extensions/css-language-features/package.json @@ -708,7 +708,7 @@ ] }, "dependencies": { - "vscode-languageclient": "^4.4.0", + "vscode-languageclient": "^5.1.0-next.4", "vscode-nls": "^3.2.4" }, "devDependencies": { diff --git a/extensions/css-language-features/server/build/filesFillIn.js b/extensions/css-language-features/server/build/filesFillIn.js new file mode 100644 index 00000000000..906617384e0 --- /dev/null +++ b/extensions/css-language-features/server/build/filesFillIn.js @@ -0,0 +1,5 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +module.exports = {}; \ No newline at end of file diff --git a/extensions/css-language-features/server/extension.webpack.config.js b/extensions/css-language-features/server/extension.webpack.config.js new file mode 100644 index 00000000000..f89cb636f38 --- /dev/null +++ b/extensions/css-language-features/server/extension.webpack.config.js @@ -0,0 +1,38 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../../shared.webpack.config'); +const path = require('path'); +var webpack = require('webpack'); + +module.exports = withDefaults({ + context: path.join(__dirname), + entry: { + extension: './src/cssServerMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'cssServerMain.js', + path: path.join(__dirname, 'dist'), + libraryTarget: "commonjs", + }, + plugins: [ + new webpack.NormalModuleReplacementPlugin( + /\/vscode-languageserver\/lib\/files\.js/, + require.resolve('./build/filesFillIn') + ), + new webpack.IgnorePlugin(/vertx/) + ], +}); diff --git a/extensions/css-language-features/server/package.json b/extensions/css-language-features/server/package.json index 6e85706a2f1..512a08bbf85 100644 --- a/extensions/css-language-features/server/package.json +++ b/extensions/css-language-features/server/package.json @@ -7,9 +7,10 @@ "engines": { "node": "*" }, + "main": "./out/cssServerMain", "dependencies": { "vscode-css-languageservice": "^3.0.10-next.3", - "vscode-languageserver": "^4.4.0" + "vscode-languageserver": "^5.1.0-next.3" }, "devDependencies": { "@types/mocha": "2.2.33", @@ -28,4 +29,4 @@ "install-server-local": "npm install ../../../../vscode-languageserver-node/server -f", "test": "../../../node_modules/.bin/mocha" } -} +} \ No newline at end of file diff --git a/extensions/css-language-features/server/src/pathCompletion.ts b/extensions/css-language-features/server/src/pathCompletion.ts index 4ea06882be2..960e62df854 100644 --- a/extensions/css-language-features/server/src/pathCompletion.ts +++ b/extensions/css-language-features/server/src/pathCompletion.ts @@ -100,16 +100,19 @@ function stripQuotes(fullValue: string) { * Get a list of path suggestions. Folder suggestions are suffixed with a slash. */ function providePaths(valueBeforeCursor: string, activeDocFsPath: string, root?: string): string[] { - if (startsWith(valueBeforeCursor, '/') && !root) { - return []; - } - const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/'); const valueBeforeLastSlash = valueBeforeCursor.slice(0, lastIndexOfSlash + 1); - const parentDir = startsWith(valueBeforeCursor, '/') - ? path.resolve(root, '.' + valueBeforeLastSlash) - : path.resolve(activeDocFsPath, '..', valueBeforeLastSlash); + const startsWithSlash = startsWith(valueBeforeCursor, '/'); + let parentDir: string; + if (startsWithSlash) { + if (!root) { + return []; + } + parentDir = path.resolve(root, '.' + valueBeforeLastSlash); + } else { + parentDir = path.resolve(activeDocFsPath, '..', valueBeforeLastSlash); + } try { return fs.readdirSync(parentDir).map(f => { diff --git a/extensions/css-language-features/server/yarn.lock b/extensions/css-language-features/server/yarn.lock index c2ae2ced51a..58d1e5b3d35 100644 --- a/extensions/css-language-features/server/yarn.lock +++ b/extensions/css-language-features/server/yarn.lock @@ -205,35 +205,35 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageserver-protocol@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc" +vscode-languageserver-protocol@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz#5b23501292abad88f0463b01e83ff98e64a37652" dependencies: vscode-jsonrpc "^3.6.2" - vscode-languageserver-types "^3.10.0" - -vscode-languageserver-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389" + vscode-languageserver-types "^3.12.0" vscode-languageserver-types@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.1.tgz#d5d5f44f688a3b2aa9857dc53cb9cacca73fe35a" -vscode-languageserver@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.0.tgz#b6e8b37a739ccb629d92f3635f0099d191c856fa" +vscode-languageserver-types@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz#f96051381b6a050b7175b37d6cb5d2f2eb64b944" + +vscode-languageserver@^5.1.0-next.3: + version "5.1.0-next.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.1.0-next.3.tgz#352ce1f0f8bdfc47c1236277ebe865e25b087ccd" dependencies: - vscode-languageserver-protocol "^3.10.0" - vscode-uri "^1.0.3" + vscode-languageserver-protocol "^3.12.0" + vscode-uri "^1.0.5" vscode-nls@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398" -vscode-uri@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.5.tgz#3b899a8ef71c37f3054d79bdbdda31c7bf36f20d" +vscode-uri@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.6.tgz#6b8f141b0bbc44ad7b07e94f82f168ac7608ad4d" wrappy@1: version "1.0.2" diff --git a/extensions/css-language-features/yarn.lock b/extensions/css-language-features/yarn.lock index a51de5f43ac..958bba3af28 100644 --- a/extensions/css-language-features/yarn.lock +++ b/extensions/css-language-features/yarn.lock @@ -127,6 +127,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +semver@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" + supports-color@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" @@ -137,22 +141,23 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageclient@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz#b05868f6477b6f0c9910b24daae4f3e8c4b65902" +vscode-languageclient@^5.1.0-next.4: + version "5.1.0-next.4" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.1.0-next.4.tgz#2f96b4aa198c45f3e897b7f330c597a401ca95f2" dependencies: - vscode-languageserver-protocol "^3.10.0" + semver "^5.5.0" + vscode-languageserver-protocol "^3.12.0" -vscode-languageserver-protocol@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc" +vscode-languageserver-protocol@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz#5b23501292abad88f0463b01e83ff98e64a37652" dependencies: vscode-jsonrpc "^3.6.2" - vscode-languageserver-types "^3.10.0" + vscode-languageserver-types "^3.12.0" -vscode-languageserver-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389" +vscode-languageserver-types@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz#f96051381b6a050b7175b37d6cb5d2f2eb64b944" vscode-nls@^3.2.4: version "3.2.4" diff --git a/extensions/html-language-features/.vscodeignore b/extensions/html-language-features/.vscodeignore index fe4f2396293..8d0ba59e94c 100644 --- a/extensions/html-language-features/.vscodeignore +++ b/extensions/html-language-features/.vscodeignore @@ -1,10 +1,27 @@ test/** .vscode/** -server/tsconfig.json -server/src/** -server/test/** -server/out/test/** -client/tsconfig.json +server/.vscode/** +node_modules/** +server/node_modules/** client/src/** -**/node_modules/*/lib/esm/** -**/node_modules/@types/** \ No newline at end of file +server/src/** +client/out/** +server/out/** +client/tsconfig.json +server/tsconfig.json +server/test/** +server/bin/** +server/build/** +server/yarn.lock +server/.npmignore +yarn.lock +server/extension.webpack.config.js +extension.webpack.config.js +!node_modules/vscode-nls/** +!node_modules/applicationinsights/** +!node_modules/diagnostic-channel-publishers/** +!node_modules/diagnostic-channel/** +!node_modules/semver/** +!node_modules/vscode-extension-telemetry/** +!node_modules/zone.js/** +!server/node_modules/vscode-nls/** \ No newline at end of file diff --git a/extensions/html-language-features/client/src/htmlMain.ts b/extensions/html-language-features/client/src/htmlMain.ts index 68f8b881d3b..589c3afbf92 100644 --- a/extensions/html-language-features/client/src/htmlMain.ts +++ b/extensions/html-language-features/client/src/htmlMain.ts @@ -5,6 +5,7 @@ 'use strict'; import * as path from 'path'; +import * as fs from 'fs'; import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); @@ -33,8 +34,9 @@ export function activate(context: ExtensionContext) { let packageInfo = getPackageInfo(context); telemetryReporter = packageInfo && new TelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey); - // The server is implemented in node - let serverModule = context.asAbsolutePath(path.join('server', 'out', 'htmlServerMain.js')); + let serverMain = readJSONFile(context.asAbsolutePath('./server/package.json')).main; + let serverModule = context.asAbsolutePath(path.join('server', serverMain)); + // The debug options for the server let debugOptions = { execArgv: ['--nolazy', '--inspect=6045'] }; @@ -157,7 +159,7 @@ export function activate(context: ExtensionContext) { } function getPackageInfo(context: ExtensionContext): IPackageInfo | null { - let extensionPackage = require(context.asAbsolutePath('./package.json')); + let extensionPackage = readJSONFile(context.asAbsolutePath('./package.json')); if (extensionPackage) { return { name: extensionPackage.name, @@ -168,6 +170,16 @@ function getPackageInfo(context: ExtensionContext): IPackageInfo | null { return null; } + +function readJSONFile(location: string) { + try { + return JSON.parse(fs.readFileSync(location).toString()); + } catch (e) { + console.log(`Problems reading ${location}: ${e}`); + return {}; + } +} + export function deactivate(): Promise { return telemetryReporter ? telemetryReporter.dispose() : Promise.resolve(null); } \ No newline at end of file diff --git a/extensions/html-language-features/extension.webpack.config.js b/extensions/html-language-features/extension.webpack.config.js new file mode 100644 index 00000000000..492a0d1f8fd --- /dev/null +++ b/extensions/html-language-features/extension.webpack.config.js @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../shared.webpack.config'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const path = require('path'); + +module.exports = withDefaults({ + context: path.join(__dirname, 'client'), + entry: { + extension: './src/htmlMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'htmlMain.js', + path: path.join(__dirname, 'client', 'dist'), + libraryTarget: "commonjs", + }, + externals: { + './files': 'commonjs', // ignored because it doesn't exist + }, + plugins: [ + new CopyWebpackPlugin([ + { from: './out/*.sh', to: '[name].sh' }, + { from: './out/nls.*.json', to: '[name].json' } + ]) + ] +}); diff --git a/extensions/html-language-features/package.json b/extensions/html-language-features/package.json index e55530df063..58228fa32f8 100644 --- a/extensions/html-language-features/package.json +++ b/extensions/html-language-features/package.json @@ -174,10 +174,10 @@ }, "dependencies": { "vscode-extension-telemetry": "0.0.18", - "vscode-languageclient": "^4.4.0", + "vscode-languageclient": "^5.1.0-next.4", "vscode-nls": "^3.2.4" }, "devDependencies": { "@types/node": "^8.10.25" } -} +} \ No newline at end of file diff --git a/extensions/html-language-features/server/build/filesFillIn.js b/extensions/html-language-features/server/build/filesFillIn.js new file mode 100644 index 00000000000..906617384e0 --- /dev/null +++ b/extensions/html-language-features/server/build/filesFillIn.js @@ -0,0 +1,5 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +module.exports = {}; \ No newline at end of file diff --git a/extensions/html-language-features/server/extension.webpack.config.js b/extensions/html-language-features/server/extension.webpack.config.js new file mode 100644 index 00000000000..e6c50b131db --- /dev/null +++ b/extensions/html-language-features/server/extension.webpack.config.js @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../../shared.webpack.config'); +const path = require('path'); +var webpack = require('webpack'); + +module.exports = withDefaults({ + context: path.join(__dirname), + entry: { + extension: './src/htmlServerMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'htmlServerMain.js', + path: path.join(__dirname, 'dist'), + libraryTarget: "commonjs", + }, + externals: { + 'typescript': 'commonjs typescript', + "vscode-nls": 'commonjs vscode-nls', + }, + plugins: [ + new webpack.NormalModuleReplacementPlugin( + /\/vscode-languageserver\/lib\/files\.js/, + require.resolve('./build/filesFillIn') + ), + new webpack.IgnorePlugin(/vertx/) + ], +}); diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json index 9d4b15d815b..f58370909f2 100644 --- a/extensions/html-language-features/server/package.json +++ b/extensions/html-language-features/server/package.json @@ -7,10 +7,11 @@ "engines": { "node": "*" }, + "main": "./out/htmlServerMain", "dependencies": { "vscode-css-languageservice": "^3.0.9", "vscode-html-languageservice": "^2.1.3", - "vscode-languageserver": "^4.4.0", + "vscode-languageserver": "^5.1.0-next.3", "vscode-languageserver-types": "^3.10.0", "vscode-nls": "^3.2.4", "vscode-uri": "^1.0.5" @@ -32,4 +33,4 @@ "install-server-local": "npm install ../../../../vscode-languageserver-node/server -f", "test": "npm run compile && ../../../node_modules/.bin/mocha" } -} +} \ No newline at end of file diff --git a/extensions/html-language-features/server/src/modes/pathCompletion.ts b/extensions/html-language-features/server/src/modes/pathCompletion.ts index 9bb123dcaac..05448ed9dd2 100644 --- a/extensions/html-language-features/server/src/modes/pathCompletion.ts +++ b/extensions/html-language-features/server/src/modes/pathCompletion.ts @@ -63,16 +63,19 @@ function shouldDoPathCompletion(tag: string, attr: string, value: string) { * Get a list of path suggestions. Folder suggestions are suffixed with a slash. */ function providePaths(valueBeforeCursor: string, activeDocFsPath: string, root?: string): string[] { - if (startsWith(valueBeforeCursor, '/') && !root) { - return []; - } - const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/'); const valueBeforeLastSlash = valueBeforeCursor.slice(0, lastIndexOfSlash + 1); - const parentDir = startsWith(valueBeforeCursor, '/') - ? path.resolve(root, '.' + valueBeforeLastSlash) - : path.resolve(activeDocFsPath, '..', valueBeforeLastSlash); + const startsWithSlash = startsWith(valueBeforeCursor, '/'); + let parentDir: string; + if (startsWithSlash) { + if (!root) { + return []; + } + parentDir = path.resolve(root, '.' + valueBeforeLastSlash); + } else { + parentDir = path.resolve(activeDocFsPath, '..', valueBeforeLastSlash); + } try { return fs.readdirSync(parentDir).map(f => { diff --git a/extensions/html-language-features/server/yarn.lock b/extensions/html-language-features/server/yarn.lock index d642e6bb321..8090a9ec2ce 100644 --- a/extensions/html-language-features/server/yarn.lock +++ b/extensions/html-language-features/server/yarn.lock @@ -213,32 +213,32 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageserver-protocol@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc" +vscode-languageserver-protocol@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz#5b23501292abad88f0463b01e83ff98e64a37652" dependencies: vscode-jsonrpc "^3.6.2" - vscode-languageserver-types "^3.10.0" + vscode-languageserver-types "^3.12.0" vscode-languageserver-types@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389" -vscode-languageserver@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.0.tgz#b6e8b37a739ccb629d92f3635f0099d191c856fa" +vscode-languageserver-types@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz#f96051381b6a050b7175b37d6cb5d2f2eb64b944" + +vscode-languageserver@^5.1.0-next.3: + version "5.1.0-next.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.1.0-next.3.tgz#352ce1f0f8bdfc47c1236277ebe865e25b087ccd" dependencies: - vscode-languageserver-protocol "^3.10.0" - vscode-uri "^1.0.3" + vscode-languageserver-protocol "^3.12.0" + vscode-uri "^1.0.5" vscode-nls@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398" -vscode-uri@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.3.tgz#631bdbf716dccab0e65291a8dc25c23232085a52" - vscode-uri@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.5.tgz#3b899a8ef71c37f3054d79bdbdda31c7bf36f20d" diff --git a/extensions/html-language-features/yarn.lock b/extensions/html-language-features/yarn.lock index f6e965d98ea..3f7b93cdfbe 100644 --- a/extensions/html-language-features/yarn.lock +++ b/extensions/html-language-features/yarn.lock @@ -24,9 +24,9 @@ diagnostic-channel@0.2.0: dependencies: semver "^5.3.0" -semver@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@^5.3.0, semver@^5.5.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" vscode-extension-telemetry@0.0.18: version "0.0.18" @@ -38,22 +38,23 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageclient@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz#b05868f6477b6f0c9910b24daae4f3e8c4b65902" +vscode-languageclient@^5.1.0-next.4: + version "5.1.0-next.4" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.1.0-next.4.tgz#2f96b4aa198c45f3e897b7f330c597a401ca95f2" dependencies: - vscode-languageserver-protocol "^3.10.0" + semver "^5.5.0" + vscode-languageserver-protocol "^3.12.0" -vscode-languageserver-protocol@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc" +vscode-languageserver-protocol@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz#5b23501292abad88f0463b01e83ff98e64a37652" dependencies: vscode-jsonrpc "^3.6.2" - vscode-languageserver-types "^3.10.0" + vscode-languageserver-types "^3.12.0" -vscode-languageserver-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389" +vscode-languageserver-types@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz#f96051381b6a050b7175b37d6cb5d2f2eb64b944" vscode-nls@^3.2.4: version "3.2.4" diff --git a/extensions/json-language-features/.vscodeignore b/extensions/json-language-features/.vscodeignore index eea89a1f649..d6de18538dd 100644 --- a/extensions/json-language-features/.vscodeignore +++ b/extensions/json-language-features/.vscodeignore @@ -1,11 +1,26 @@ -test/** .vscode/** -client/tsconfig.json +server/.vscode/** +node_modules/** +server/node_modules/** client/src/** -server/bin -server/tsconfig.json server/src/** +client/out/** +server/out/** +client/tsconfig.json +server/tsconfig.json server/test/** -server/node_modules/@types/** -**/node_modules/*/lib/esm/** -**/node_modules/@types/** \ No newline at end of file +server/bin/** +server/build/** +server/yarn.lock +server/.npmignore +yarn.lock +server/extension.webpack.config.js +extension.webpack.config.js +!node_modules/vscode-nls/** +!node_modules/applicationinsights/** +!node_modules/diagnostic-channel-publishers/** +!node_modules/diagnostic-channel/** +!node_modules/semver/** +!node_modules/vscode-extension-telemetry/** +!node_modules/zone.js/** +!server/node_modules/vscode-nls/** \ No newline at end of file diff --git a/extensions/json-language-features/client/src/jsonMain.ts b/extensions/json-language-features/client/src/jsonMain.ts index 9040304a4f8..88326058e17 100644 --- a/extensions/json-language-features/client/src/jsonMain.ts +++ b/extensions/json-language-features/client/src/jsonMain.ts @@ -5,6 +5,7 @@ 'use strict'; import * as path from 'path'; +import * as fs from 'fs'; import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); @@ -62,8 +63,9 @@ export function activate(context: ExtensionContext) { let packageInfo = getPackageInfo(context); telemetryReporter = packageInfo && new TelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey); - // The server is implemented in node - let serverModule = context.asAbsolutePath(path.join('server', 'out', 'jsonServerMain.js')); + let serverMain = readJSONFile(context.asAbsolutePath('./server/package.json')).main; + let serverModule = context.asAbsolutePath(path.join('server', serverMain)); + // The debug options for the server let debugOptions = { execArgv: ['--nolazy', '--inspect=' + (9000 + Math.round(Math.random() * 10000))] }; @@ -259,7 +261,7 @@ function getSchemaId(schema: JSONSchemaSettings, rootPath?: string) { } function getPackageInfo(context: ExtensionContext): IPackageInfo | undefined { - let extensionPackage = require(context.asAbsolutePath('./package.json')); + let extensionPackage = readJSONFile(context.asAbsolutePath('./package.json')); if (extensionPackage) { return { name: extensionPackage.name, @@ -269,3 +271,13 @@ function getPackageInfo(context: ExtensionContext): IPackageInfo | undefined { } return void 0; } + +function readJSONFile(location: string) { + try { + return JSON.parse(fs.readFileSync(location).toString()); + } catch (e) { + console.log(`Problems reading ${location}: ${e}`); + return {}; + } + +} diff --git a/extensions/json-language-features/extension.webpack.config.js b/extensions/json-language-features/extension.webpack.config.js new file mode 100644 index 00000000000..3e79ca6b74c --- /dev/null +++ b/extensions/json-language-features/extension.webpack.config.js @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../shared.webpack.config'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const path = require('path'); + +module.exports = withDefaults({ + context: path.join(__dirname, 'client'), + entry: { + extension: './src/jsonMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'jsonMain.js', + path: path.join(__dirname, 'client', 'dist'), + libraryTarget: "commonjs", + }, + externals: { + './files': 'commonjs', // ignored because it doesn't exist + }, + plugins: [ + new CopyWebpackPlugin([ + { from: './out/*.sh', to: '[name].sh' }, + { from: './out/nls.*.json', to: '[name].json' } + ]) + ] +}); diff --git a/extensions/json-language-features/package.json b/extensions/json-language-features/package.json index a1910651a22..c47a4923ce2 100644 --- a/extensions/json-language-features/package.json +++ b/extensions/json-language-features/package.json @@ -101,7 +101,7 @@ }, "dependencies": { "vscode-extension-telemetry": "0.0.18", - "vscode-languageclient": "^4.4.2", + "vscode-languageclient": "^5.1.0-next.4", "vscode-nls": "^3.2.4" }, "devDependencies": { diff --git a/extensions/json-language-features/server/build/files.js b/extensions/json-language-features/server/build/files.js new file mode 100644 index 00000000000..906617384e0 --- /dev/null +++ b/extensions/json-language-features/server/build/files.js @@ -0,0 +1,5 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +module.exports = {}; \ No newline at end of file diff --git a/extensions/json-language-features/server/extension.webpack.config.js b/extensions/json-language-features/server/extension.webpack.config.js new file mode 100644 index 00000000000..37e4207daac --- /dev/null +++ b/extensions/json-language-features/server/extension.webpack.config.js @@ -0,0 +1,38 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +//@ts-check + +'use strict'; + +const withDefaults = require('../../shared.webpack.config'); +const path = require('path'); +var webpack = require('webpack'); + +module.exports = withDefaults({ + context: path.join(__dirname), + entry: { + extension: './src/jsonServerMain.ts', + }, + resolve: { + mainFields: ['module', 'main'], + extensions: ['.ts', '.js'] // support ts-files and js-files + }, + node: { + __dirname: false // leave the __dirname-behaviour intact + }, + output: { + filename: 'jsonServerMain.js', + path: path.join(__dirname, 'dist'), + libraryTarget: "commonjs", + }, + plugins: [ + new webpack.NormalModuleReplacementPlugin( + /\/vscode-languageserver\/lib\/files\.js/, + require.resolve('./build/files') + ), + new webpack.IgnorePlugin(/vertx/) + ], +}); diff --git a/extensions/json-language-features/server/package.json b/extensions/json-language-features/server/package.json index 76fc712381c..7ab4df1bbd1 100644 --- a/extensions/json-language-features/server/package.json +++ b/extensions/json-language-features/server/package.json @@ -10,11 +10,12 @@ "bin": { "vscode-json-languageserver": "./bin/vscode-json-languageserver" }, + "main": "./dist/jsonServerMain", "dependencies": { "jsonc-parser": "^2.0.1", "request-light": "^0.2.3", "vscode-json-languageservice": "^3.1.5", - "vscode-languageserver": "^4.4.2", + "vscode-languageserver": "^5.1.0-next.3", "vscode-nls": "^3.2.4", "vscode-uri": "^1.0.5" }, @@ -34,4 +35,4 @@ "install-server-local": "yarn link vscode-languageserver-server", "version": "git commit -m \"JSON Language Server $npm_package_version\" package.json" } -} +} \ No newline at end of file diff --git a/extensions/json-language-features/server/yarn.lock b/extensions/json-language-features/server/yarn.lock index b8eca3bc52b..e1d835c7869 100644 --- a/extensions/json-language-features/server/yarn.lock +++ b/extensions/json-language-features/server/yarn.lock @@ -75,22 +75,26 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageserver-protocol@^3.10.3: - version "3.10.3" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.3.tgz#59841c9602a6a6baab68613c2a47760994657196" +vscode-languageserver-protocol@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz#5b23501292abad88f0463b01e83ff98e64a37652" dependencies: vscode-jsonrpc "^3.6.2" - vscode-languageserver-types "^3.10.1" + vscode-languageserver-types "^3.12.0" vscode-languageserver-types@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.1.tgz#d5d5f44f688a3b2aa9857dc53cb9cacca73fe35a" -vscode-languageserver@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.2.tgz#600ae9cc7a6ff1e84d93c7807840c2cb5b22821b" +vscode-languageserver-types@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz#f96051381b6a050b7175b37d6cb5d2f2eb64b944" + +vscode-languageserver@^5.1.0-next.3: + version "5.1.0-next.3" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.1.0-next.3.tgz#352ce1f0f8bdfc47c1236277ebe865e25b087ccd" dependencies: - vscode-languageserver-protocol "^3.10.3" + vscode-languageserver-protocol "^3.12.0" vscode-uri "^1.0.5" vscode-nls@^3.2.2, vscode-nls@^3.2.4: diff --git a/extensions/json-language-features/yarn.lock b/extensions/json-language-features/yarn.lock index cb126a6c120..781800a5a94 100644 --- a/extensions/json-language-features/yarn.lock +++ b/extensions/json-language-features/yarn.lock @@ -38,9 +38,9 @@ vscode-jsonrpc@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8" -vscode-languageclient@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz#a341a7b4ac403e481f011ed4572854646e8968c4" +vscode-languageclient@^5.1.0-next.4: + version "5.1.0-next.4" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.1.0-next.4.tgz#2f96b4aa198c45f3e897b7f330c597a401ca95f2" dependencies: vscode-languageserver-protocol "^3.10.3"