From b389ce333dd10914e44a8d726b28663ae3996fe8 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Jan 2022 12:56:16 +0100 Subject: [PATCH 01/96] handle extension resource --- src/vs/server/node/webClientServer.ts | 49 ++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 35c7275f4b8..641dd324fff 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -19,6 +19,12 @@ import { FileAccess, connectionTokenCookieName, connectionTokenQueryName } from import { generateUuid } from 'vs/base/common/uuid'; import { IProductService } from 'vs/platform/product/common/productService'; import { ServerConnectionToken, ServerConnectionTokenType } from 'vs/server/node/serverConnectionToken'; +import { IRequestService } from 'vs/platform/request/common/request'; +import { IHeaders } from 'vs/base/parts/request/common/request'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { URI } from 'vs/base/common/uri'; +import { streamToBuffer } from 'vs/base/common/buffer'; +import { IProductConfiguration } from 'vs/base/common/product'; const textMimeType = { '.html': 'text/html', @@ -77,7 +83,8 @@ export class WebClientServer { private readonly _connectionToken: ServerConnectionToken, @IServerEnvironmentService private readonly _environmentService: IServerEnvironmentService, @ILogService private readonly _logService: ILogService, - @IProductService private readonly _productService: IProductService + @IRequestService private readonly _requestService: IRequestService, + @IProductService private readonly _productService: IProductService, ) { } async handle(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { @@ -92,6 +99,10 @@ export class WebClientServer { // always serve static requests, even without a token return this._handleStatic(req, res, parsedUrl); } + if (/^\/extensionResource\//.test(pathname)) { + // always serve static requests, even without a token + return this._handleExtensionResource(req, res, parsedUrl); + } if (pathname === '/') { // the token handling is done inside the handler return this._handleRoot(req, res, parsedUrl); @@ -128,6 +139,38 @@ export class WebClientServer { return serveFile(this._logService, req, res, filePath, headers); } + /** + * Handle HTTP requests for /static/* + */ + private async _handleExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { + const normalizedPathname = decodeURIComponent(parsedUrl.pathname!); // support paths that are uri-encoded (e.g. spaces => %20) + const path = normalize(normalizedPathname.substr('/extensionResource/'.length)); + const url = URI.parse(path).with({ scheme: 'https', authority: path.substring(0, path.indexOf('/')), path: path.substring(path.indexOf('/') + 1) }); + + const headers: IHeaders = {}; + for (const header of req.rawHeaders) { + if (req.headers[header]) { + headers[header] = req.headers[header]![0]; + } + } + + const context = await this._requestService.request({ + type: 'GET', + url: url.toString(true), + headers + }, CancellationToken.None); + + if (context.res.statusCode && context.res.statusCode !== 200) { + this._logService.info(`Request to '${url.toString(true)}' failed with status code ${context.res.statusCode}`); + throw new Error(`Server returned ${context.res.statusCode}`); + } + + const responseHeaders = context.res.headers; + res.writeHead(200, responseHeaders); + const buffer = await streamToBuffer(context.stream); + return res.end(buffer.buffer); + } + /** * Handle HTTP requests for / */ @@ -183,12 +226,16 @@ export class WebClientServer { accessToken: this._environmentService.args['github-auth'], scopes: [['user:email'], ['repo']] } : undefined; + const resourceUrlTemplate = this._productService.extensionsGallery ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate) : undefined; const data = (await util.promisify(fs.readFile)(filePath)).toString() .replace('{{WORKBENCH_WEB_CONFIGURATION}}', escapeAttribute(JSON.stringify({ remoteAuthority, _wrapWebWorkerExtHostInIframe, developmentOptions: { enableSmokeTestDriver: this._environmentService.driverHandle === 'web' ? true : undefined }, settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined, + productConfiguration: >{ + extensionsGallery: resourceUrlTemplate ? { ...this._productService.extensionsGallery, 'resourceUrlTemplate': resourceUrlTemplate.with({ scheme: 'http', authority: remoteAuthority, path: `extensionResource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` }).toString(true) } : undefined + } }))) .replace('{{WORKBENCH_AUTH_SESSION}}', () => authSessionInfo ? escapeAttribute(JSON.stringify(authSessionInfo)) : ''); From b657a50a90e6b5b17f277b2c1f5a7b5c5bb61e7e Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Jan 2022 17:48:33 +0100 Subject: [PATCH 02/96] formatting and clean up --- src/vs/server/node/webClientServer.ts | 35 ++++++++++++++++----------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 641dd324fff..5c8cb5c607e 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -99,10 +99,6 @@ export class WebClientServer { // always serve static requests, even without a token return this._handleStatic(req, res, parsedUrl); } - if (/^\/extensionResource\//.test(pathname)) { - // always serve static requests, even without a token - return this._handleExtensionResource(req, res, parsedUrl); - } if (pathname === '/') { // the token handling is done inside the handler return this._handleRoot(req, res, parsedUrl); @@ -111,6 +107,10 @@ export class WebClientServer { // callback support return this._handleCallback(res); } + if (/^\/extensionResource\//.test(pathname)) { + // extension resource support + return this._handleExtensionResource(req, res, parsedUrl); + } return serveError(req, res, 404, 'Not found.'); } catch (error) { @@ -143,9 +143,15 @@ export class WebClientServer { * Handle HTTP requests for /static/* */ private async _handleExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { + // Strip `/extensionResource/` from the path const normalizedPathname = decodeURIComponent(parsedUrl.pathname!); // support paths that are uri-encoded (e.g. spaces => %20) const path = normalize(normalizedPathname.substr('/extensionResource/'.length)); - const url = URI.parse(path).with({ scheme: 'https', authority: path.substring(0, path.indexOf('/')), path: path.substring(path.indexOf('/') + 1) }); + + const url = URI.parse(path).with({ + scheme: this._productService.extensionsGallery?.resourceUrlTemplate ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate).scheme : 'https', + authority: path.substring(0, path.indexOf('/')), + path: path.substring(path.indexOf('/') + 1) + }).toString(true); const headers: IHeaders = {}; for (const header of req.rawHeaders) { @@ -156,17 +162,11 @@ export class WebClientServer { const context = await this._requestService.request({ type: 'GET', - url: url.toString(true), + url, headers }, CancellationToken.None); - if (context.res.statusCode && context.res.statusCode !== 200) { - this._logService.info(`Request to '${url.toString(true)}' failed with status code ${context.res.statusCode}`); - throw new Error(`Server returned ${context.res.statusCode}`); - } - - const responseHeaders = context.res.headers; - res.writeHead(200, responseHeaders); + res.writeHead(context.res.statusCode || 500, context.res.headers); const buffer = await streamToBuffer(context.stream); return res.end(buffer.buffer); } @@ -234,7 +234,14 @@ export class WebClientServer { developmentOptions: { enableSmokeTestDriver: this._environmentService.driverHandle === 'web' ? true : undefined }, settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined, productConfiguration: >{ - extensionsGallery: resourceUrlTemplate ? { ...this._productService.extensionsGallery, 'resourceUrlTemplate': resourceUrlTemplate.with({ scheme: 'http', authority: remoteAuthority, path: `extensionResource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` }).toString(true) } : undefined + extensionsGallery: resourceUrlTemplate ? { + ...this._productService.extensionsGallery, + 'resourceUrlTemplate': resourceUrlTemplate.with({ + scheme: 'http', + authority: remoteAuthority, + path: `extensionResource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` + }).toString(true) + } : undefined } }))) .replace('{{WORKBENCH_AUTH_SESSION}}', () => authSessionInfo ? escapeAttribute(JSON.stringify(authSessionInfo)) : ''); From 29331407d09b2fe54fed82cf3f66b74fd86e4dbb Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Jan 2022 17:59:53 +0100 Subject: [PATCH 03/96] update doc --- src/vs/server/node/webClientServer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 5c8cb5c607e..9e725451edb 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -140,7 +140,7 @@ export class WebClientServer { } /** - * Handle HTTP requests for /static/* + * Handle extension resources */ private async _handleExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { // Strip `/extensionResource/` from the path From fb6144b6b56ef24d6a76cf78ccf990253efedf00 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 00:26:46 +0100 Subject: [PATCH 04/96] feedback --- src/vs/server/node/webClientServer.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 9e725451edb..212dffbbf91 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -107,9 +107,9 @@ export class WebClientServer { // callback support return this._handleCallback(res); } - if (/^\/extensionResource\//.test(pathname)) { + if (/^\/web-extension-resource\//.test(pathname)) { // extension resource support - return this._handleExtensionResource(req, res, parsedUrl); + return this._handleWebExtensionResource(req, res, parsedUrl); } return serveError(req, res, 404, 'Not found.'); @@ -142,10 +142,10 @@ export class WebClientServer { /** * Handle extension resources */ - private async _handleExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { - // Strip `/extensionResource/` from the path + private async _handleWebExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { + // Strip `/web-extension-resource/` from the path const normalizedPathname = decodeURIComponent(parsedUrl.pathname!); // support paths that are uri-encoded (e.g. spaces => %20) - const path = normalize(normalizedPathname.substr('/extensionResource/'.length)); + const path = normalize(normalizedPathname.substr('/web-extension-resource/'.length)); const url = URI.parse(path).with({ scheme: this._productService.extensionsGallery?.resourceUrlTemplate ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate).scheme : 'https', @@ -239,7 +239,7 @@ export class WebClientServer { 'resourceUrlTemplate': resourceUrlTemplate.with({ scheme: 'http', authority: remoteAuthority, - path: `extensionResource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` + path: `web-extension-resource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` }).toString(true) } : undefined } From 1c2f442e02fb09c536ef83566893ba7991f2a9d9 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Thu, 27 Jan 2022 11:54:58 +0100 Subject: [PATCH 05/96] Fixes #138746. --- src/vs/base/common/strings.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/base/common/strings.ts b/src/vs/base/common/strings.ts index 3730de28ce3..0037912f68a 100644 --- a/src/vs/base/common/strings.ts +++ b/src/vs/base/common/strings.ts @@ -1048,7 +1048,7 @@ export class AmbiguousCharacters { // Generated using https://github.com/hediet/vscode-unicode-data // Stored as key1, value1, key2, value2, ... return JSON.parse( - '{\"_common\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125],\"_default\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"cs\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"de\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"es\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"fr\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"it\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ja\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\"ko\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pl\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pt-BR\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"qps-ploc\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ru\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"tr\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"zh-hans\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\"zh-hant\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}' + '{\"_common\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125],\"_default\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"cs\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"de\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"es\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"fr\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"it\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ja\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\"ko\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pl\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"pt-BR\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"qps-ploc\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"ru\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"tr\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\"zh-hans\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\"zh-hant\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}' ); }); From 56291eda34a1106d5b7b495227253e337d2e2c92 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 12:21:36 +0100 Subject: [PATCH 06/96] - Check if URL is pointing to the right service - Set selective request and response headers - Update the scheme on the client --- src/vs/base/common/network.ts | 4 ++ src/vs/server/node/webClientServer.ts | 60 +++++++++++++++---- .../common/extensionResourceLoader.ts | 13 +++- 3 files changed, 66 insertions(+), 11 deletions(-) diff --git a/src/vs/base/common/network.ts b/src/vs/base/common/network.ts index 12cb21daa31..15d8fc239c5 100644 --- a/src/vs/base/common/network.ts +++ b/src/vs/base/common/network.ts @@ -130,6 +130,10 @@ class RemoteAuthoritiesImpl { this._connectionTokens[authority] = connectionToken; } + getPreferredWebSchema(): 'http' | 'https' { + return this._preferredWebSchema; + } + rewrite(uri: URI): URI { if (this._delegate) { return this._delegate(uri); diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 212dffbbf91..69022137ae9 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -19,12 +19,13 @@ import { FileAccess, connectionTokenCookieName, connectionTokenQueryName } from import { generateUuid } from 'vs/base/common/uuid'; import { IProductService } from 'vs/platform/product/common/productService'; import { ServerConnectionToken, ServerConnectionTokenType } from 'vs/server/node/serverConnectionToken'; -import { IRequestService } from 'vs/platform/request/common/request'; +import { asText, IRequestService } from 'vs/platform/request/common/request'; import { IHeaders } from 'vs/base/parts/request/common/request'; import { CancellationToken } from 'vs/base/common/cancellation'; import { URI } from 'vs/base/common/uri'; import { streamToBuffer } from 'vs/base/common/buffer'; import { IProductConfiguration } from 'vs/base/common/product'; +import { isString } from 'vs/base/common/types'; const textMimeType = { '.html': 'text/html', @@ -139,34 +140,73 @@ export class WebClientServer { return serveFile(this._logService, req, res, filePath, headers); } + private _getResourceURLTemplateAuthority(uri: URI): string | undefined { + const index = uri.authority.indexOf('.'); + return index !== -1 ? uri.authority.substring(index + 1) : undefined; + } + /** * Handle extension resources */ private async _handleWebExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { + if (!this._productService.extensionsGallery?.resourceUrlTemplate) { + return serveError(req, res, 500, 'No extension gallery service configured.'); + } + // Strip `/web-extension-resource/` from the path const normalizedPathname = decodeURIComponent(parsedUrl.pathname!); // support paths that are uri-encoded (e.g. spaces => %20) const path = normalize(normalizedPathname.substr('/web-extension-resource/'.length)); - - const url = URI.parse(path).with({ + const uri = URI.parse(path).with({ scheme: this._productService.extensionsGallery?.resourceUrlTemplate ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate).scheme : 'https', authority: path.substring(0, path.indexOf('/')), path: path.substring(path.indexOf('/') + 1) - }).toString(true); + }); + + if (this._getResourceURLTemplateAuthority(URI.parse(this._productService.extensionsGallery.resourceUrlTemplate)) !== this._getResourceURLTemplateAuthority(uri)) { + return serveError(req, res, 403, 'Request Forbidden'); + } const headers: IHeaders = {}; - for (const header of req.rawHeaders) { - if (req.headers[header]) { - headers[header] = req.headers[header]![0]; + const seRequestHeader = (header: string) => { + const value = req.headers[header]; + if (value && (isString(value) || value[0])) { + headers[header] = isString(value) ? value : value[0]; + } else if (header !== header.toLowerCase()) { + seRequestHeader(header.toLowerCase()); } - } + }; + seRequestHeader('X-Client-Name'); + seRequestHeader('X-Client-Version'); + seRequestHeader('X-Machine-Id'); + seRequestHeader('X-Client-Commit'); const context = await this._requestService.request({ type: 'GET', - url, + url: uri.toString(true), headers }, CancellationToken.None); - res.writeHead(context.res.statusCode || 500, context.res.headers); + const status = context.res.statusCode || 500; + if (status !== 200) { + let text: string | null = null; + try { + text = await asText(context); + } catch (error) {/* Ignore */ } + return serveError(req, res, status, text || `Request failed with status ${status}`); + } + + const responseHeaders: Record = Object.create(null); + const seResponseHeader = (header: string) => { + const value = context.res.headers[header]; + if (value) { + responseHeaders[header] = value; + } else if (header !== header.toLowerCase()) { + seResponseHeader(header.toLowerCase()); + } + }; + seResponseHeader('Cache-Control'); + seResponseHeader('Content-Type'); + res.writeHead(200, responseHeaders); const buffer = await streamToBuffer(context.stream); return res.end(buffer.buffer); } diff --git a/src/vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader.ts b/src/vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader.ts index 5e084f07351..89a10a3a65b 100644 --- a/src/vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader.ts +++ b/src/vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader.ts @@ -16,6 +16,9 @@ import { getServiceMachineId } from 'vs/platform/externalServices/common/service import { IStorageService } from 'vs/platform/storage/common/storage'; import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import { getTelemetryLevel, supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils'; +import { RemoteAuthorities } from 'vs/base/common/network'; + +export const WEB_EXTENSION_RESOURCE_END_POINT = 'web-extension-resource'; export const IExtensionResourceLoaderService = createDecorator('extensionResourceLoaderService'); @@ -68,7 +71,8 @@ export abstract class AbstractExtensionResourceLoaderService implements IExtensi public getExtensionGalleryResourceURL(galleryExtension: { publisher: string, name: string, version: string }, path?: string): URI | undefined { if (this._extensionGalleryResourceUrlTemplate) { - return URI.parse(format2(this._extensionGalleryResourceUrlTemplate, { publisher: galleryExtension.publisher, name: galleryExtension.name, version: galleryExtension.version, path: 'extension' })); + const uri = URI.parse(format2(this._extensionGalleryResourceUrlTemplate, { publisher: galleryExtension.publisher, name: galleryExtension.name, version: galleryExtension.version, path: 'extension' })); + return this._isWebExtensionResourceEndPoint(uri) ? uri.with({ scheme: RemoteAuthorities.getPreferredWebSchema() }) : uri; } return undefined; } @@ -103,8 +107,15 @@ export abstract class AbstractExtensionResourceLoaderService implements IExtensi } private _getExtensionGalleryAuthority(uri: URI): string | undefined { + if (this._isWebExtensionResourceEndPoint(uri)) { + return uri.authority; + } const index = uri.authority.indexOf('.'); return index !== -1 ? uri.authority.substring(index + 1) : undefined; } + protected _isWebExtensionResourceEndPoint(uri: URI): boolean { + return uri.path.startsWith(`/${WEB_EXTENSION_RESOURCE_END_POINT}/`); + } + } From 362a2cac986b90a138bf2d7796d160dafe181166 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 12:27:40 +0100 Subject: [PATCH 07/96] cache resourceUrlTemplate Uri --- src/vs/server/node/webClientServer.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 69022137ae9..0b55deaa380 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -80,13 +80,17 @@ const APP_ROOT = dirname(FileAccess.asFileUri('', require).fsPath); export class WebClientServer { + private readonly _webExtensionResourceUrlTemplate: URI | undefined; + constructor( private readonly _connectionToken: ServerConnectionToken, @IServerEnvironmentService private readonly _environmentService: IServerEnvironmentService, @ILogService private readonly _logService: ILogService, @IRequestService private readonly _requestService: IRequestService, @IProductService private readonly _productService: IProductService, - ) { } + ) { + this._webExtensionResourceUrlTemplate = this._productService.extensionsGallery?.resourceUrlTemplate ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate) : undefined; + } async handle(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { try { @@ -149,7 +153,7 @@ export class WebClientServer { * Handle extension resources */ private async _handleWebExtensionResource(req: http.IncomingMessage, res: http.ServerResponse, parsedUrl: url.UrlWithParsedQuery): Promise { - if (!this._productService.extensionsGallery?.resourceUrlTemplate) { + if (!this._webExtensionResourceUrlTemplate) { return serveError(req, res, 500, 'No extension gallery service configured.'); } @@ -157,12 +161,12 @@ export class WebClientServer { const normalizedPathname = decodeURIComponent(parsedUrl.pathname!); // support paths that are uri-encoded (e.g. spaces => %20) const path = normalize(normalizedPathname.substr('/web-extension-resource/'.length)); const uri = URI.parse(path).with({ - scheme: this._productService.extensionsGallery?.resourceUrlTemplate ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate).scheme : 'https', + scheme: this._webExtensionResourceUrlTemplate.scheme, authority: path.substring(0, path.indexOf('/')), path: path.substring(path.indexOf('/') + 1) }); - if (this._getResourceURLTemplateAuthority(URI.parse(this._productService.extensionsGallery.resourceUrlTemplate)) !== this._getResourceURLTemplateAuthority(uri)) { + if (this._getResourceURLTemplateAuthority(this._webExtensionResourceUrlTemplate) !== this._getResourceURLTemplateAuthority(uri)) { return serveError(req, res, 403, 'Request Forbidden'); } @@ -266,7 +270,6 @@ export class WebClientServer { accessToken: this._environmentService.args['github-auth'], scopes: [['user:email'], ['repo']] } : undefined; - const resourceUrlTemplate = this._productService.extensionsGallery ? URI.parse(this._productService.extensionsGallery.resourceUrlTemplate) : undefined; const data = (await util.promisify(fs.readFile)(filePath)).toString() .replace('{{WORKBENCH_WEB_CONFIGURATION}}', escapeAttribute(JSON.stringify({ remoteAuthority, @@ -274,12 +277,12 @@ export class WebClientServer { developmentOptions: { enableSmokeTestDriver: this._environmentService.driverHandle === 'web' ? true : undefined }, settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined, productConfiguration: >{ - extensionsGallery: resourceUrlTemplate ? { + extensionsGallery: this._webExtensionResourceUrlTemplate ? { ...this._productService.extensionsGallery, - 'resourceUrlTemplate': resourceUrlTemplate.with({ + 'resourceUrlTemplate': this._webExtensionResourceUrlTemplate.with({ scheme: 'http', authority: remoteAuthority, - path: `web-extension-resource/${resourceUrlTemplate.authority}${resourceUrlTemplate.path}` + path: `web-extension-resource/${this._webExtensionResourceUrlTemplate.authority}${this._webExtensionResourceUrlTemplate.path}` }).toString(true) } : undefined } From be5b4fc06bc4a07180a22157915942c41a0fb95a Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 13:58:01 +0100 Subject: [PATCH 08/96] Fixes #69391: Reserve extra bottom padding when the hover has a horizontal scrollbar --- src/vs/base/browser/ui/hover/hoverWidget.ts | 8 ++++---- .../browser/ui/scrollbar/scrollableElement.ts | 4 ++++ .../contrib/hover/browser/contentHover.ts | 17 +++++++++++++++-- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/vs/base/browser/ui/hover/hoverWidget.ts b/src/vs/base/browser/ui/hover/hoverWidget.ts index 3593cdcba61..c05a9658101 100644 --- a/src/vs/base/browser/ui/hover/hoverWidget.ts +++ b/src/vs/base/browser/ui/hover/hoverWidget.ts @@ -18,7 +18,7 @@ export class HoverWidget extends Disposable { public readonly containerDomNode: HTMLElement; public readonly contentsDomNode: HTMLElement; - private readonly _scrollbar: DomScrollableElement; + public readonly scrollbar: DomScrollableElement; constructor() { super(); @@ -31,14 +31,14 @@ export class HoverWidget extends Disposable { this.contentsDomNode = document.createElement('div'); this.contentsDomNode.className = 'monaco-hover-content'; - this._scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, { + this.scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, { consumeMouseWheelIfScrollbarIsNeeded: true })); - this.containerDomNode.appendChild(this._scrollbar.getDomNode()); + this.containerDomNode.appendChild(this.scrollbar.getDomNode()); } public onContentsChanged(): void { - this._scrollbar.scanDomNode(); + this.scrollbar.scanDomNode(); } } diff --git a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts index 97f6f31d12a..aa6be1c229b 100644 --- a/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +++ b/src/vs/base/browser/ui/scrollbar/scrollableElement.ts @@ -175,6 +175,10 @@ export abstract class AbstractScrollableElement extends Widget { private readonly _onWillScroll = this._register(new Emitter()); public readonly onWillScroll: Event = this._onWillScroll.event; + public get options(): Readonly { + return this._options; + } + protected constructor(element: HTMLElement, options: ScrollableElementCreationOptions, scrollable: Scrollable) { super(); element.style.overflow = 'hidden'; diff --git a/src/vs/editor/contrib/hover/browser/contentHover.ts b/src/vs/editor/contrib/hover/browser/contentHover.ts index 03e32f66a94..e6b7f333602 100644 --- a/src/vs/editor/contrib/hover/browser/contentHover.ts +++ b/src/vs/editor/contrib/hover/browser/contentHover.ts @@ -417,10 +417,11 @@ export class ContentHoverWidget extends Disposable implements IContentWidget { this._hover.contentsDomNode.textContent = ''; this._hover.contentsDomNode.appendChild(node); + this._hover.contentsDomNode.style.paddingBottom = ''; this._updateFont(); this._editor.layoutContentWidget(this); - this._hover.onContentsChanged(); + this.onContentsChanged(); // Simply force a synchronous render on the editor // such that the widget does not really render with left = '0px' @@ -429,7 +430,7 @@ export class ContentHoverWidget extends Disposable implements IContentWidget { // See https://github.com/microsoft/vscode/issues/140339 // TODO: Doing a second layout of the hover after force rendering the editor this._editor.layoutContentWidget(this); - this._hover.onContentsChanged(); + this.onContentsChanged(); if (visibleData.stoleFocus) { this._hover.containerDomNode.focus(); @@ -452,6 +453,18 @@ export class ContentHoverWidget extends Disposable implements IContentWidget { public onContentsChanged(): void { this._hover.onContentsChanged(); + + const scrollDimensions = this._hover.scrollbar.getScrollDimensions(); + const hasHorizontalScrollbar = (scrollDimensions.scrollWidth > scrollDimensions.width); + if (hasHorizontalScrollbar) { + // There is just a horizontal scrollbar + const extraBottomPadding = `${this._hover.scrollbar.options.horizontalScrollbarSize}px`; + if (this._hover.contentsDomNode.style.paddingBottom !== extraBottomPadding) { + this._hover.contentsDomNode.style.paddingBottom = extraBottomPadding; + this._editor.layoutContentWidget(this); + this._hover.onContentsChanged(); + } + } } public clear(): void { From 7d47cd2242d226b455fcf25c80f49e6aa1d69fc0 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 14:42:05 +0100 Subject: [PATCH 09/96] fix #141643 --- .../workbench/contrib/extensions/browser/extensionsActions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts index 2447a2bfe4b..7a14271eac6 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts @@ -286,6 +286,7 @@ export abstract class AbstractInstallAction extends ExtensionAction { if (runningExtension && !(runningExtension.activationEvents && runningExtension.activationEvents.some(activationEent => activationEent.startsWith('onLanguage')))) { const action = await this.getThemeAction(extension); if (action) { + action.extension = extension; try { return action.run({ showCurrentTheme: true, ignoreFocusLost: true }); } finally { @@ -297,7 +298,7 @@ export abstract class AbstractInstallAction extends ExtensionAction { } - private async getThemeAction(extension: IExtension): Promise { + private async getThemeAction(extension: IExtension): Promise { const colorThemes = await this.workbenchThemeService.getColorThemes(); if (colorThemes.some(theme => isThemeFromExtension(theme, extension))) { return this.instantiationService.createInstance(SetColorThemeAction); From 048c70df8fce6208689342f8d778279d879e74b2 Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 27 Jan 2022 14:45:28 +0100 Subject: [PATCH 10/96] Revert "always set aria-selected, even for listbox" This reverts commit 1356392d15bd5434b0b1422483790e9d77010e29. --- src/vs/base/browser/ui/list/listWidget.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index fec4f39c434..4c7ad3b6272 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -196,17 +196,19 @@ class Trait implements ISpliceable, IDisposable { class SelectionTrait extends Trait { - constructor() { + constructor(private setAriaSelected: boolean) { super('selected'); } override renderIndex(index: number, container: HTMLElement): void { super.renderIndex(index, container); - if (this.contains(index)) { - container.setAttribute('aria-selected', 'true'); - } else { - container.setAttribute('aria-selected', 'false'); + if (this.setAriaSelected) { + if (this.contains(index)) { + container.setAttribute('aria-selected', 'true'); + } else { + container.setAttribute('aria-selected', 'false'); + } } } } @@ -1315,7 +1317,7 @@ export class List implements ISpliceable, IThemable, IDisposable { private _options: IListOptions = DefaultOptions ) { const role = this._options.accessibilityProvider && this._options.accessibilityProvider.getWidgetRole ? this._options.accessibilityProvider?.getWidgetRole() : 'list'; - this.selection = new SelectionTrait(); + this.selection = new SelectionTrait(role !== 'listbox'); mixin(_options, defaultStyles, false); From 8b5368ec42eff55b3c67decb15b39ff9fa46ef88 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 14:51:20 +0100 Subject: [PATCH 11/96] Fixes #141638: `-command` rules should only remove default rules --- .../keybinding/common/keybindingResolver.ts | 19 +++++++------------ .../test/common/keybindingResolver.test.ts | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/vs/platform/keybinding/common/keybindingResolver.ts b/src/vs/platform/keybinding/common/keybindingResolver.ts index 2de142d9705..8f13c5e878a 100644 --- a/src/vs/platform/keybinding/common/keybindingResolver.ts +++ b/src/vs/platform/keybinding/common/keybindingResolver.ts @@ -87,15 +87,15 @@ export class KeybindingResolver { */ public static handleRemovals(rules: ResolvedKeybindingItem[]): ResolvedKeybindingItem[] { // Do a first pass and construct a hash-map for removals - const removals = new Map(); + const removals = new Map(); for (let i = 0, len = rules.length; i < len; i++) { const rule = rules[i]; if (rule.command && rule.command.charAt(0) === '-') { const command = rule.command.substring(1); if (!removals.has(command)) { - removals.set(command, [{ maxIndex: i, rule }]); + removals.set(command, [rule]); } else { - removals.get(command)!.push({ maxIndex: i, rule }); + removals.get(command)!.push(rule); } } } @@ -118,21 +118,16 @@ export class KeybindingResolver { continue; } const commandRemovals = removals.get(rule.command); - if (!commandRemovals) { + if (!commandRemovals || !rule.isDefault) { result.push(rule); continue; } let isRemoved = false; for (const commandRemoval of commandRemovals) { - if (i > commandRemoval.maxIndex) { - // this command removal is above this rule, so it cannot influence it - continue; - } - const removalRule = commandRemoval.rule; // TODO@chords - const keypressFirstPart = removalRule.keypressParts[0]; - const keypressChordPart = removalRule.keypressParts[1]; - const when = removalRule.when; + const keypressFirstPart = commandRemoval.keypressParts[0]; + const keypressChordPart = commandRemoval.keypressParts[1]; + const when = commandRemoval.when; if (this._isTargetedForRemoval(rule, keypressFirstPart, keypressChordPart, when)) { isRemoved = true; break; diff --git a/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts b/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts index 1a0edf133a0..77935d73c2c 100644 --- a/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts +++ b/src/vs/platform/keybinding/test/common/keybindingResolver.test.ts @@ -221,6 +221,20 @@ suite('KeybindingResolver', () => { ]); }); + test('issue #141638: Keyboard Shortcuts: Change When Expression might actually remove keybinding in Insiders', () => { + const defaults = [ + kbItem(KeyCode.KeyA, 'command1', null, undefined, true), + ]; + const overrides = [ + kbItem(KeyCode.KeyA, 'command1', null, ContextKeyExpr.equals('a', '1'), false), + kbItem(KeyCode.KeyA, '-command1', null, undefined, false), + ]; + const actual = KeybindingResolver.handleRemovals([...defaults, ...overrides]); + assert.deepStrictEqual(actual, [ + kbItem(KeyCode.KeyA, 'command1', null, ContextKeyExpr.equals('a', '1'), false) + ]); + }); + test('contextIsEntirelyIncluded', () => { const toContextKeyExpression = (expr: ContextKeyExpression | string | null) => { if (typeof expr === 'string' || !expr) { From d41298c7e25c56ffc8643642afe77db00f790f23 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 15:17:17 +0100 Subject: [PATCH 12/96] fix #141299 --- .../contrib/preferences/browser/keybindingsEditor.ts | 11 +++++++++-- .../preferences/browser/preferences.contribution.ts | 4 ++-- .../contrib/preferences/common/preferences.ts | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts index 57411a743f0..05a30925139 100644 --- a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts +++ b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts @@ -22,7 +22,7 @@ import { KeybindingsEditorModel, KEYBINDING_ENTRY_TEMPLATE_ID } from 'vs/workben import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindingService, IUserFriendlyKeybinding } from 'vs/platform/keybinding/common/keybinding'; import { DefineKeybindingWidget, KeybindingsSearchWidget } from 'vs/workbench/contrib/preferences/browser/keybindingWidgets'; -import { CONTEXT_KEYBINDING_FOCUS, CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE } from 'vs/workbench/contrib/preferences/common/preferences'; +import { CONTEXT_KEYBINDING_FOCUS, CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE, CONTEXT_WHEN_FOCUS } from 'vs/workbench/contrib/preferences/common/preferences'; import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IKeybindingEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing'; import { IListContextMenuEvent } from 'vs/base/browser/ui/list/list'; @@ -999,12 +999,15 @@ class WhenColumnRenderer implements ITableRenderer; constructor( private readonly keybindingsEditor: KeybindingsEditor, @IContextViewService private readonly contextViewService: IContextViewService, - @IThemeService private readonly themeService: IThemeService + @IThemeService private readonly themeService: IThemeService, + @IContextKeyService contextKeyService: IContextKeyService, ) { + this.whenFocusContextKey = CONTEXT_WHEN_FOCUS.bindTo(contextKeyService); } renderTemplate(container: HTMLElement): IWhenColumnTemplateData { @@ -1060,7 +1063,11 @@ class WhenColumnRenderer implements ITableRenderer { + this.whenFocusContextKey.set(true); + }))); disposables.add((DOM.addDisposableListener(whenInput.inputElement, DOM.EventType.BLUR, () => { + this.whenFocusContextKey.set(false); hideInputBox(); _onDidReject.fire(); }))); diff --git a/src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts b/src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts index 2ecefa3eb1f..cc5f0bbb8ba 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts @@ -34,7 +34,7 @@ import { ConfigureLanguageBasedSettingsAction } from 'vs/workbench/contrib/prefe import { SettingsEditorContribution } from 'vs/workbench/contrib/preferences/browser/preferencesEditor'; import { preferencesOpenSettingsIcon } from 'vs/workbench/contrib/preferences/browser/preferencesIcons'; import { SettingsEditor2, SettingsFocusContext } from 'vs/workbench/contrib/preferences/browser/settingsEditor2'; -import { CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, CONTEXT_KEYBINDING_FOCUS, CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_JSON_EDITOR, CONTEXT_SETTINGS_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, CONTEXT_TOC_ROW_FOCUS, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_SEARCH, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_SHOW_DEFAULT_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_EXTENSION_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_USER_KEYBINDINGS, MODIFIED_SETTING_TAG, REQUIRE_TRUSTED_WORKSPACE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU } from 'vs/workbench/contrib/preferences/common/preferences'; +import { CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, CONTEXT_KEYBINDING_FOCUS, CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_JSON_EDITOR, CONTEXT_SETTINGS_ROW_FOCUS, CONTEXT_SETTINGS_SEARCH_FOCUS, CONTEXT_TOC_ROW_FOCUS, CONTEXT_WHEN_FOCUS, KEYBINDINGS_EDITOR_COMMAND_ADD, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND_TITLE, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_DEFINE_WHEN, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_RECORD_SEARCH_KEYS, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_SEARCH, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_SORTBY_PRECEDENCE, KEYBINDINGS_EDITOR_SHOW_DEFAULT_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_EXTENSION_KEYBINDINGS, KEYBINDINGS_EDITOR_SHOW_USER_KEYBINDINGS, MODIFIED_SETTING_TAG, REQUIRE_TRUSTED_WORKSPACE_SETTING_TAG, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_SHOW_CONTEXT_MENU } from 'vs/workbench/contrib/preferences/common/preferences'; import { PreferencesContribution } from 'vs/workbench/contrib/preferences/common/preferencesContribution'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; @@ -1054,7 +1054,7 @@ class PreferencesActionsContribution extends Disposable implements IWorkbenchCon KeybindingsRegistry.registerCommandAndKeybindingRule({ id: KEYBINDINGS_EDITOR_COMMAND_COPY, weight: KeybindingWeight.WorkbenchContrib, - when: ContextKeyExpr.and(CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDING_FOCUS), + when: ContextKeyExpr.and(CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDING_FOCUS, CONTEXT_WHEN_FOCUS.negate()), primary: KeyMod.CtrlCmd | KeyCode.KeyC, handler: async (accessor, args: any) => { const editorPane = accessor.get(IEditorService).activeEditorPane; diff --git a/src/vs/workbench/contrib/preferences/common/preferences.ts b/src/vs/workbench/contrib/preferences/common/preferences.ts index f3c605cf91c..307d275b99c 100644 --- a/src/vs/workbench/contrib/preferences/common/preferences.ts +++ b/src/vs/workbench/contrib/preferences/common/preferences.ts @@ -51,6 +51,7 @@ export const CONTEXT_SETTINGS_ROW_FOCUS = new RawContextKey('settingRow export const CONTEXT_KEYBINDINGS_EDITOR = new RawContextKey('inKeybindings', false); export const CONTEXT_KEYBINDINGS_SEARCH_FOCUS = new RawContextKey('inKeybindingsSearch', false); export const CONTEXT_KEYBINDING_FOCUS = new RawContextKey('keybindingFocus', false); +export const CONTEXT_WHEN_FOCUS = new RawContextKey('whenFocus', false); export const KEYBINDINGS_EDITOR_COMMAND_SEARCH = 'keybindings.editor.searchKeybindings'; export const KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS = 'keybindings.editor.clearSearchResults'; From 5c6672cd774980003bbaad21b2505ba1ea3532f2 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 06:52:16 -0800 Subject: [PATCH 13/96] Remove terminalLocation from api proposal list Fixes #141645 --- extensions/vscode-api-tests/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json index 1dd49ae7de9..7eb5d4db32d 100644 --- a/extensions/vscode-api-tests/package.json +++ b/extensions/vscode-api-tests/package.json @@ -41,7 +41,6 @@ "taskPresentationGroup", "terminalDataWriteEvent", "terminalDimensions", - "terminalLocation", "terminalNameChangeEvent", "testCoverage", "testObserver", From 165788bc6faf3728d2b4bf126b4b883ecc631a1f Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 07:04:10 -0800 Subject: [PATCH 14/96] Match z-index on parameter hints to the hover Fixes #140761 --- .../editor/contrib/parameterHints/browser/parameterHints.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css index 4aaffeac455..74cf9a06566 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css @@ -4,7 +4,8 @@ *--------------------------------------------------------------------------------------------*/ .monaco-editor .parameter-hints-widget { - z-index: 10; + /* Must be higher than sash's z-index and terminal canvases */ + z-index: 40; display: flex; flex-direction: column; line-height: 1.5em; From 82dac48a4042d841173fe7028b82b3c3c176cfd9 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 07:17:04 -0800 Subject: [PATCH 15/96] Reveal panel/editor when running a recent command/dir Fixes #141619 --- .../terminal/browser/terminalActions.ts | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts index 3e76fb6349e..dd9f1d8d31b 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts @@ -33,7 +33,7 @@ import { PICK_WORKSPACE_FOLDER_COMMAND_ID } from 'vs/workbench/browser/actions/w import { CLOSE_EDITOR_COMMAND_ID } from 'vs/workbench/browser/parts/editor/editorCommands'; import { ResourceContextKey } from 'vs/workbench/common/contextkeys'; import { FindInFilesCommand, IFindInFilesArgs } from 'vs/workbench/contrib/search/browser/searchActions'; -import { Direction, ICreateTerminalOptions, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal'; +import { Direction, ICreateTerminalOptions, ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal'; import { TerminalQuickAccessProvider } from 'vs/workbench/contrib/terminal/browser/terminalQuickAccess'; import { IRemoteTerminalAttachTarget, ITerminalConfigHelper, ITerminalProfileService, TerminalCommandId, TERMINAL_ACTION_CATEGORY } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; @@ -311,7 +311,17 @@ export function registerTerminalActions() { }); } async run(accessor: ServicesAccessor): Promise { - await accessor.get(ITerminalService).activeInstance?.runRecent('command'); + const terminalGroupService = accessor.get(ITerminalGroupService); + const terminalEditorService = accessor.get(ITerminalEditorService); + const instance = accessor.get(ITerminalService).activeInstance; + if (instance) { + await instance.runRecent('command'); + if (instance?.target === TerminalLocation.Editor) { + terminalEditorService.revealActiveEditor(); + } else { + terminalGroupService.showPanel(false); + } + } } }); registerAction2(class extends Action2 { @@ -325,7 +335,17 @@ export function registerTerminalActions() { }); } async run(accessor: ServicesAccessor): Promise { - await accessor.get(ITerminalService).activeInstance?.runRecent('cwd'); + const terminalGroupService = accessor.get(ITerminalGroupService); + const terminalEditorService = accessor.get(ITerminalEditorService); + const instance = accessor.get(ITerminalService).activeInstance; + if (instance) { + await instance.runRecent('cwd'); + if (instance?.target === TerminalLocation.Editor) { + terminalEditorService.revealActiveEditor(); + } else { + terminalGroupService.showPanel(false); + } + } } }); registerAction2(class extends Action2 { From d5dda6fe4973be92999adae6a1a7c235fe7a9744 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 07:28:46 -0800 Subject: [PATCH 16/96] Ensure quick pick is closed on view output Fixes #141615 --- .../terminal/browser/terminalInstance.ts | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index bb54b7c3dd1..8f694a0f5bc 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -766,7 +766,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const buttons: IQuickInputButton[] = [{ iconClass, tooltip: nls.localize('viewCommandOutput', "View Command Output"), - alwaysVisible: true + alwaysVisible: true, }]; items.push({ label, @@ -784,9 +784,11 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { } } const outputProvider = this._instantiationService.createInstance(TerminalOutputProvider); - const result = await this._quickInputService.pick(items.reverse(), { - onDidTriggerItemButton: (async e => { - const selectedCommand = e.item.command; + const quickPick = this._quickInputService.createQuickPick(); + quickPick.items = items.reverse(); + return new Promise(r => { + quickPick.onDidTriggerItemButton(async e => { + const selectedCommand = (e.item as Item).command; const output = selectedCommand?.getOutput(); if (output && selectedCommand?.command) { const textContent = await outputProvider.provideTextContent(URI.from( @@ -802,11 +804,16 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { }); } } - }) + quickPick.hide(); + }); + quickPick.onDidAccept(e => { + const result = quickPick.activeItems[0]; + this.sendText(type === 'cwd' ? `cd ${result.label}` : result.label, true); + quickPick.hide(); + }); + quickPick.show(); + quickPick.onDidHide(() => r()); }); - if (result) { - this.sendText(type === 'cwd' ? `cd ${result.label}` : result.label, true); - } } detachFromElement(): void { From eb0fb339522116c71789b29e8eb790b8dddd4dab Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Jan 2022 16:47:52 +0100 Subject: [PATCH 17/96] Inconsistent single quotes use in --help (same for code --help) --- src/vs/platform/environment/node/argv.ts | 2 +- src/vs/server/node/serverEnvironmentService.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 4821a44b65d..03e78318655 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -56,7 +56,7 @@ export const OPTIONS: OptionDescriptions> = { 'list-extensions': { type: 'boolean', cat: 'e', description: localize('listExtensions', "List the installed extensions.") }, 'show-versions': { type: 'boolean', cat: 'e', description: localize('showVersions', "Show versions of installed extensions, when using --list-extensions.") }, 'category': { type: 'string', cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extensions."), args: 'category' }, - 'install-extension': { type: 'string[]', cat: 'e', args: 'extension-id[@version] | path-to-vsix', description: localize('installExtension', "Installs or updates the extension. The identifier of an extension is always `${publisher}.${name}`. Use `--force` argument to update to latest version. To install a specific version provide `@${version}`. For example: 'vscode.csharp@1.2.3'.") }, + 'install-extension': { type: 'string[]', cat: 'e', args: 'extension-id[@version] | path-to-vsix', description: localize('installExtension', "Installs or updates the extension. The identifier of an extension is always '${publisher}.${name}'. Use '--force' argument to update to latest version. To install a specific version provide '@${version}'. For example: 'vscode.csharp@1.2.3'.") }, 'pre-release': { type: 'boolean', cat: 'e', description: localize('install prerelease', "Installs the pre-release version of the extension, when using --install-extension") }, 'uninstall-extension': { type: 'string[]', cat: 'e', args: 'extension-id', description: localize('uninstallExtension', "Uninstalls an extension.") }, 'enable-proposed-api': { type: 'string[]', cat: 'e', args: 'extension-id', description: localize('experimentalApis', "Enables proposed API features for extensions. Can receive one or more extension IDs to enable individually.") }, diff --git a/src/vs/server/node/serverEnvironmentService.ts b/src/vs/server/node/serverEnvironmentService.ts index 2da4ef460b4..6ddce7651ab 100644 --- a/src/vs/server/node/serverEnvironmentService.ts +++ b/src/vs/server/node/serverEnvironmentService.ts @@ -14,21 +14,21 @@ export const serverOptions: OptionDescriptions = { /* ----- server setup ----- */ - 'host': { type: 'string', cat: 'o', args: 'ip-address', description: nls.localize('host', 'The host name or IP address the server should listen to. If not set, defaults to `localhost`.') }, - 'port': { type: 'string', cat: 'o', args: 'port | port range', description: nls.localize('port', 'The port the server should listen to. If 0 is passed a random free port is picked. If a range in the format num-num is passed, a free port from the range is selected.') }, - 'pick-port': { type: 'string', deprecationMessage: 'Use the range notation in `port` instead.' }, - 'socket-path': { type: 'string', cat: 'o', args: 'path', description: nls.localize('socket-path', 'The path to a socket file for the server to listen to.') }, + 'host': { type: 'string', cat: 'o', args: 'ip-address', description: nls.localize('host', "The host name or IP address the server should listen to. If not set, defaults to 'localhost'.") }, + 'port': { type: 'string', cat: 'o', args: 'port | port range', description: nls.localize('port', "The port the server should listen to. If 0 is passed a random free port is picked. If a range in the format num-num is passed, a free port from the range is selected.") }, + 'pick-port': { type: 'string', deprecationMessage: "Use the range notation in 'port' instead." }, + 'socket-path': { type: 'string', cat: 'o', args: 'path', description: nls.localize('socket-path', "The path to a socket file for the server to listen to.") }, 'connection-token': { type: 'string', cat: 'o', args: 'token', deprecates: ['connectionToken'], description: nls.localize('connection-token', "A secret that must be included with all requests.") }, 'connection-token-file': { type: 'string', cat: 'o', args: 'path', deprecates: ['connection-secret', 'connectionTokenFile'], description: nls.localize('connection-token-file', "Path to a file that contains the connection token.") }, 'without-connection-token': { type: 'boolean', cat: 'o', description: nls.localize('without-connection-token', "Run without a connection token. Only use this if the connection is secured by other means.") }, 'disable-websocket-compression': { type: 'boolean' }, 'print-startup-performance': { type: 'boolean' }, 'print-ip-address': { type: 'boolean' }, - 'accept-server-license-terms': { type: 'boolean', cat: 'o', description: nls.localize('acceptLicenseTerms', 'If set, the user accepts the server license terms and the server will be started without a user prompt.') }, - 'server-data-dir': { type: 'string', cat: 'o', description: nls.localize('serverDataDir', 'Specifies the directory that server data is kept in.') }, - 'telemetry-level': { type: 'string', cat: 'o', args: 'off | crash | error | all', description: nls.localize('telemetry-level', 'Sets the initial telemetry level. If not specified, the server will await a connection before sending any telemetry. Setting this to off is equivalent to --disable-telemetry') }, + 'accept-server-license-terms': { type: 'boolean', cat: 'o', description: nls.localize('acceptLicenseTerms', "If set, the user accepts the server license terms and the server will be started without a user prompt.") }, + 'server-data-dir': { type: 'string', cat: 'o', description: nls.localize('serverDataDir', "Specifies the directory that server data is kept in.") }, + 'telemetry-level': { type: 'string', cat: 'o', args: 'off | crash | error | all', description: nls.localize('telemetry-level', "Sets the initial telemetry level. If not specified, the server will await a connection before sending any telemetry. Setting this to off is equivalent to --disable-telemetry") }, - /* ----- vs code options ----- */ + /* ----- vs code options --- -- */ 'user-data-dir': OPTIONS['user-data-dir'], 'driver': OPTIONS['driver'], @@ -62,7 +62,7 @@ export const serverOptions: OptionDescriptions = { 'force': OPTIONS['force'], 'do-not-sync': OPTIONS['do-not-sync'], 'pre-release': OPTIONS['pre-release'], - 'start-server': { type: 'boolean', cat: 'e', description: nls.localize('start-server', 'Start the server when installing or uninstalling extensions. To be used in combination with `install-extension`, `install-builtin-extension` and `uninstall-extension`.') }, + 'start-server': { type: 'boolean', cat: 'e', description: nls.localize('start-server', "Start the server when installing or uninstalling extensions. To be used in combination with 'install-extension', 'install-builtin-extension' and 'uninstall-extension'.") }, /* ----- remote development options ----- */ From 5b70b99303cbad79e79580c94a12008103483d74 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:03:35 +0100 Subject: [PATCH 18/96] Reduce duplication --- .../currentLineHighlight.ts | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts index 6dcf3ef4103..71e11ee1d3a 100644 --- a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts +++ b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts @@ -155,6 +155,21 @@ export abstract class AbstractLineHighlightOverlay extends DynamicViewOverlay { return this._renderData[lineIndex]; } + protected _shouldRenderInMargin(): boolean { + return ( + (this._renderLineHighlight === 'gutter' || this._renderLineHighlight === 'all') + && (!this._renderLineHighlightOnlyWhenFocus || this._focused) + ); + } + + protected _shouldRenderInContent(): boolean { + return ( + (this._renderLineHighlight === 'line' || this._renderLineHighlight === 'all') + && this._selectionIsEmpty + && (!this._renderLineHighlightOnlyWhenFocus || this._focused) + ); + } + protected abstract _shouldRenderThis(): boolean; protected abstract _shouldRenderOther(): boolean; protected abstract _renderOne(ctx: RenderingContext): string; @@ -167,40 +182,23 @@ export class CurrentLineHighlightOverlay extends AbstractLineHighlightOverlay { return `
`; } protected _shouldRenderThis(): boolean { - return ( - (this._renderLineHighlight === 'line' || this._renderLineHighlight === 'all') - && this._selectionIsEmpty - && (!this._renderLineHighlightOnlyWhenFocus || this._focused) - ); + return this._shouldRenderInContent(); } protected _shouldRenderOther(): boolean { - return ( - (this._renderLineHighlight === 'gutter' || this._renderLineHighlight === 'all') - && (!this._renderLineHighlightOnlyWhenFocus || this._focused) - ); + return this._shouldRenderInMargin(); } } export class CurrentLineMarginHighlightOverlay extends AbstractLineHighlightOverlay { protected _renderOne(ctx: RenderingContext): string { - const className = 'current-line' + (this._shouldRenderMargin() ? ' current-line-margin' : '') + (this._shouldRenderOther() ? ' current-line-margin-both' : ''); + const className = 'current-line' + (this._shouldRenderInMargin() ? ' current-line-margin' : '') + (this._shouldRenderOther() ? ' current-line-margin-both' : ''); return `
`; } - protected _shouldRenderMargin(): boolean { - return ( - (this._renderLineHighlight === 'gutter' || this._renderLineHighlight === 'all') - && (!this._renderLineHighlightOnlyWhenFocus || this._focused) - ); - } protected _shouldRenderThis(): boolean { return true; } protected _shouldRenderOther(): boolean { - return ( - (this._renderLineHighlight === 'line' || this._renderLineHighlight === 'all') - && this._selectionIsEmpty - && (!this._renderLineHighlightOnlyWhenFocus || this._focused) - ); + return this._shouldRenderInContent(); } } From ad6d1757c3999ef4f1baeb96e5d4bd3aacc6cb4e Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:04:13 +0100 Subject: [PATCH 19/96] Fixes #25221: Render line highlights for all cursors --- .../currentLineHighlight/currentLineHighlight.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts index 71e11ee1d3a..fe8dc86925c 100644 --- a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts +++ b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts @@ -14,8 +14,6 @@ import { registerThemingParticipant } from 'vs/platform/theme/common/themeServic import { Selection } from 'vs/editor/common/core/selection'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -let isRenderedUsingBorder = true; - export abstract class AbstractLineHighlightOverlay extends DynamicViewOverlay { private readonly _context: ViewContext; protected _lineHeight: number; @@ -57,17 +55,14 @@ export abstract class AbstractLineHighlightOverlay extends DynamicViewOverlay { private _readFromSelections(): boolean { let hasChanged = false; - // Only render the first selection when using border - const renderSelections = isRenderedUsingBorder ? this._selections.slice(0, 1) : this._selections; - - const cursorsLineNumbers = renderSelections.map(s => s.positionLineNumber); + const cursorsLineNumbers = this._selections.map(s => s.positionLineNumber); cursorsLineNumbers.sort((a, b) => a - b); if (!arrays.equals(this._cursorLineNumbers, cursorsLineNumbers)) { this._cursorLineNumbers = cursorsLineNumbers; hasChanged = true; } - const selectionIsEmpty = renderSelections.every(s => s.isEmpty()); + const selectionIsEmpty = this._selections.every(s => s.isEmpty()); if (this._selectionIsEmpty !== selectionIsEmpty) { this._selectionIsEmpty = selectionIsEmpty; hasChanged = true; @@ -203,7 +198,6 @@ export class CurrentLineMarginHighlightOverlay extends AbstractLineHighlightOver } registerThemingParticipant((theme, collector) => { - isRenderedUsingBorder = false; const lineHighlight = theme.getColor(editorLineHighlight); if (lineHighlight) { collector.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${lineHighlight}; }`); @@ -212,7 +206,6 @@ registerThemingParticipant((theme, collector) => { if (!lineHighlight || lineHighlight.isTransparent() || theme.defines(editorLineHighlightBorder)) { const lineHighlightBorder = theme.getColor(editorLineHighlightBorder); if (lineHighlightBorder) { - isRenderedUsingBorder = true; collector.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${lineHighlightBorder}; }`); collector.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${lineHighlightBorder}; }`); if (theme.type === 'hc') { From f602b1c95b7a552c898ac5b4a2e5d2c0af0b9173 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Jan 2022 17:18:19 +0100 Subject: [PATCH 20/96] server: port range is end inclusive, improve validation --- src/server-main.js | 20 +++++++++++-------- .../server/node/serverEnvironmentService.ts | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/server-main.js b/src/server-main.js index f13a766b663..0bfa507172a 100644 --- a/src/server-main.js +++ b/src/server-main.js @@ -147,9 +147,9 @@ async function start() { } /** - * If `--pick - port` and `--port` is specified, connect to that port. + * If `--pick-port` and `--port` is specified, connect to that port. * - * If not and a port range is specified through `--pick - port` + * If not and a port range is specified through `--pick-port` * then find a free port in that range. Throw error if no * free port available in range. * @@ -176,14 +176,15 @@ async function parsePort(host, strPort, strPickPort) { if (port !== undefined) { return port; } - console.warn(`--port: Could not find free port in range: ${range.start} - ${range.end}.`); + console.warn(`--port: Could not find free port in range: ${range.start} - ${range.end} (inclusive).`); process.exit(1); } else { - console.warn(`--port "${strPort}" is not a valid number or range.`); + console.warn(`--port "${strPort}" is not a valid number or range. Ranges must be in the form 'from-to' with 'from' an integer larger than 0 and not larger than 'end'.`); process.exit(1); } } + // pick-port is deprected and will be removed soon if (strPickPort) { const range = parseRange(strPickPort); if (range) { @@ -194,11 +195,11 @@ async function parsePort(host, strPort, strPickPort) { if (port !== undefined) { return port; } - console.log(`--pick - port: Could not find free port in range: ${range.start} - ${range.end}.`); + console.log(`--pick-port: Could not find free port in range: ${range.start} - ${range.end}.`); process.exit(1); } } else { - console.log(`--pick - port "${strPickPort}" is not properly formatted.`); + console.log(`--pick-port "${strPickPort}" is not a valid range. Ranges must be in the form 'from-to' with 'from' an integer larger than 0 and not larger than 'end'.`); process.exit(1); } } @@ -212,7 +213,10 @@ async function parsePort(host, strPort, strPickPort) { function parseRange(strRange) { const match = strRange.match(/^(\d+)-(\d+)$/); if (match) { - return { start: parseInt(match[1], 10), end: parseInt(match[2], 10) }; + const start = parseInt(match[1], 10), end = parseInt(match[2], 10); + if (start > 0 && start <= end && end <= 65535) { + return { start, end }; + } } return undefined; } @@ -239,7 +243,7 @@ async function findFreePort(host, start, end) { }); }); }; - for (let port = start; port < end; port++) { + for (let port = start; port <= end; port++) { if (await testPort(port)) { return port; } diff --git a/src/vs/server/node/serverEnvironmentService.ts b/src/vs/server/node/serverEnvironmentService.ts index 6ddce7651ab..3b088b18162 100644 --- a/src/vs/server/node/serverEnvironmentService.ts +++ b/src/vs/server/node/serverEnvironmentService.ts @@ -15,8 +15,8 @@ export const serverOptions: OptionDescriptions = { /* ----- server setup ----- */ 'host': { type: 'string', cat: 'o', args: 'ip-address', description: nls.localize('host', "The host name or IP address the server should listen to. If not set, defaults to 'localhost'.") }, - 'port': { type: 'string', cat: 'o', args: 'port | port range', description: nls.localize('port', "The port the server should listen to. If 0 is passed a random free port is picked. If a range in the format num-num is passed, a free port from the range is selected.") }, - 'pick-port': { type: 'string', deprecationMessage: "Use the range notation in 'port' instead." }, + 'port': { type: 'string', cat: 'o', args: 'port | port range', description: nls.localize('port', "The port the server should listen to. If 0 is passed a random free port is picked. If a range in the format num-num is passed, a free port from the range (end inclusive) is selected.") }, + 'pick-port': { type: 'string', deprecationMessage: 'Use the range notation in \'port\' instead.' }, 'socket-path': { type: 'string', cat: 'o', args: 'path', description: nls.localize('socket-path', "The path to a socket file for the server to listen to.") }, 'connection-token': { type: 'string', cat: 'o', args: 'token', deprecates: ['connectionToken'], description: nls.localize('connection-token', "A secret that must be included with all requests.") }, 'connection-token-file': { type: 'string', cat: 'o', args: 'path', deprecates: ['connection-secret', 'connectionTokenFile'], description: nls.localize('connection-token-file', "Path to a file that contains the connection token.") }, From e146c5fa8b544eee456383dd75859017ea5b9bc9 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Jan 2022 17:22:42 +0100 Subject: [PATCH 21/96] fix typo --- src/server-main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server-main.js b/src/server-main.js index 0bfa507172a..a0bee88bd95 100644 --- a/src/server-main.js +++ b/src/server-main.js @@ -184,7 +184,7 @@ async function parsePort(host, strPort, strPickPort) { process.exit(1); } } - // pick-port is deprected and will be removed soon + // pick-port is deprecated and will be removed soon if (strPickPort) { const range = parseRange(strPickPort); if (range) { From fe79871a36d030f9f1a011381d845b0d861ef8ac Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:35:40 +0100 Subject: [PATCH 22/96] Use `display:none` when overview ruler is turned off --- .../browser/viewParts/overviewRuler/decorationsOverviewRuler.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts index c2c31c144e4..ffb992a600f 100644 --- a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts +++ b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts @@ -318,8 +318,10 @@ export class DecorationsOverviewRuler extends ViewPart { if (this._settings.overviewRulerLanes === 0) { // overview ruler is off this._domNode.setBackgroundColor(this._settings.backgroundColor ? this._settings.backgroundColor : ''); + this._domNode.setDisplay('none'); return; } + this._domNode.setDisplay('block'); const canvasWidth = this._settings.canvasWidth; const canvasHeight = this._settings.canvasHeight; const lineHeight = this._settings.lineHeight; From 61f0872ae8a71ca2f56e15e8288082d7f23a9504 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:36:08 +0100 Subject: [PATCH 23/96] Better align simple options with ``s --- .../workbench/contrib/codeEditor/browser/simpleEditorOptions.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions.ts b/src/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions.ts index cba97da10d6..29d6921a6b0 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/simpleEditorOptions.ts @@ -32,6 +32,8 @@ export function getSimpleEditorOptions(): IEditorOptions { renderLineHighlight: 'none', fixedOverflowWidgets: true, acceptSuggestionOnEnter: 'smart', + dragAndDrop: false, + revealHorizontalRightPadding: 5, minimap: { enabled: false }, From 8211dc3a081bf7a29bf00143661ec8b9b1002a8b Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:36:50 +0100 Subject: [PATCH 24/96] Fixes #140367: Take into account horizontal padding when layouting the editor --- .../workbench/contrib/extensions/browser/extensionsViewlet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts b/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts index d5d85b2cc78..dffe193a482 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsViewlet.ts @@ -575,7 +575,7 @@ export class ExtensionsViewPaneContainer extends ViewPaneContainer implements IE this.root.classList.toggle('mini', dimension.width <= 200); } if (this.searchBox) { - this.searchBox.layout(new Dimension(dimension.width - 34, 20)); + this.searchBox.layout(new Dimension(dimension.width - 34 - /*padding*/8, 20)); } super.layout(new Dimension(dimension.width, dimension.height - 41)); } From f0c9dd6f86608bf89286effceaba6f5c59dbd526 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 17:41:26 +0100 Subject: [PATCH 25/96] Update scripts to point to `tsc` one folder up --- build/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/package.json b/build/package.json index 4e4186e322c..ed4f0e306fd 100644 --- a/build/package.json +++ b/build/package.json @@ -66,9 +66,9 @@ "vscode-universal-bundler": "^0.0.2" }, "scripts": { - "compile": "tsc -p tsconfig.build.json", - "watch": "tsc -p tsconfig.build.json --watch", - "npmCheckJs": "tsc --noEmit" + "compile": "../node_modules/.bin/tsc -p tsconfig.build.json", + "watch": "../node_modules/.bin/tsc -p tsconfig.build.json --watch", + "npmCheckJs": "../node_modules/.bin/tsc --noEmit" }, "dependencies": {} } From 36a510ed72e7d1c90689759579439eb3b866873a Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 17:44:50 +0100 Subject: [PATCH 26/96] Fix #141331 --- .../extensions/browser/extensionEditor.ts | 9 ++++++--- .../extensions/browser/extensionsWidgets.ts | 4 ++-- .../extensions/browser/media/extensionEditor.css | 16 ++++++++++++---- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts index 473e858d765..40998bb0418 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts @@ -66,7 +66,7 @@ import { Delegate } from 'vs/workbench/contrib/extensions/browser/extensionsList import { renderMarkdown } from 'vs/base/browser/markdownRenderer'; import { attachKeybindingLabelStyler } from 'vs/platform/theme/common/styler'; import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; -import { errorIcon, infoIcon, starEmptyIcon, verifiedPublisherIcon as verifiedPublisherThemeIcon, warningIcon } from 'vs/workbench/contrib/extensions/browser/extensionsIcons'; +import { errorIcon, infoIcon, preReleaseIcon, starEmptyIcon, verifiedPublisherIcon as verifiedPublisherThemeIcon, warningIcon } from 'vs/workbench/contrib/extensions/browser/extensionsIcons'; import { MarkdownString } from 'vs/base/common/htmlContent'; import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/browser/panecomposite'; import { ViewContainerLocation } from 'vs/workbench/common/views'; @@ -195,7 +195,9 @@ class PreReleaseTextWidget extends ExtensionWithDifferentGalleryVersionWidget { constructor(container: HTMLElement) { super(); this.element = append(container, $('span.pre-release')); - this.element.textContent = localize('preRelease', "Pre-Release"); + append(this.element, $('span' + ThemeIcon.asCSSSelector(preReleaseIcon))); + const textElement = append(this.element, $('span.pre-release-text')); + textElement.textContent = localize('preRelease', "Pre-Release"); this.render(); } render(): void { @@ -286,10 +288,11 @@ export class ExtensionEditor extends EditorPane { const name = append(title, $('span.name.clickable', { title: localize('name', "Extension name"), role: 'heading', tabIndex: 0 })); const versionWidget = new VersionWidget(title); + const preReleaseWidget = new PreReleaseTextWidget(title); + const preview = append(title, $('span.preview', { title: localize('preview', "Preview") })); preview.textContent = localize('preview', "Preview"); - const preReleaseWidget = new PreReleaseTextWidget(title); const builtin = append(title, $('span.builtin')); builtin.textContent = localize('builtin', "Built-in"); diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts index 60f36bf3e20..a6d3845648d 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWidgets.ts @@ -486,10 +486,10 @@ export class ExtensionHoverWidget extends ExtensionWidget { } const markdown = new MarkdownString('', { isTrusted: true, supportThemeIcons: true }); - markdown.appendMarkdown(`**${this.extension.displayName}** _v${this.extension.version}_`); + markdown.appendMarkdown(`**${this.extension.displayName}** ** _v${this.extension.version}_** `); if (this.extension.local?.isPreReleaseVersion || this.extension.gallery?.properties.isPreReleaseVersion) { const extensionPreReleaseIcon = this.themeService.getColorTheme().getColor(extensionPreReleaseIconColor); - markdown.appendMarkdown(`  ${localize('pre-release-label', "Pre-Release")} `); + markdown.appendMarkdown(`** **  $(${preReleaseIcon.id}) ${localize('pre-release-label', "Pre-Release")} `); } markdown.appendText(`\n`); diff --git a/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css b/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css index f967bb35eb8..589bbe1742d 100644 --- a/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css +++ b/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css @@ -89,15 +89,23 @@ } .extension-editor > .header > .details > .title > .pre-release { - font-size: 10px; margin-left: 10px; padding: 0px 4px; border-radius: 4px; - user-select: none; - -webkit-user-select: none; background-color: var(--vscode-extensionIcon-preReleaseForeground); color: #ffffff; - white-space: nowrap; + display: flex; + align-items: center; +} + +.extension-editor > .header > .details > .title > .pre-release > .codicon.codicon-extensions-pre-release { + color: #ffffff; + font-size: 14px; +} + +.extension-editor > .header > .details > .title > .pre-release > .pre-release-text { + font-size: 10px; + padding-left: 3px; } .monaco-workbench.vs .extension-editor > .header > .details > .title > .preview { From 7cfeb2ca8bc1a970da62546ffdb3821eff7e073b Mon Sep 17 00:00:00 2001 From: Christof Marti Date: Thu, 27 Jan 2022 17:52:05 +0100 Subject: [PATCH 27/96] Update description (microsoft/vscode-remote-release#6184) --- .../schemas/devContainer.schema.generated.json | 10 +++++----- .../schemas/devContainer.schema.src.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extensions/configuration-editing/schemas/devContainer.schema.generated.json b/extensions/configuration-editing/schemas/devContainer.schema.generated.json index 23d381c8459..936ea50ce7a 100644 --- a/extensions/configuration-editing/schemas/devContainer.schema.generated.json +++ b/extensions/configuration-editing/schemas/devContainer.schema.generated.json @@ -375,7 +375,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", @@ -778,7 +778,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", @@ -1147,7 +1147,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", @@ -1490,7 +1490,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", @@ -1798,7 +1798,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", diff --git a/extensions/configuration-editing/schemas/devContainer.schema.src.json b/extensions/configuration-editing/schemas/devContainer.schema.src.json index 711633fa762..1e1e6c860aa 100644 --- a/extensions/configuration-editing/schemas/devContainer.schema.src.json +++ b/extensions/configuration-editing/schemas/devContainer.schema.src.json @@ -274,7 +274,7 @@ "loginInteractiveShell", "interactiveShell" ], - "description": "User environment probe to run. The default is none." + "description": "User environment probe to run. The default is \"loginInteractiveShell\"." }, "codespaces": { "type": "object", From 6c48bdea27ac0c9c55ec0e9c0d120402863657a2 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 18:10:43 +0100 Subject: [PATCH 28/96] fix typos --- src/vs/server/node/webClientServer.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 8652cb8c82f..08bba6ac66c 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -173,18 +173,18 @@ export class WebClientServer { } const headers: IHeaders = {}; - const seRequestHeader = (header: string) => { + const setRequestHeader = (header: string) => { const value = req.headers[header]; if (value && (isString(value) || value[0])) { headers[header] = isString(value) ? value : value[0]; } else if (header !== header.toLowerCase()) { - seRequestHeader(header.toLowerCase()); + setRequestHeader(header.toLowerCase()); } }; - seRequestHeader('X-Client-Name'); - seRequestHeader('X-Client-Version'); - seRequestHeader('X-Machine-Id'); - seRequestHeader('X-Client-Commit'); + setRequestHeader('X-Client-Name'); + setRequestHeader('X-Client-Version'); + setRequestHeader('X-Machine-Id'); + setRequestHeader('X-Client-Commit'); const context = await this._requestService.request({ type: 'GET', @@ -202,16 +202,16 @@ export class WebClientServer { } const responseHeaders: Record = Object.create(null); - const seResponseHeader = (header: string) => { + const setResponseHeader = (header: string) => { const value = context.res.headers[header]; if (value) { responseHeaders[header] = value; } else if (header !== header.toLowerCase()) { - seResponseHeader(header.toLowerCase()); + setResponseHeader(header.toLowerCase()); } }; - seResponseHeader('Cache-Control'); - seResponseHeader('Content-Type'); + setResponseHeader('Cache-Control'); + setResponseHeader('Content-Type'); res.writeHead(200, responseHeaders); const buffer = await streamToBuffer(context.stream); return res.end(buffer.buffer); From e7d99f3f6e44682a2bcfbac724b69114770d2af8 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 27 Jan 2022 18:20:02 +0100 Subject: [PATCH 29/96] fix #141633 --- .../workbench/contrib/extensions/browser/extensionsActions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts index 7a14271eac6..fdc588c6bdb 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts @@ -1096,7 +1096,7 @@ export class SwitchToReleasedVersionAction extends ExtensionAction { } update(): void { - this.enabled = !!this.extension && this.extension.state === ExtensionState.Installed && !!this.extension.local?.isPreReleaseVersion && !!this.extension.hasReleaseVersion; + this.enabled = !!this.extension && !this.extension.isBuiltin && this.extension.state === ExtensionState.Installed && !!this.extension.local?.isPreReleaseVersion && !!this.extension.hasReleaseVersion; } override async run(): Promise { From fe333b3ad458fe09e9fdbc72e2bca0d074c172f7 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 27 Jan 2022 12:12:18 -0600 Subject: [PATCH 30/96] await open editor --- src/vs/workbench/contrib/terminal/browser/terminalInstance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 8f694a0f5bc..7bf6036ac7f 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -799,7 +799,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { query: `terminal-output-${selectedCommand.timestamp}-${this.instanceId}` })); if (textContent) { - this._editorService.openEditor({ + await this._editorService.openEditor({ resource: textContent.uri }); } From 3cc9dd40a822ba95d4fc29d2c3de5d8ed1ee5e32 Mon Sep 17 00:00:00 2001 From: Harald Kirschner Date: Thu, 27 Jan 2022 10:24:32 -0800 Subject: [PATCH 31/96] Allow richer commands in get started entries --- .../browser/gettingStarted.ts | 2 +- .../common/gettingStartedContent.ts | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts index b7eeb558e7f..7c90960a1e8 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts @@ -364,7 +364,7 @@ export class GettingStartedPage extends EditorPane { case 'selectStartEntry': { const selected = startEntries.find(e => e.id === argument); if (selected) { - this.commandService.executeCommand(selected.content.command); + this.runStepCommand(selected.content.command); } else { throw Error('could not find start entry with id: ' + argument); } diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts index e0e9513e4b0..a05ce38f3a8 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts @@ -62,7 +62,7 @@ export const startEntries: GettingStartedStartEntryContent = [ icon: Codicon.newFile, content: { type: 'startEntry', - command: 'welcome.showNewFileEntries', + command: 'command:welcome.showNewFileEntries', } }, // { @@ -83,7 +83,7 @@ export const startEntries: GettingStartedStartEntryContent = [ when: '!isWeb && isMac', content: { type: 'startEntry', - command: 'workbench.action.files.openFileFolder', + command: 'command:workbench.action.files.openFileFolder', } }, { @@ -94,7 +94,7 @@ export const startEntries: GettingStartedStartEntryContent = [ when: 'isWeb || !isMac', content: { type: 'startEntry', - command: 'workbench.action.files.openFile', + command: 'command:workbench.action.files.openFile', } }, { @@ -105,7 +105,7 @@ export const startEntries: GettingStartedStartEntryContent = [ when: '!isWeb && !isMac', content: { type: 'startEntry', - command: 'workbench.action.files.openFolder', + command: 'command:workbench.action.files.openFolder', } }, { @@ -116,7 +116,7 @@ export const startEntries: GettingStartedStartEntryContent = [ when: 'isWeb && workbenchState == \'workspace\'', content: { type: 'startEntry', - command: 'workbench.action.addRootFolder', + command: 'command:workbench.action.addRootFolder', } }, { @@ -127,7 +127,7 @@ export const startEntries: GettingStartedStartEntryContent = [ icon: Codicon.sourceControl, content: { type: 'startEntry', - command: 'git.clone', + command: 'command:git.clone', } }, { @@ -138,7 +138,7 @@ export const startEntries: GettingStartedStartEntryContent = [ icon: Codicon.sourceControl, content: { type: 'startEntry', - command: 'remoteHub.openRepository', + command: 'command:remoteHub.openRepository', } }, { @@ -149,7 +149,7 @@ export const startEntries: GettingStartedStartEntryContent = [ when: 'allWalkthroughsHidden', content: { type: 'startEntry', - command: 'welcome.showAllWalkthroughs', + command: 'command:welcome.showAllWalkthroughs', } }, { From 4c83b115d3980ac8a116063f6aa00c58130fa82d Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 10:48:31 -0800 Subject: [PATCH 32/96] Update src/vs/workbench/contrib/terminal/browser/terminalInstance.ts Co-authored-by: Megan Rogge --- src/vs/workbench/contrib/terminal/browser/terminalInstance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 7bf6036ac7f..d8b6b5fd730 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -766,7 +766,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const buttons: IQuickInputButton[] = [{ iconClass, tooltip: nls.localize('viewCommandOutput', "View Command Output"), - alwaysVisible: true, + alwaysVisible: true }]; items.push({ label, From a58b5386624409bc2503fce780c96286552416c2 Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Thu, 27 Jan 2022 12:57:49 -0600 Subject: [PATCH 33/96] create process in an empty workspace when cwd is userHome (#141660) --- .../terminal/browser/terminalInstance.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index d8b6b5fd730..58dc799869e 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -73,6 +73,8 @@ import { TerminalCapability } from 'vs/workbench/contrib/terminal/common/capabil import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; +import { IHistoryService } from 'vs/workbench/services/history/common/history'; +import { Schemas } from 'vs/base/common/network'; const enum Constants { /** @@ -350,7 +352,8 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { @IWorkbenchEnvironmentService workbenchEnvironmentService: IWorkbenchEnvironmentService, @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService, @IEditorService private readonly _editorService: IEditorService, - @IWorkspaceTrustRequestService private readonly _workspaceTrustRequestService: IWorkspaceTrustRequestService + @IWorkspaceTrustRequestService private readonly _workspaceTrustRequestService: IWorkspaceTrustRequestService, + @IHistoryService private readonly _historyService: IHistoryService ) { super(); @@ -1312,9 +1315,16 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { if (this._isDisposed) { return; } - - const trusted = await this._trust(); - if (!trusted) { + const activeWorkspaceRootUri = this._historyService.getLastActiveWorkspaceRoot(Schemas.file); + if (activeWorkspaceRootUri) { + const trusted = await this._trust(); + if (!trusted) { + this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); + } + } else if (this._userHome && this._cwd !== this._userHome) { + // ensure that the process is launched in userHome for an empty workspace + this._shellLaunchConfig.cwd = this._userHome; + } else if (!this._userHome) { this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); } From 56718a15f025a59bfe9a25529212d7f8220e41dd Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Jan 2022 20:02:59 +0100 Subject: [PATCH 34/96] Fixes #140490 by always using `cursor:text` on macOS instead of our custom cursor. Since macOS Catalina the native cursor has a white border which makes it work well on dark themes, making our custom cursor not necessary. Also, macOS High Sierra is no longer officially supported by Apple (ref #96946) --- src/vs/base/browser/ui/mouseCursor/mouseCursor.css | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/vs/base/browser/ui/mouseCursor/mouseCursor.css b/src/vs/base/browser/ui/mouseCursor/mouseCursor.css index 2a998c4d970..1d7ede84175 100644 --- a/src/vs/base/browser/ui/mouseCursor/mouseCursor.css +++ b/src/vs/base/browser/ui/mouseCursor/mouseCursor.css @@ -6,9 +6,3 @@ .monaco-mouse-cursor-text { cursor: text; } - -/* The following selector looks a bit funny, but that is needed to cover all the workbench and the editor!! */ -.vs-dark .mac .monaco-mouse-cursor-text, .hc-black .mac .monaco-mouse-cursor-text, -.vs-dark.mac .monaco-mouse-cursor-text, .hc-black.mac .monaco-mouse-cursor-text { - cursor: -webkit-image-set(url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=') 1x, url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC') 2x) 5 8, text; -} From 8aa58ce751be6c476567f44ecfa6074b6016f245 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 11:11:27 -0800 Subject: [PATCH 35/96] Update shell integration config description Fixes #141308 --- .../workbench/contrib/terminal/common/terminalConfiguration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 8c30e02a5b4..3ef29094d5c 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -517,7 +517,7 @@ const terminalConfiguration: IConfigurationNode = { }, [TerminalSettingId.EnableShellIntegration]: { restricted: true, - markdownDescription: localize('terminal.integrated.enableShellIntegration', "Enable shell integration which will turn on certain feature such enhanced command tracking and current working directory detection. Shell integration works by injecting a script that is run when the shell is initialized which lets the terminal gain additional insights into what is happening within the terminal.\n\nSupported shells:\n\n- Linux/macOS: bash, pwsh, zsh\n - Windows: pwsh"), + markdownDescription: localize('terminal.integrated.enableShellIntegration', "Enable the experimental shell integration feature which will turn on certain feature such enhanced command tracking and current working directory detection. Shell integration works by injecting a script that is run when the shell is initialized which lets the terminal gain additional insights into what is happening within the terminal, the script injection may not work if you have custom arguments defined in the terminal profile.\n\nSupported shells:\n\n- Linux/macOS: bash, pwsh, zsh\n - Windows: pwsh"), type: 'boolean', default: false }, From 4f27425179174a914161affa6454ecf2b02c895a Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Jan 2022 20:22:05 +0100 Subject: [PATCH 36/96] --help should read better --- src/vs/platform/environment/node/argv.ts | 11 +++++------ src/vs/server/node/serverEnvironmentService.ts | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 03e78318655..6f324a9e88c 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -56,10 +56,10 @@ export const OPTIONS: OptionDescriptions> = { 'list-extensions': { type: 'boolean', cat: 'e', description: localize('listExtensions', "List the installed extensions.") }, 'show-versions': { type: 'boolean', cat: 'e', description: localize('showVersions', "Show versions of installed extensions, when using --list-extensions.") }, 'category': { type: 'string', cat: 'e', description: localize('category', "Filters installed extensions by provided category, when using --list-extensions."), args: 'category' }, - 'install-extension': { type: 'string[]', cat: 'e', args: 'extension-id[@version] | path-to-vsix', description: localize('installExtension', "Installs or updates the extension. The identifier of an extension is always '${publisher}.${name}'. Use '--force' argument to update to latest version. To install a specific version provide '@${version}'. For example: 'vscode.csharp@1.2.3'.") }, + 'install-extension': { type: 'string[]', cat: 'e', args: 'ext-id | path', description: localize('installExtension', "Installs or updates an extension. The argument is either an extension id or a path to a VSIX. The identifier of an extension is '${publisher}.${name}'. Use '--force' argument to update to latest version. To install a specific version provide '@${version}'. For example: 'vscode.csharp@1.2.3'.") }, 'pre-release': { type: 'boolean', cat: 'e', description: localize('install prerelease', "Installs the pre-release version of the extension, when using --install-extension") }, - 'uninstall-extension': { type: 'string[]', cat: 'e', args: 'extension-id', description: localize('uninstallExtension', "Uninstalls an extension.") }, - 'enable-proposed-api': { type: 'string[]', cat: 'e', args: 'extension-id', description: localize('experimentalApis', "Enables proposed API features for extensions. Can receive one or more extension IDs to enable individually.") }, + 'uninstall-extension': { type: 'string[]', cat: 'e', args: 'ext-id', description: localize('uninstallExtension', "Uninstalls an extension.") }, + 'enable-proposed-api': { type: 'string[]', cat: 'e', args: 'ext-id', description: localize('experimentalApis', "Enables proposed API features for extensions. Can receive one or more extension IDs to enable individually.") }, 'version': { type: 'boolean', cat: 't', alias: 'v', description: localize('version', "Print version.") }, 'verbose': { type: 'boolean', cat: 't', description: localize('verbose', "Print verbose output (implies --wait).") }, @@ -71,8 +71,8 @@ export const OPTIONS: OptionDescriptions> = { 'prof-startup-prefix': { type: 'string' }, 'prof-v8-extensions': { type: 'boolean' }, 'disable-extensions': { type: 'boolean', deprecates: ['disableExtensions'], cat: 't', description: localize('disableExtensions', "Disable all installed extensions.") }, - 'disable-extension': { type: 'string[]', cat: 't', args: 'extension-id', description: localize('disableExtension', "Disable an extension.") }, - 'sync': { type: 'string', cat: 't', description: localize('turn sync', "Turn sync on or off."), args: ['on', 'off'] }, + 'disable-extension': { type: 'string[]', cat: 't', args: 'ext-id', description: localize('disableExtension', "Disable an extension.") }, + 'sync': { type: 'string', cat: 't', description: localize('turn sync', "Turn sync on or off."), args: ['on | off'] }, 'inspect-extensions': { type: 'string', deprecates: ['debugPluginHost'], args: 'port', cat: 't', description: localize('inspect-extensions', "Allow debugging and profiling of extensions. Check the developer tools for the connection URI.") }, 'inspect-brk-extensions': { type: 'string', deprecates: ['debugBrkPluginHost'], args: 'port', cat: 't', description: localize('inspect-brk-extensions', "Allow debugging and profiling of extensions with the extension host being paused after start. Check the developer tools for the connection URI.") }, @@ -307,7 +307,6 @@ function wrapText(text: string, columns: number): string[] { export function buildHelpMessage(productName: string, executableName: string, version: string, options: OptionDescriptions, capabilities?: { noPipe?: boolean, noInputFiles: boolean }): string { const columns = (process.stdout).isTTY && (process.stdout).columns || 80; - const inputFiles = capabilities?.noInputFiles !== true ? `[${localize('paths', 'paths')}...]` : ''; const help = [`${productName} ${version}`]; diff --git a/src/vs/server/node/serverEnvironmentService.ts b/src/vs/server/node/serverEnvironmentService.ts index 3b088b18162..c4ef20bc4ef 100644 --- a/src/vs/server/node/serverEnvironmentService.ts +++ b/src/vs/server/node/serverEnvironmentService.ts @@ -26,7 +26,7 @@ export const serverOptions: OptionDescriptions = { 'print-ip-address': { type: 'boolean' }, 'accept-server-license-terms': { type: 'boolean', cat: 'o', description: nls.localize('acceptLicenseTerms', "If set, the user accepts the server license terms and the server will be started without a user prompt.") }, 'server-data-dir': { type: 'string', cat: 'o', description: nls.localize('serverDataDir', "Specifies the directory that server data is kept in.") }, - 'telemetry-level': { type: 'string', cat: 'o', args: 'off | crash | error | all', description: nls.localize('telemetry-level', "Sets the initial telemetry level. If not specified, the server will await a connection before sending any telemetry. Setting this to off is equivalent to --disable-telemetry") }, + 'telemetry-level': { type: 'string', cat: 'o', args: 'level', description: nls.localize('telemetry-level', "Sets the initial telemetry level. Valid levels are: 'off', 'crash', 'error' and 'all'. If not specified, the server will await a connection before sending any telemetry. Setting this to 'off' is equivalent to --disable-telemetry") }, /* ----- vs code options --- -- */ From 947f2b58f033f01796e2386fe2e844c8843a39bd Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Jan 2022 20:22:34 +0100 Subject: [PATCH 37/96] tty for ./scipts/code-server --- scripts/code-server.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/scripts/code-server.js b/scripts/code-server.js index 48ec073596b..c7ecdd8c07c 100644 --- a/scripts/code-server.js +++ b/scripts/code-server.js @@ -57,17 +57,7 @@ startServer(); function startServer() { console.log(`Starting server: ${entryPoint} ${serverArgs.join(' ')}`); - const proc = cp.spawn(process.execPath, [entryPoint, ...serverArgs], { env }); - - proc.stdout.on('data', data => { - // Log everything - process.stdout.write(data); - }); - - // Log errors - proc.stderr.on('data', data => { - process.stderr.write(data); - }); + const proc = cp.spawn(process.execPath, [entryPoint, ...serverArgs], { env, stdio: 'inherit' }); proc.on('exit', (code) => process.exit(code)); From ef1ae9592fae54db6872aaa486d733410cf7fdf1 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 11:27:54 -0800 Subject: [PATCH 38/96] Support null in auto replies setting Fixes #141666 --- .../contrib/terminal/common/terminalConfiguration.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 3ef29094d5c..70d16b6648d 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -508,8 +508,11 @@ const terminalConfiguration: IConfigurationNode = { markdownDescription: localize('terminal.integrated.autoReplies', "A set of messages that when encountered in the terminal will be automatically responded to. Provided the message is specific enough, this can help automate away common responses. Note that the message includes escape sequences so the reply might not happen with styled text. Each reply can only happen once every second.\n\nTo unset a default key, set the value to null."), type: 'object', additionalProperties: { - type: 'string', - description: localize('terminal.integrated.autoReplies.reply', "The reply to send to the process.") + oneOf: [{ + type: 'string', + description: localize('terminal.integrated.autoReplies.reply', "The reply to send to the process.") + }, + { type: 'null' }] }, default: { 'Terminate batch job (Y/N)': 'Y\r' From c606c772142ba36a3fbef0fe622cb041cc54b883 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 27 Jan 2022 11:35:59 -0800 Subject: [PATCH 39/96] Improve auto replies config more Part of #141666 --- .../workbench/contrib/terminal/common/terminalConfiguration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 70d16b6648d..1b523c12947 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -505,7 +505,7 @@ const terminalConfiguration: IConfigurationNode = { default: true }, [TerminalSettingId.AutoReplies]: { - markdownDescription: localize('terminal.integrated.autoReplies', "A set of messages that when encountered in the terminal will be automatically responded to. Provided the message is specific enough, this can help automate away common responses. Note that the message includes escape sequences so the reply might not happen with styled text. Each reply can only happen once every second.\n\nTo unset a default key, set the value to null."), + markdownDescription: localize('terminal.integrated.autoReplies', "A set of messages that when encountered in the terminal will be automatically responded to. Provided the message is specific enough, this can help automate away common responses.\n\nRemarks:\n\n- The message includes escape sequences so the reply might not happen with styled text.\n- Each reply can only happen once every second.\n- Use {0} in the reply to mean the enter key.\n- To unset a default key, set the value to null.", '`"\\r"`'), type: 'object', additionalProperties: { oneOf: [{ From 2438af8dab7df7c0b9eb0fcc16609cfe2caffa9c Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Thu, 27 Jan 2022 11:39:53 -0800 Subject: [PATCH 40/96] debug: bump js-debug --- product.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product.json b/product.json index a820f9f82c1..15aa2da235e 100644 --- a/product.json +++ b/product.json @@ -67,7 +67,7 @@ }, { "name": "ms-vscode.js-debug", - "version": "1.64.1", + "version": "1.64.2", "repo": "https://github.com/microsoft/vscode-js-debug", "metadata": { "id": "25629058-ddac-4e17-abba-74678e126c5d", From 870bbbfea4fb5c02f7071ca779df639c238fe525 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 27 Jan 2022 12:08:26 -0800 Subject: [PATCH 41/96] Update typescript-eslint/experimental-utils Fixes #141653 --- build/lib/eslint/vscode-dts-event-naming.js | 2 +- build/lib/eslint/vscode-dts-event-naming.ts | 2 +- build/package.json | 2 +- build/yarn.lock | 132 +++++++++++++------- 4 files changed, 87 insertions(+), 51 deletions(-) diff --git a/build/lib/eslint/vscode-dts-event-naming.js b/build/lib/eslint/vscode-dts-event-naming.js index 388ccf2f804..a1a1c1097f1 100644 --- a/build/lib/eslint/vscode-dts-event-naming.js +++ b/build/lib/eslint/vscode-dts-event-naming.js @@ -77,7 +77,7 @@ module.exports = new (_a = class ApiEventNaming { if (def.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { return def; } - else if ((def.type === experimental_utils_1.AST_NODE_TYPES.TSPropertySignature || def.type === experimental_utils_1.AST_NODE_TYPES.ClassProperty) && def.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { + else if ((def.type === experimental_utils_1.AST_NODE_TYPES.TSPropertySignature || def.type === experimental_utils_1.AST_NODE_TYPES.Property) && def.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { return def.key; } return this.getIdent(def.parent); diff --git a/build/lib/eslint/vscode-dts-event-naming.ts b/build/lib/eslint/vscode-dts-event-naming.ts index 5ed8818fe44..3f91c65049f 100644 --- a/build/lib/eslint/vscode-dts-event-naming.ts +++ b/build/lib/eslint/vscode-dts-event-naming.ts @@ -88,7 +88,7 @@ export = new class ApiEventNaming implements eslint.Rule.RuleModule { if (def.type === AST_NODE_TYPES.Identifier) { return def; - } else if ((def.type === AST_NODE_TYPES.TSPropertySignature || def.type === AST_NODE_TYPES.ClassProperty) && def.key.type === AST_NODE_TYPES.Identifier) { + } else if ((def.type === AST_NODE_TYPES.TSPropertySignature || def.type === AST_NODE_TYPES.Property) && def.key.type === AST_NODE_TYPES.Identifier) { return def.key; } diff --git a/build/package.json b/build/package.json index ed4f0e306fd..456b7e87ed5 100644 --- a/build/package.json +++ b/build/package.json @@ -41,7 +41,7 @@ "@types/underscore": "^1.8.9", "@types/webpack": "^4.41.25", "@types/xml2js": "0.0.33", - "@typescript-eslint/experimental-utils": "~2.13.0", + "@typescript-eslint/experimental-utils": "^5.10.0", "@typescript-eslint/parser": "^5.10.0", "@vscode/iconv-lite-umd": "0.7.0", "applicationinsights": "1.4.2", diff --git a/build/yarn.lock b/build/yarn.lock index 3ee7d5fe4cd..ddb3a8969a4 100644 --- a/build/yarn.lock +++ b/build/yarn.lock @@ -450,11 +450,16 @@ resolved "https://registry.yarnpkg.com/@types/js-beautify/-/js-beautify-1.8.0.tgz#0369d3d0e1f35a6aec07cb4da2ee2bcda111367c" integrity sha512-/siF86XrwDKLuHe8l7h6NhrAWgLdgqbxmjZv9NvGWmgYRZoTipkjKiWb0SQHy/jcR+ee0GvbG6uGd+LEBMGNvA== -"@types/json-schema@*", "@types/json-schema@^7.0.3": +"@types/json-schema@*": version "7.0.4" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== +"@types/json-schema@^7.0.9": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "@types/keyv@*": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" @@ -677,14 +682,12 @@ dependencies: "@types/node" "*" -"@typescript-eslint/experimental-utils@~2.13.0": - version "2.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.13.0.tgz#958614faa6f77599ee2b241740e0ea402482533d" - integrity sha512-+Hss3clwa6aNiC8ZjA45wEm4FutDV5HsVXPl/rDug1THq6gEtOYRGLqS3JlTk7mSnL5TbJz0LpEbzbPnKvY6sw== +"@typescript-eslint/experimental-utils@^5.10.0": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.10.1.tgz#49fa5a7800ed08ea70aef14fccb14fbae85116ab" + integrity sha512-Ryeb8nkJa/1zKl8iujNtJC8tgj6PgaY0sDUnrTqbmC70nrKKkZaHfiRDTcqICmCSCEQyLQcJAoh0AukLaIaGTw== dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.13.0" - eslint-scope "^5.0.0" + "@typescript-eslint/utils" "5.10.1" "@typescript-eslint/parser@^5.10.0": version "5.10.0" @@ -704,23 +707,23 @@ "@typescript-eslint/types" "5.10.0" "@typescript-eslint/visitor-keys" "5.10.0" +"@typescript-eslint/scope-manager@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.10.1.tgz#f0539c73804d2423506db2475352a4dec36cd809" + integrity sha512-Lyvi559Gvpn94k7+ElXNMEnXu/iundV5uFmCUNnftbFrUbAJ1WBoaGgkbOBm07jVZa682oaBU37ao/NGGX4ZDg== + dependencies: + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" + "@typescript-eslint/types@5.10.0": version "5.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.0.tgz#beb3cb345076f5b088afe996d57bcd1dfddaa75c" integrity sha512-wUljCgkqHsMZbw60IbOqT/puLfyqqD5PquGiBo1u1IS3PLxdi3RDGlyf032IJyh+eQoGhz9kzhtZa+VC4eWTlQ== -"@typescript-eslint/typescript-estree@2.13.0": - version "2.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.13.0.tgz#a2e746867da772c857c13853219fced10d2566bc" - integrity sha512-t21Mg5cc8T3ADEUGwDisHLIubgXKjuNRbkpzDMLb7/JMmgCe/gHM9FaaujokLey+gwTuLF5ndSQ7/EfQqrQx4g== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash.unescape "4.0.1" - semver "^6.3.0" - tsutils "^3.17.1" +"@typescript-eslint/types@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.10.1.tgz#dca9bd4cb8c067fc85304a31f38ec4766ba2d1ea" + integrity sha512-ZvxQ2QMy49bIIBpTqFiOenucqUyjTQ0WNLhBM6X1fh1NNlYAC6Kxsx8bRTY3jdYsYg44a0Z/uEgQkohbR0H87Q== "@typescript-eslint/typescript-estree@5.10.0": version "5.10.0" @@ -735,6 +738,31 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.1.tgz#b268e67be0553f8790ba3fe87113282977adda15" + integrity sha512-PwIGnH7jIueXv4opcwEbVGDATjGPO1dx9RkUl5LlHDSe+FXxPwFL5W/qYd5/NHr7f6lo/vvTrAzd0KlQtRusJQ== + dependencies: + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/visitor-keys" "5.10.1" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.10.1.tgz#fa682a33af47080ba2c4368ee0ad2128213a1196" + integrity sha512-RRmlITiUbLuTRtn/gcPRi4202niF+q7ylFLCKu4c+O/PcpRvZ/nAUwQ2G00bZgpWkhrNLNnvhZLbDn8Ml0qsQw== + dependencies: + "@types/json-schema" "^7.0.9" + "@typescript-eslint/scope-manager" "5.10.1" + "@typescript-eslint/types" "5.10.1" + "@typescript-eslint/typescript-estree" "5.10.1" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + "@typescript-eslint/visitor-keys@5.10.0": version "5.10.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.0.tgz#770215497ad67cd15a572b52089991d5dfe06281" @@ -743,6 +771,14 @@ "@typescript-eslint/types" "5.10.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.10.1": + version "5.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.1.tgz#29102de692f59d7d34ecc457ed59ab5fc558010b" + integrity sha512-NjQ0Xinhy9IL979tpoTRuLKxMc0zJC7QVSdeerXs2/QvOy2yRkzX5dRb10X5woNUdJgU8G3nYRDlI33sq1K4YQ== + dependencies: + "@typescript-eslint/types" "5.10.1" + eslint-visitor-keys "^3.0.0" + "@vscode/iconv-lite-umd@0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.0.tgz#d2f1e0664ee6036408f9743fee264ea0699b0e48" @@ -1490,36 +1526,48 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz#6fbb166a6798ee5991358bc2daa1ba76cc1254a1" integrity sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ== -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + events@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" @@ -2107,11 +2155,6 @@ lodash.once@^4.0.0: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash.unescape@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" - integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= - lodash@^4.17.10, lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -2604,7 +2647,7 @@ semver@^5.4.1, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.2.0, semver@^6.3.0: +semver@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -2772,13 +2815,6 @@ tslib@^2.2.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" From 5725c6b48a5e52e530d756bfa5775ad2e44d9e0f Mon Sep 17 00:00:00 2001 From: Miguel Solorio Date: Thu, 27 Jan 2022 12:09:40 -0800 Subject: [PATCH 42/96] Update Codicons: Add modes and menu bar https://github.com/microsoft/vscode-codicons/commit/ee85be16f3ace94610210785b6f21cf6d592abdd --- .../browser/ui/codicons/codicon/codicon.ttf | Bin 69360 -> 69776 bytes src/vs/base/common/codicons.ts | 3 +++ 2 files changed, 3 insertions(+) diff --git a/src/vs/base/browser/ui/codicons/codicon/codicon.ttf b/src/vs/base/browser/ui/codicons/codicon/codicon.ttf index 82b39a60a8c8f87fc8a3adc2edfbdf7fb3c8955b..1095acb90f25c4eaf28ec2bef8c7d3cfedfd0265 100644 GIT binary patch delta 4221 zcmZ|SdstOf8V2z91q2j9qDhzNp;fQpxd0~|mEBtt`MJl-lZQ}OgT zJ(f;QcC%)t#HVH)D=oXIjWvxqO*u_A)fmfhyp)-l&A0q`X6B#4=eOUzH+%2nUf){l zEH3Qw+4i{4HitV7;AQ~TwJpxJpvy@g1OACX_?m|1mGuX6L&JdBlfWr7x}0^DKYy%T zuKi4;H_8dG1zrbb-->H&Y413B_@^84ymNqWe)G~==PMg8t^%T80KDT`oE>dm`?ywq zKS-`0*6M6=9iJcZg%5C5K7il0Exn`t`u_c|0N36H!j5zvbOd&Sa;eLbyyN7MG)yb9jC;eB&&jAS3cXAgY5m&yJ8<)1guy|H_9_uJh^ zO>Z;9T=g{jXShx@n1wGn0lB=F@l0nLR%0xE(2f`J3DUU$ixJEX*oYMz zh|B1PVJn`82amInh3McsPGTu%FpslX$#Rz92~Oo~kALrr?myr?ypKOgL;e{b;V<|r zKE>apCC}gse1(7DEWXA+aUK_O3E$!ht`j7^=*?dAr62v-n|&C>e(cWy3}y&J8OCr9 zVg!e9D5Dt7VT@rc9UR45IGVR|497Bw$xLCYn;FdHIF4sFbC}D?%;yvqu!z%G%;}uT zGFEU7t60s&Y~m6&vxQ69#@o4!ckoWG}7}4C$*VotTXQcnVMB2Moese2jkl8P4H2Uc({0i8pWrZ{cmcgQGZx z*KwGOr2F}H9S-oK8-1lOA^5c2%GploQPt{Z?{dn%zzNA3#Yo9oCH)NDbqc#AU5Wvc z^-6jnx*HU(Nj56!ndqLiST+J*N;WC!uIOH(kSp1&c&}uOV!ULlV!Gr~#Wc_MKnHz1 zF9kXVeB-d>43=DE44U}`Mm2`h}yOj(Cbgxk`l4})PJxxIgZu<)M zeKpiZdna6zvTY?J*Syj}KtaGC7);2pBxgLm5T-!3NvS4u8dTqU_e z@h(ZZ(Bf*z4kh14F!mn7HInuo!F7`M9>MjJcPri}`7_0hlJ;4vntR52XPL!i3lq?xw_9$GHd{S|u4KsQ@qEsZ)g`sdg`O5@(0haqa5}R5OY?cpXAp{mT55E zN)~J|M&Y=}E85|nYQM&FE* zj5QhiGCs?U$jr>VJ9AIg=&ZV|PsfcK-*Et%$5Btk^QUV0PQ=3v< z{Dt%PFWkSVY0-{F2deU`8mk_vdcNvLb!qi^=O|~Uv(Q=TY;?X;<6l!)v%Th{+QQmp zwTJ2o>OOY`yXss!Vq728kE(B~f2sadLt;Z|!yg-k zDz~>Snf%!l0Y3!TJ{IB^7M_xkHqtLGB`igZ2njh89DJs@xR`^3&)9>@XXMA;*6Tm_ zdf&V|1mQr2BP_))CCm{nIr4v=b$eFNPq9Am%r_w+!69BD>$^^^%_wvK_gVf3LlkaB zraUV-J#|E^Z|J~`&>+UfGc||FQS|#iXLFbu&)6V_MsbIKKtTV1fbvksC`ahcO>uZk zOngktPDgfOw&UhzeRN86bV^Q2R8-3PfU$CQ|A3Ito~uJ0CHCt0n9R7Is~y=7Maji_ zM_2EYZNu5wwd(swZ(px%UY%asyLMc!?;YK**|~D*^7gT{uGV(fGFM$t&vA>Zb$N|* a*~`~^@mXI#-*)G+23PybPxfW8*S`Tj`gq*{ delta 3790 zcmXBWdstOf8V2z91w>52yyAt6f*P60;f}~f1rZPtxqE|ixQn1xgh=K|vm|p&+cQm1 zjgFO>ne$ZQQ|35kW@g4TUFV*jyE%!8Ou!o4Oh2^ad3=my&c_lAmS5YA4i3e4_zGWhDfYs_V{Bk9I$6mq z7O{}iIF}Wi#{xXTnJk4L0?-G6=!+oqli$%F0}z6t80Jjw_o4Sq{2g!M9h}1Z_y8Z` zpZFC2!e{t5PU8&zi!bp%7@WnoIFBE20atJpzY!$;8NfaaWM2kx0D~FAfxMoBIG95? zjKevCBRQI33}*x*Ifi37fj2OQH*z9xVk}*ZW4xD1OlB&lFpcTV;B?MlHghHhR<>~&mvaT%*};|U0vGFSkGz% zBO5DSElS2Md`lIwBwH2lmTXg;B)Lp6QF6Irg0nL?ntslS;OLPb%V!-5$&xD- z=Q{x*(Om1qgha;;mCx2FnFsKBmCOkE?o#+#Qf9WrrOxV*Sg(D|dzH)<_%n=DLdgddr%7&6oGZCiu|o1e#d(sBtUva^0>?ElG|2xKEe!BGBaU@E19D(Qanp$E6fNb^A={Lk{Jvm#kOQF!;Drkt6{>F%x{=* zB{Ll+0`S^{OnR6|CDR{fjFN=_W~`DW0VYbx;s6t^WSM}GW!jPj17^IEr2}Syl0^jO z1|`c0OpKC+#S3$zTnJfXU?wVAZD4LvvhKjh2(n}ag1K4YH_6G0a?8Xj%7t+$`b)+s z21v#$_K{4myi%J$IZ0IPE19GiB$=!@Kr%%!STa>HL~@GaK*==4>m_AsSR5pot~gjS zLve_tH&YIRw(ePqw(irEeM6b)ini7>6m5O86>WWU6m5NFm|2XFlo4++QgW8!7|A^4 zrLAwiqODhfqOI3#MO&{zMO&^pind%bMJ(EK6)W0O$ndvlOCfJki?$S{inbJGw*F;u z!*+SOqV4huMcd7ling1p6m2)pSF~NbK+$&XLPgtaixh3IEmpL>R;`#L^*1$&wtL)) zwtGB^ws&e3ZI9F`+Fqzvv`^lkXrH!GQ6A1TDcT>?tZ0AC65*8tZQ~Y2+jyy>ZQQD8 z8@DOiw#yXl{pE`G{t88V{}x4i|5inN|2D;TJOAZiu|x89#g&rwTCh{nUJKqKX|DxW zORiG9Q?g6Z_NZ+qc$cJYC%9hHwiCQZa?Le$;JtEU|449yr2QkoZppRE?hDO2C9igv zyOq4;VeA(RdELXMzc^b)hk7T=)e}lK2rxSpE=fMAWYYk%OW{|^r<80YV0J6mG4-^P%>~RJ zCEE;`XOwI>VD>86dcgbza3+Ke8u^KwKdW#~@;Sx+PH|Xh@XvD9qj1q_4~zBM$#Fo@ zR_rB3I}8pg+M)7SB^w!-Lkf>d{!KAT^01O^4$R9+Hasv#6c$RpqIjR=QJ~Qtc)wh{ zs<=_|m|~6OYl?2k#qSI`@U#GqXm`YM=FX-o(6;ypFs_@($*GmYEopzl=+qAm7{!O`JVDGD~c;REA~~!RMuDSuJlz+sA{b`Q1$8j3G)vx z7`|xu;@-uVtHY{yRiCWBR1;F;uG!}KKlJ6(fiKPs;cUPE1M+tmYXATM diff --git a/src/vs/base/common/codicons.ts b/src/vs/base/common/codicons.ts index 070854f154f..f14419e48c9 100644 --- a/src/vs/base/common/codicons.ts +++ b/src/vs/base/common/codicons.ts @@ -539,6 +539,9 @@ export class Codicon implements CSSIcon { public static readonly layoutSidebarLeft = new Codicon('layout-sidebar-left', { fontCharacter: '\\ebf3' }); public static readonly layoutSidebarRight = new Codicon('layout-sidebar-right', { fontCharacter: '\\ebf4' }); public static readonly layoutStatusbar = new Codicon('layout-statusbar', { fontCharacter: '\\ebf5' }); + public static readonly layoutMenubar = new Codicon('layout-menubar', { fontCharacter: '\\ebf6' }); + public static readonly layoutCentered = new Codicon('layout-centered', { fontCharacter: '\\ebf7' }); + public static readonly target = new Codicon('target', { fontCharacter: '\\ebf8' }); // derived icons, that could become separate icons From 7291704ac8690dda15219d9d29334f2363f9e86c Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 27 Jan 2022 14:17:59 -0600 Subject: [PATCH 43/96] tweak setting language --- .../electron-sandbox/externalTerminal.contribution.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts b/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts index 8f3a6658380..6da2c2b1ad8 100644 --- a/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts +++ b/src/vs/workbench/contrib/externalTerminal/electron-sandbox/externalTerminal.contribution.ts @@ -106,7 +106,7 @@ export class ExternalTerminalContribution implements IWorkbenchContribution { nls.localize('terminal.explorerKind.integrated', "Use VS Code's integrated terminal."), nls.localize('terminal.explorerKind.external', "Use the configured external terminal.") ], - description: nls.localize('explorer.openInTerminalKind', "When opening a file from the explorer in a terminal, determines where the terminal will be launched."), + description: nls.localize('explorer.openInTerminalKind', "When opening a file from the explorer in a terminal, determines what kind of terminal will be launched"), default: 'integrated' }, 'terminal.external.windowsExec': { From f811558542a49f56f0323683293d4381aaa0e00e Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Thu, 27 Jan 2022 12:55:58 -0800 Subject: [PATCH 44/96] refs #137633 --- src/vs/workbench/browser/actions/layoutActions.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/browser/actions/layoutActions.ts b/src/vs/workbench/browser/actions/layoutActions.ts index 90a2f2212a3..71afb01acf9 100644 --- a/src/vs/workbench/browser/actions/layoutActions.ts +++ b/src/vs/workbench/browser/actions/layoutActions.ts @@ -1018,7 +1018,7 @@ registerAction2(DecreaseViewSizeAction); registerAction2(DecreaseViewWidthAction); registerAction2(DecreaseViewHeightAction); -const menubarIcon = registerIcon('menu-bar', Codicon.menu, localize('menuBarIcon', "Represents the menu bar")); +const menubarIcon = registerIcon('menuBar', Codicon.layoutMenubar, localize('menuBarIcon', "Represents the menu bar")); const activityBarLeftIcon = registerIcon('activity-bar-left', Codicon.layoutActivitybarLeft, localize('activityBarLeft', "Represents the activity bar in the left position")); const activityBarRightIcon = registerIcon('activity-bar-right', Codicon.layoutActivitybarRight, localize('activityBarRight', "Represents the activity bar in the right position")); const panelLeftIcon = registerIcon('panel-left', Codicon.layoutSidebarLeft, localize('panelLeft', "Represents the side bar or side panel in the left position")); @@ -1031,6 +1031,10 @@ const panelAlignmentRightIcon = registerIcon('panel-align-right', Codicon.layout const panelAlignmentCenterIcon = registerIcon('panel-align-center', Codicon.layoutPanelCenter, localize('panelBottomCenter', "Represents the bottom panel alignment set to the center")); const panelAlignmentJustifyIcon = registerIcon('panel-align-justify', Codicon.layoutPanelJustify, localize('panelBottomJustify', "Represents the bottom panel alignment set to justified")); +const fullscreenIcon = registerIcon('fullscreen', Codicon.screenFull, localize('fullScreenIcon', "Represents full screen")); +const centerLayoutIcon = registerIcon('centerLayoutIcon', Codicon.layoutCentered, localize('centerLayoutIcon', "Represents centered layout mode")); +const zenModeIcon = registerIcon('zenMode', Codicon.target, localize('zenModeIcon', "Represents zen mode")); + type ContextualLayoutVisualIcon = { iconA: ThemeIcon, iconB: ThemeIcon, whenA: ContextKeyExpression }; type LayoutVisualIcon = ThemeIcon | ContextualLayoutVisualIcon; @@ -1103,9 +1107,9 @@ const AlignPanelActions: CustomizeLayoutItem[] = [ ]; const MiscLayoutOptions: CustomizeLayoutItem[] = [ - CreateOptionLayoutItem('workbench.action.toggleZenMode', InEditorZenModeContext, localize('zenMode', "Zen Mode")), - CreateOptionLayoutItem('workbench.action.toggleCenteredLayout', IsCenteredLayoutContext, localize('centeredLayout', "Centered Layout")), - CreateOptionLayoutItem('workbench.action.toggleFullScreen', IsFullscreenContext, localize('fullscreen', "Full Screen")), + CreateOptionLayoutItem('workbench.action.toggleFullScreen', IsFullscreenContext, localize('fullscreen', "Full Screen"), fullscreenIcon), + CreateOptionLayoutItem('workbench.action.toggleZenMode', InEditorZenModeContext, localize('zenMode', "Zen Mode"), zenModeIcon), + CreateOptionLayoutItem('workbench.action.toggleCenteredLayout', IsCenteredLayoutContext, localize('centeredLayout', "Centered Layout"), centerLayoutIcon), ]; const LayoutContextKeySet = new Set(); From f21479e12107a8042277f09875cd7a81ab3c1488 Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Thu, 27 Jan 2022 14:34:21 -0800 Subject: [PATCH 45/96] testing: fix inline decoration overlap Fixes https://github.com/microsoft/vscode/issues/138915 --- .../workbench/contrib/testing/browser/testingDecorations.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/testing/browser/testingDecorations.ts b/src/vs/workbench/contrib/testing/browser/testingDecorations.ts index 5ad2e2388c4..8c7f2d9ec06 100644 --- a/src/vs/workbench/contrib/testing/browser/testingDecorations.ts +++ b/src/vs/workbench/contrib/testing/browser/testingDecorations.ts @@ -13,16 +13,17 @@ import { IMarkdownString, MarkdownString } from 'vs/base/common/htmlContent'; import { Disposable, DisposableStore, IReference, MutableDisposable } from 'vs/base/common/lifecycle'; import { ResourceMap } from 'vs/base/common/map'; import { removeAnsiEscapeCodes } from 'vs/base/common/strings'; +import { Constants } from 'vs/base/common/uint'; import { URI } from 'vs/base/common/uri'; import { generateUuid } from 'vs/base/common/uuid'; import { ContentWidgetPositionPreference, ICodeEditor, IContentWidgetPosition, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; +import { editorCodeLensForeground, overviewRulerError, overviewRulerInfo } from 'vs/editor/common/core/editorColorRegistry'; import { IRange, Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { IModelDeltaDecoration, ITextModel, OverviewRulerLane, TrackedRangeStickiness } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { editorCodeLensForeground, overviewRulerError, overviewRulerInfo } from 'vs/editor/common/core/editorColorRegistry'; import { localize } from 'vs/nls'; import { createAndFillInContextMenuActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { IMenuService, MenuId } from 'vs/platform/actions/common/actions'; @@ -536,6 +537,7 @@ abstract class TitleLensContentWidget { this.viewZoneId = accessor.addZone({ afterLineNumber: 0, + afterColumn: Constants.MAX_SAFE_SMALL_INTEGER, domNode: document.createElement('div'), heightInPx: 20, }); From 1a57cb85407249f380f0ebfb34c748a960e5430a Mon Sep 17 00:00:00 2001 From: gregvanl Date: Thu, 27 Jan 2022 14:38:58 -0800 Subject: [PATCH 46/96] Use fully qualified names in @link --- src/vscode-dts/vscode.d.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/vscode-dts/vscode.d.ts b/src/vscode-dts/vscode.d.ts index 83a37cfc4e6..6ad7951960a 100644 --- a/src/vscode-dts/vscode.d.ts +++ b/src/vscode-dts/vscode.d.ts @@ -1645,7 +1645,7 @@ declare module 'vscode' { export enum QuickPickItemKind { /** * When a {@link QuickPickItem} has a kind of {@link Separator}, the item is just a visual separator and does not represent a real item. - * The only property that applies is {@link label}. All other properties on {@link QuickPickItem} will be ignored and have no effect. + * The only property that applies is {@link QuickPickItem.label label }. All other properties on {@link QuickPickItem} will be ignored and have no effect. */ Separator = -1, /** @@ -5984,7 +5984,7 @@ declare module 'vscode' { /** * Assumes a {@link TerminalLocation} of editor and allows specifying a {@link ViewColumn} and - * {@link preserveFocus} property + * {@link TerminalEditorLocationOptions.preserveFocus preserveFocus } property */ export interface TerminalEditorLocationOptions { /** @@ -7688,7 +7688,7 @@ declare module 'vscode' { /** * Controls whether forms are enabled in the webview content or not. * - * Defaults to true if {@link enableScripts scripts are enabled}. Otherwise defaults to false. + * Defaults to true if {@link WebViewOptions.enableScripts scripts are enabled}. Otherwise defaults to false. * Explicitly setting this property to either true or false overrides the default. */ readonly enableForms?: boolean; @@ -8868,7 +8868,7 @@ declare module 'vscode' { /** * A short-hand for `openTextDocument(uri).then(document => showTextDocument(document, options))`. * - * @see {@link openTextDocument} + * @see {@link workspace.openTextDocument} * * @param uri A resource identifier. * @param options {@link TextDocumentShowOptions Editor options} to configure the behavior of showing the {@link TextEditor editor}. @@ -9304,7 +9304,7 @@ declare module 'vscode' { * Registers a webview panel serializer. * * Extensions that support reviving should have an `"onWebviewPanel:viewType"` activation event and - * make sure that {@link registerWebviewPanelSerializer} is called during activation. + * make sure that `registerWebviewPanelSerializer` is called during activation. * * Only a single serializer may be registered at a time for a given `viewType`. * @@ -11177,7 +11177,7 @@ declare module 'vscode' { /** * A short-hand for `openTextDocument(Uri.file(fileName))`. * - * @see {@link openTextDocument} + * @see {@link workspace.openTextDocument} * @param fileName A name of a file on disk. * @return A promise that resolves to a {@link TextDocument document}. */ @@ -11281,7 +11281,7 @@ declare module 'vscode' { * Open an untitled notebook. The editor will prompt the user for a file * path when the document is to be saved. * - * @see {@link openNotebookDocument} + * @see {@link workspace.openNotebookDocument} * @param notebookType The notebook type that should be used. * @param content The initial contents of the notebook. * @returns A promise that resolves to a {@link NotebookDocument notebook}. @@ -14140,7 +14140,7 @@ declare module 'vscode' { * * Defaults to false. * - * Note: you cannot use this option with {@link silent}. + * Note: you cannot use this option with {@link AuthenticationGetSessionOptions.silent silent}. */ createIfNone?: boolean; @@ -14162,7 +14162,7 @@ declare module 'vscode' { * * Defaults to false. * - * Note: you cannot use this option with any other options that prompt the user like {@link createIfNone}. + * Note: you cannot use this option with any other options that prompt the user like {@link AuthenticationGetSessionOptions.createIfNone createIfNone}. */ silent?: boolean; } @@ -14510,7 +14510,7 @@ declare module 'vscode' { * the function returns or the returned thenable resolves. * * @param item An unresolved test item for which children are being - * requested, or `undefined` to resolve the controller's initial {@link items}. + * requested, or `undefined` to resolve the controller's initial {@link TestController.items items}. */ resolveHandler?: (item: TestItem | undefined) => Thenable | void; @@ -14560,7 +14560,7 @@ declare module 'vscode' { * A TestRunRequest is a precursor to a {@link TestRun}, which in turn is * created by passing a request to {@link tests.runTests}. The TestRunRequest * contains information about which tests should be run, which should not be - * run, and how they are run (via the {@link profile}). + * run, and how they are run (via the {@link TestRunRequest.profile profile}). * * In general, TestRunRequests are created by the editor and pass to * {@link TestRunProfile.runHandler}, however you can also create test @@ -14762,7 +14762,7 @@ declare module 'vscode' { /** * The parent of this item. It's set automatically, and is undefined * top-level items in the {@link TestController.items} and for items that - * aren't yet included in another item's {@link children}. + * aren't yet included in another item's {@link TestItem.children children}. */ readonly parent: TestItem | undefined; @@ -14802,7 +14802,7 @@ declare module 'vscode' { description?: string; /** - * Location of the test item in its {@link uri}. + * Location of the test item in its {@link TestItem.uri uri}. * * This is only meaningful if the `uri` points to a file. */ @@ -14828,12 +14828,12 @@ declare module 'vscode' { message: string | MarkdownString; /** - * Expected test output. If given with {@link actualOutput}, a diff view will be shown. + * Expected test output. If given with {@link TestMessage.actualOutput actualOutput }, a diff view will be shown. */ expectedOutput?: string; /** - * Actual test output. If given with {@link expectedOutput}, a diff view will be shown. + * Actual test output. If given with {@link TestMessage.expectedOutput expectedOutput }, a diff view will be shown. */ actualOutput?: string; From c3b73d3733e579b984d765b4264e34031cbf4397 Mon Sep 17 00:00:00 2001 From: Benjamin Tidor Date: Thu, 27 Jan 2022 15:47:51 -0800 Subject: [PATCH 47/96] Fix `undefined`s in text search results (#141522) --- .../contrib/searchEditor/browser/searchEditorSerialization.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.ts index 18c326d6af1..3d2e7daaf3f 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.ts @@ -39,7 +39,7 @@ const matchToSearchResultFormat = (match: Match, longestLineNumber: number): { l const prefixOffset = prefix.length; // split instead of replace to avoid creating a new string object - const line = prefix + sourceLine.split(/\r?\n?$/, 1)[0]; + const line = prefix + (sourceLine.split(/\r?\n?$/, 1)[0] || ''); const rangeOnThisLine = ({ start, end }: { start?: number; end?: number; }) => new Range(1, (start ?? 1) + prefixOffset, 1, (end ?? sourceLine.length + 1) + prefixOffset); From 1b9ddd34bd0502b67fa0caf7dc872e6ff90cb494 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 27 Jan 2022 18:06:51 -0600 Subject: [PATCH 48/96] Revert "create process in an empty workspace when cwd is userHome (#141660)" This reverts commit a58b5386624409bc2503fce780c96286552416c2. --- .../terminal/browser/terminalInstance.ts | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 58dc799869e..d8b6b5fd730 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -73,8 +73,6 @@ import { TerminalCapability } from 'vs/workbench/contrib/terminal/common/capabil import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; -import { IHistoryService } from 'vs/workbench/services/history/common/history'; -import { Schemas } from 'vs/base/common/network'; const enum Constants { /** @@ -352,8 +350,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { @IWorkbenchEnvironmentService workbenchEnvironmentService: IWorkbenchEnvironmentService, @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService, @IEditorService private readonly _editorService: IEditorService, - @IWorkspaceTrustRequestService private readonly _workspaceTrustRequestService: IWorkspaceTrustRequestService, - @IHistoryService private readonly _historyService: IHistoryService + @IWorkspaceTrustRequestService private readonly _workspaceTrustRequestService: IWorkspaceTrustRequestService ) { super(); @@ -1315,16 +1312,9 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { if (this._isDisposed) { return; } - const activeWorkspaceRootUri = this._historyService.getLastActiveWorkspaceRoot(Schemas.file); - if (activeWorkspaceRootUri) { - const trusted = await this._trust(); - if (!trusted) { - this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); - } - } else if (this._userHome && this._cwd !== this._userHome) { - // ensure that the process is launched in userHome for an empty workspace - this._shellLaunchConfig.cwd = this._userHome; - } else if (!this._userHome) { + + const trusted = await this._trust(); + if (!trusted) { this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); } From c68d433ac8f9b04bb8566e9391a7ede01923a0af Mon Sep 17 00:00:00 2001 From: Tyler Leonhardt Date: Thu, 27 Jan 2022 16:55:19 -0800 Subject: [PATCH 49/96] copy & continue. Fixes microsoft/vscode-internalbacklog#2613 --- extensions/github-authentication/src/githubServer.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts index 91503c3a12e..3002e937c81 100644 --- a/extensions/github-authentication/src/githubServer.ts +++ b/extensions/github-authentication/src/githubServer.ts @@ -220,19 +220,20 @@ export class GitHubServer implements IGitHubServer { const json = await result.json() as IGitHubDeviceCodeResponse; - await vscode.env.clipboard.writeText(json.user_code); const modalResult = await vscode.window.showInformationMessage( localize('code.title', "Your Code: {0}", json.user_code), { modal: true, - detail: localize('code.detail', "The above one-time code has been copied to your clipboard. To finish authenticating, paste it on GitHub.") - }, 'Continue to GitHub'); + detail: localize('code.detail', "To finish authenticating, navigate to GitHub and paste in the above one-time code.") + }, 'Copy & Continue to GitHub'); - if (modalResult !== 'Continue to GitHub') { + if (modalResult !== 'Copy & Continue to GitHub') { throw new Error('Cancelled'); } + await vscode.env.clipboard.writeText(json.user_code); + const uriToOpen = await vscode.env.asExternalUri(vscode.Uri.parse(json.verification_uri)); await vscode.env.openExternal(uriToOpen); From 579c116df76e0155d1a1bb02fc7af76df3161f9b Mon Sep 17 00:00:00 2001 From: SteVen Batten Date: Thu, 27 Jan 2022 17:23:09 -0800 Subject: [PATCH 50/96] fixes #141471 --- src/vs/workbench/browser/parts/editor/editorPart.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index 4b8e0a2acef..5e5b04df889 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -833,7 +833,7 @@ export class EditorPart extends Part implements IEditorGroupsService, IEditorGro get minimumHeight(): number { return Math.min(this.centeredLayoutWidget.minimumHeight, this.layoutService.getMaximumEditorDimensions().height); } get maximumHeight(): number { return this.centeredLayoutWidget.maximumHeight; } - readonly snap = true; + get snap(): boolean { return this.layoutService.getPanelAlignment() === 'center'; } override get onDidChange(): Event { return Event.any(this.centeredLayoutWidget.onDidChange, this.onDidSetGridWidget.event); } readonly priority: LayoutPriority = LayoutPriority.High; From 2076c0a5dbf9683705f02d13e475435e937f524f Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Thu, 27 Jan 2022 17:19:38 -0800 Subject: [PATCH 51/96] Fix #141477 --- .../notebook/browser/contrib/execute/executionEditorProgress.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.ts b/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.ts index 4a56e7d6acf..98475634ce0 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/execute/executionEditorProgress.ts @@ -42,6 +42,7 @@ export class ExecutionEditorProgressController extends Disposable implements INo .filter(exe => exe.state === NotebookCellExecutionState.Executing); const executionIsVisible = (exe: INotebookCellExecution) => { for (const range of this._notebookEditor.visibleRanges) { + range.end++; for (const cell of this._notebookEditor.getCellsInRange(range)) { if (cell.handle === exe.cellHandle) { return true; From ae08924bfa49cfdbc37aa11d3c385c011631c9a8 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 27 Jan 2022 17:35:33 -0800 Subject: [PATCH 52/96] readonly --- .../src/features/documentLinkProvider.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/markdown-language-features/src/features/documentLinkProvider.ts b/extensions/markdown-language-features/src/features/documentLinkProvider.ts index b47875d09fb..d5627819c08 100644 --- a/extensions/markdown-language-features/src/features/documentLinkProvider.ts +++ b/extensions/markdown-language-features/src/features/documentLinkProvider.ts @@ -112,11 +112,11 @@ type CodeInDocument = { /** * code blocks and fences each represented by [line_start,line_end). */ - multiline: [number, number][]; + readonly multiline: ReadonlyArray<[number, number]>; /** * inline code spans each represented by {@link vscode.Range}. */ - inline: vscode.Range[]; + readonly inline: readonly vscode.Range[]; }; async function findCode(document: vscode.TextDocument, engine: MarkdownEngine): Promise { From 4bdfc9ad0114e72cfa72175a35ff986946fd742a Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 27 Jan 2022 17:36:20 -0800 Subject: [PATCH 53/96] type -> interface --- .../src/features/documentLinkProvider.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/markdown-language-features/src/features/documentLinkProvider.ts b/extensions/markdown-language-features/src/features/documentLinkProvider.ts index d5627819c08..ba224371917 100644 --- a/extensions/markdown-language-features/src/features/documentLinkProvider.ts +++ b/extensions/markdown-language-features/src/features/documentLinkProvider.ts @@ -108,16 +108,17 @@ const referenceLinkPattern = /(\[((?:\\\]|[^\]])+)\]\[\s*?)([^\s\]]*?)\]/g; const definitionPattern = /^([\t ]*\[(?!\^)((?:\\\]|[^\]])+)\]:\s*)([^<]\S*|<[^>]+>)/gm; const inlineCodePattern = /(?:(?; + /** * inline code spans each represented by {@link vscode.Range}. */ readonly inline: readonly vscode.Range[]; -}; +} async function findCode(document: vscode.TextDocument, engine: MarkdownEngine): Promise { const tokens = await engine.parse(document); From fdd5c8471a0c141418d303159c5e511a22252034 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 27 Jan 2022 17:54:14 -0800 Subject: [PATCH 54/96] Avoid lookbehind in regexp Fixes #141689 --- .../src/features/documentLinkProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/markdown-language-features/src/features/documentLinkProvider.ts b/extensions/markdown-language-features/src/features/documentLinkProvider.ts index ba224371917..21aa0a3e4b0 100644 --- a/extensions/markdown-language-features/src/features/documentLinkProvider.ts +++ b/extensions/markdown-language-features/src/features/documentLinkProvider.ts @@ -106,7 +106,7 @@ export function stripAngleBrackets(link: string) { const linkPattern = /(\[((!\[[^\]]*?\]\(\s*)([^\s\(\)]+?)\s*\)\]|(?:\\\]|[^\]])*\])\(\s*)(([^\s\(\)]|\([^\s\(\)]*?\))+)\s*(".*?")?\)/g; const referenceLinkPattern = /(\[((?:\\\]|[^\]])+)\]\[\s*?)([^\s\]]*?)\]/g; const definitionPattern = /^([\t ]*\[(?!\^)((?:\\\]|[^\]])+)\]:\s*)([^<]\S*|<[^>]+>)/gm; -const inlineCodePattern = /(?:(? Date: Thu, 27 Jan 2022 18:13:15 -0800 Subject: [PATCH 55/96] Clean up unused method, re #139541 --- .../contrib/notebook/common/model/notebookTextModel.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts index 427dfc21045..859c23ae7b4 100644 --- a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts +++ b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts @@ -388,10 +388,6 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel return this.cells.findIndex(c => !!c.outputs.find(o => o.outputId === outputId)); } - checkCellExistence(handle: number) { - return this._cellListeners.has(handle); - } - reset(cells: ICellDto2[], metadata: NotebookDocumentMetadata, transientOptions: TransientOptions): void { this.transientOptions = transientOptions; this._cellhandlePool = 0; From 9990fa988fcf20f28c896e66647f936ea546453e Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Thu, 27 Jan 2022 18:18:14 -0800 Subject: [PATCH 56/96] =?UTF-8?q?=F0=9F=92=84=20re=20#141582?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contrib/notebook/browser/view/cellParts/foldedCellHint.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.ts b/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.ts index 41bb615fe20..8f98e12a94b 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.ts @@ -46,9 +46,9 @@ export class FoldedCellHint extends CellPart { private getHiddenCellsLabel(num: number): string { if (num === 1) { - return localize('hiddenCellsLabel', "1 cell hidden..."); + return localize('hiddenCellsLabel', "1 cell hidden") + '…'; } else { - return localize('hiddenCellsLabelPlural', "{0} cells hidden...", num); + return localize('hiddenCellsLabelPlural', "{0} cells hidden", num) + '…'; } } From 4af3e141defad7b6b96aa1e831f4b50f78abbe6d Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 27 Jan 2022 22:03:01 -0600 Subject: [PATCH 57/96] fix #141686 --- src/vs/platform/terminal/common/terminal.ts | 5 +++++ .../workbench/contrib/terminal/browser/terminalInstance.ts | 7 ++++--- .../workbench/contrib/terminal/browser/terminalService.ts | 6 ++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/terminal/common/terminal.ts b/src/vs/platform/terminal/common/terminal.ts index 8aadbcd0376..67acbd29a3b 100644 --- a/src/vs/platform/terminal/common/terminal.ts +++ b/src/vs/platform/terminal/common/terminal.ts @@ -503,6 +503,11 @@ export interface IShellLaunchConfig { * Opt-out of the default terminal persistence on restart and reload */ disablePersistence?: boolean; + + /** + * This is a split terminal that inherited its parent's cwd + */ + splitInheritedCwd?: boolean; } export interface ICreateContributedTerminalProfileOptions { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index d8b6b5fd730..114970c25e6 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1232,7 +1232,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { // Set the initial name based on the _resolved_ shell launch config, this will also // ensure the resolved icon gets shown if (!this._labelComputer) { - this._labelComputer = this._register(new TerminalLabelComputer(this._configHelper, this, this._workspaceContextService)); + this._labelComputer = this._register(new TerminalLabelComputer(this._configHelper, this, this._workspaceContextService, this.shellLaunchConfig.splitInheritedCwd)); this._labelComputer.onDidChangeLabel(e => { this._title = e.title; this._description = e.description; @@ -2257,7 +2257,8 @@ export class TerminalLabelComputer extends Disposable { constructor( private readonly _configHelper: TerminalConfigHelper, private readonly _instance: Pick, - @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService + @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService, + private readonly _splitInheritedCwd?: boolean ) { super(); } @@ -2298,7 +2299,7 @@ export class TerminalLabelComputer extends Disposable { const detection = this._instance.capabilities.has(TerminalCapability.CwdDetection) || this._instance.capabilities.has(TerminalCapability.NaiveCwdDetection); const zeroRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 0 && this.pathsEqual(templateProperties.cwd, this._instance.userHome || this._configHelper.config.cwd); const singleRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 1 && this.pathsEqual(templateProperties.cwd, this._configHelper.config.cwd || this._workspaceContextService.getWorkspace().folders[0]?.uri.fsPath); - if (this._instance.cwd !== this._instance.initialCwd) { + if ((this._instance.cwd !== this._instance.initialCwd) || this._splitInheritedCwd) { templateProperties.cwdFolder = (!templateProperties.cwd || !detection || zeroRootWorkspace || singleRootWorkspace) ? '' : path.basename(templateProperties.cwd); } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts index 9a2186bec36..9496ea2e2d6 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -929,7 +929,7 @@ export class TerminalService implements ITerminalService { const splitActiveTerminal = typeof options?.location === 'object' && 'splitActiveTerminal' in options.location ? options.location.splitActiveTerminal : typeof options?.location === 'object' ? 'parentTerminal' in options.location : false; - this._resolveCwd(shellLaunchConfig, splitActiveTerminal, options); + shellLaunchConfig.splitInheritedCwd = await this._resolveCwd(shellLaunchConfig, splitActiveTerminal, options); // Launch the contributed profile if (contributedProfile) { @@ -975,7 +975,7 @@ export class TerminalService implements ITerminalService { return this._createTerminal(shellLaunchConfig, location, options); } - private async _resolveCwd(shellLaunchConfig: IShellLaunchConfig, splitActiveTerminal: boolean, options?: ICreateTerminalOptions): Promise { + private async _resolveCwd(shellLaunchConfig: IShellLaunchConfig, splitActiveTerminal: boolean, options?: ICreateTerminalOptions): Promise { let cwd = shellLaunchConfig.cwd; if (!cwd) { if (options?.cwd) { @@ -989,8 +989,10 @@ export class TerminalService implements ITerminalService { throw new Error('Cannot split without an active instance'); } shellLaunchConfig.cwd = await getCwdForSplit(this.configHelper, parent, this._workspaceContextService.getWorkspace().folders, this._commandService); + return !!shellLaunchConfig.cwd; } } + return undefined; } private _splitTerminal(shellLaunchConfig: IShellLaunchConfig, location: TerminalLocation, parent: ITerminalInstance): ITerminalInstance { From 8fa7a735d84cc811bfd1c59e7195ee8d67d1f7e8 Mon Sep 17 00:00:00 2001 From: Miguel Solorio Date: Thu, 27 Jan 2022 21:00:37 -0800 Subject: [PATCH 58/96] Disable windows adjustment for active indicator (Refs #140647) --- .../browser/parts/activitybar/media/activityaction.css | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/vs/workbench/browser/parts/activitybar/media/activityaction.css b/src/vs/workbench/browser/parts/activitybar/media/activityaction.css index c8f26273529..d0a2aefcb34 100644 --- a/src/vs/workbench/browser/parts/activitybar/media/activityaction.css +++ b/src/vs/workbench/browser/parts/activitybar/media/activityaction.css @@ -119,16 +119,6 @@ right: 0; } -/* Adjust position for Windows https://github.com/microsoft/vscode/issues/140647 */ - -.monaco-workbench.windows:not(.maximized) .activitybar.left > .content :not(.monaco-menu) > .monaco-action-bar .action-item .active-item-indicator:before{ - left: 1px; -} - -.monaco-workbench.windows:not(.maximized) .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-item .active-item-indicator:before { - right: 2px; -} - /* Hides outline on HC as focus is handled by border */ .monaco-workbench.hc-black .activitybar.left > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before, .monaco-workbench.hc-black .activitybar.right > .content :not(.monaco-menu) > .monaco-action-bar .action-item:focus:before { From cab791bab5c314cf78d1b5eefbf5049719a90348 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 27 Jan 2022 21:44:30 -0800 Subject: [PATCH 59/96] Temporary window shift --- .github/workflows/deep-classifier-runner.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deep-classifier-runner.yml b/.github/workflows/deep-classifier-runner.yml index bb9ee9cfd3b..9ca00d471a4 100644 --- a/.github/workflows/deep-classifier-runner.yml +++ b/.github/workflows/deep-classifier-runner.yml @@ -25,8 +25,8 @@ jobs: uses: ./actions/classifier-deep/apply/fetch-sources with: # slightly overlapping to protect against issues slipping through the cracks if a run is delayed - from: 10000 # 7 days - until: 5 + from: 72000 # 7 days + until: 52000 configPath: classifier blobContainerName: vscode-issue-classifier blobStorageKey: ${{secrets.AZURE_BLOB_STORAGE_CONNECTION_STRING}} From c0172e770b6b3df3bd6ea12e15d68df341b6fd6e Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 27 Jan 2022 21:49:15 -0800 Subject: [PATCH 60/96] Revert --- .github/workflows/deep-classifier-runner.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deep-classifier-runner.yml b/.github/workflows/deep-classifier-runner.yml index 9ca00d471a4..20288f2e7e2 100644 --- a/.github/workflows/deep-classifier-runner.yml +++ b/.github/workflows/deep-classifier-runner.yml @@ -25,8 +25,8 @@ jobs: uses: ./actions/classifier-deep/apply/fetch-sources with: # slightly overlapping to protect against issues slipping through the cracks if a run is delayed - from: 72000 # 7 days - until: 52000 + from: 10000 # ~7 days + until: 5 configPath: classifier blobContainerName: vscode-issue-classifier blobStorageKey: ${{secrets.AZURE_BLOB_STORAGE_CONNECTION_STRING}} From 163dd4f6c0a988f2d128beb50990b24670a7577a Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 27 Jan 2022 22:28:11 -0800 Subject: [PATCH 61/96] Dont require steps to be defined Fixes #141603 --- .../welcomeGettingStarted/browser/gettingStartedService.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts index dd2d4041f2a..b86272c4a2b 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts @@ -308,7 +308,7 @@ export class WalkthroughsService extends Disposable implements IWalkthroughsServ const isNewlyInstalled = !this.metadata.get(categoryID); if (isNewlyInstalled) { - this.metadata.set(categoryID, { firstSeen: +new Date(), stepIDs: walkthrough.steps.map(s => s.id), manaullyOpened: false }); + this.metadata.set(categoryID, { firstSeen: +new Date(), stepIDs: walkthrough.steps?.map(s => s.id) ?? [], manaullyOpened: false }); } const override = await Promise.race([ @@ -327,8 +327,7 @@ export class WalkthroughsService extends Disposable implements IWalkthroughsServ } } - - const steps = walkthrough.steps.map((step, index) => { + const steps = (walkthrough.steps ?? []).map((step, index) => { const description = parseDescription(step.description || ''); const fullyQualifiedID = extension.identifier.value + '#' + walkthrough.id + '#' + step.id; From 22e1d42edc57dde9c98200cf6ea72321f0e17016 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 27 Jan 2022 22:44:31 -0800 Subject: [PATCH 62/96] Fix #141434 --- .../contrib/files/common/explorerModel.ts | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/contrib/files/common/explorerModel.ts b/src/vs/workbench/contrib/files/common/explorerModel.ts index 24aecbad112..0fa3602b52b 100644 --- a/src/vs/workbench/contrib/files/common/explorerModel.ts +++ b/src/vs/workbench/contrib/files/common/explorerModel.ts @@ -318,12 +318,6 @@ export class ExplorerItem { const items: ExplorerItem[] = []; if (nestingConfig.enabled) { - const patterns = Object.entries(nestingConfig.patterns).map( - ([parentPattern, childrenPatterns]) => - [parentPattern.trim(), childrenPatterns.split(',').map(p => p.trim())] as [string, string[]]); - - const nester = new ExplorerFileNestingTrie(patterns); - const fileChildren: [string, ExplorerItem][] = []; const dirChildren: [string, ExplorerItem][] = []; for (const child of this.children.entries()) { @@ -334,7 +328,7 @@ export class ExplorerItem { } } - const nested = nester.nest(fileChildren.map(([name]) => name)); + const nested = this.buildFileNester().nest(fileChildren.map(([name]) => name)); for (const [fileEntryName, fileEntryItem] of fileChildren) { const nestedItems = nested.get(fileEntryName); @@ -361,6 +355,18 @@ export class ExplorerItem { return items; } + // TODO:@jkearl, share one nester across all explorer items and only build on config change + private buildFileNester(): ExplorerFileNestingTrie { + const nestingConfig = this.configService.getValue().explorer.experimental.fileNesting; + const patterns = Object.entries(nestingConfig.patterns) + .filter(entry => + typeof (entry[0]) === 'string' && typeof (entry[1]) === 'string' && entry[0] && entry[1]) + .map(([parentPattern, childrenPatterns]) => + [parentPattern.trim(), childrenPatterns.split(',').map(p => p.trim())] as [string, string[]]); + + return new ExplorerFileNestingTrie(patterns); + } + /** * Removes a child element from this folder. */ From b8178e3e2f3f620ebdd31dfbfba937ff1b12ee04 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 27 Jan 2022 22:57:57 -0800 Subject: [PATCH 63/96] Fix #141439 --- src/vs/workbench/contrib/files/browser/files.contribution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/files/browser/files.contribution.ts b/src/vs/workbench/contrib/files/browser/files.contribution.ts index a24c09eef89..4b9b1b1b4dd 100644 --- a/src/vs/workbench/contrib/files/browser/files.contribution.ts +++ b/src/vs/workbench/contrib/files/browser/files.contribution.ts @@ -470,10 +470,10 @@ configurationRegistry.registerConfiguration({ }, 'explorer.experimental.fileNesting.patterns': { 'type': 'object', - 'markdownDescription': nls.localize('fileNestingPatterns', "Experimental. Controls nesting of files in the explorer. `#explorer.experimental.fileNesting.enabled#` must be set for this to take effect. Each key describes a parent file pattern and each value should be a comma separated list of children file patterns that will be nested under the parent.\n\nA single `*` in a parent pattern may be used to capture any substring, which can then be matched against using `$(capture)` in a child pattern. Child patterns may also contain one `*` to match any substring."), + 'markdownDescription': nls.localize('fileNestingPatterns', "Experimental. Controls nesting of files in the explorer. `#explorer.experimental.fileNesting.enabled#` must be set for this to take effect. Each key describes a parent file pattern and each value should be a comma separated list of children file patterns that will be nested under the parent.\n\nA single `*` in a parent pattern may be used to capture any substring, which can then be matched against using `$\u200b(capture)` in a child pattern. Child patterns may also contain one `*` to match any substring."), patternProperties: { '^[^*]*\\*?[^*]*$': { - description: nls.localize('fileNesting.description', "Key patterns may contain a single `*` capture group which matches any string. Each value pattern may contain one `$(capture)` token to be substituted with the parent capture group and one `*` token to match any string"), + markdownDescription: nls.localize('fileNesting.description', "Key patterns may contain a single `*` capture group which matches any string. Each value pattern may contain one `$\u200b(capture)` token to be substituted with the parent capture group and one `*` token to match any string"), type: 'string', pattern: '^([^,*]*\\*?[^,*]*)(, ?[^,*]*\\*?[^,*]*)*$', } From d4e08c85a9e7babe1228bebf3c2858d580198c53 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 28 Jan 2022 13:50:09 +0100 Subject: [PATCH 64/96] #141054 enable the tests and keep debugging --- test/smoke/src/areas/preferences/preferences.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/smoke/src/areas/preferences/preferences.test.ts b/test/smoke/src/areas/preferences/preferences.test.ts index b328967dac2..fbde2686089 100644 --- a/test/smoke/src/areas/preferences/preferences.test.ts +++ b/test/smoke/src/areas/preferences/preferences.test.ts @@ -8,7 +8,7 @@ import { Application, ActivityBarPosition, Logger } from '../../../../automation import { installAllHandlers } from '../../utils'; export function setup(logger: Logger) { - describe.skip('Preferences', () => { // TODO@sandy081 TODO@roblourens https://github.com/microsoft/vscode/issues/141054 + describe('Preferences', () => { // Shared before/after handling installAllHandlers(logger); From c80889f152c6b267e86254654afae2045e563d25 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 28 Jan 2022 14:58:57 +0100 Subject: [PATCH 65/96] Check that the /build/ folder compiles and all `.js` is checked in (#141653) --- .github/workflows/check-clean-git-state.sh | 6 ++++++ .github/workflows/ci.yml | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100755 .github/workflows/check-clean-git-state.sh diff --git a/.github/workflows/check-clean-git-state.sh b/.github/workflows/check-clean-git-state.sh new file mode 100755 index 00000000000..cd09d4db30c --- /dev/null +++ b/.github/workflows/check-clean-git-state.sh @@ -0,0 +1,6 @@ +R=`git status --porcelain | wc -l` +if [ "$R" -ne "0" ]; then + echo "The git repo is not clean after compiling the /build/ folder. Did you forget to commit .js output for .ts files?"; + git status --porcelain + exit 1; +fi diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3dc90355056..eae2e162606 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -298,6 +298,12 @@ jobs: - name: Run Valid Layers Checks run: yarn valid-layers-check + - name: Compile /build/ + run: yarn --cwd build compile + + - name: Check clean git state + run: ./.github/workflows/check-clean-git-state.sh + - name: Run eslint run: yarn eslint From 22fc0438ffad90f2ee34d4b0c46df61d3222afe7 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Fri, 28 Jan 2022 07:05:34 -0800 Subject: [PATCH 66/96] Revert "fix #141686" This reverts commit 4af3e141defad7b6b96aa1e831f4b50f78abbe6d Didn't seem to fix the issue --- src/vs/platform/terminal/common/terminal.ts | 5 ----- .../workbench/contrib/terminal/browser/terminalInstance.ts | 7 +++---- .../workbench/contrib/terminal/browser/terminalService.ts | 6 ++---- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/vs/platform/terminal/common/terminal.ts b/src/vs/platform/terminal/common/terminal.ts index 67acbd29a3b..8aadbcd0376 100644 --- a/src/vs/platform/terminal/common/terminal.ts +++ b/src/vs/platform/terminal/common/terminal.ts @@ -503,11 +503,6 @@ export interface IShellLaunchConfig { * Opt-out of the default terminal persistence on restart and reload */ disablePersistence?: boolean; - - /** - * This is a split terminal that inherited its parent's cwd - */ - splitInheritedCwd?: boolean; } export interface ICreateContributedTerminalProfileOptions { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 114970c25e6..d8b6b5fd730 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1232,7 +1232,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { // Set the initial name based on the _resolved_ shell launch config, this will also // ensure the resolved icon gets shown if (!this._labelComputer) { - this._labelComputer = this._register(new TerminalLabelComputer(this._configHelper, this, this._workspaceContextService, this.shellLaunchConfig.splitInheritedCwd)); + this._labelComputer = this._register(new TerminalLabelComputer(this._configHelper, this, this._workspaceContextService)); this._labelComputer.onDidChangeLabel(e => { this._title = e.title; this._description = e.description; @@ -2257,8 +2257,7 @@ export class TerminalLabelComputer extends Disposable { constructor( private readonly _configHelper: TerminalConfigHelper, private readonly _instance: Pick, - @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService, - private readonly _splitInheritedCwd?: boolean + @IWorkspaceContextService private readonly _workspaceContextService: IWorkspaceContextService ) { super(); } @@ -2299,7 +2298,7 @@ export class TerminalLabelComputer extends Disposable { const detection = this._instance.capabilities.has(TerminalCapability.CwdDetection) || this._instance.capabilities.has(TerminalCapability.NaiveCwdDetection); const zeroRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 0 && this.pathsEqual(templateProperties.cwd, this._instance.userHome || this._configHelper.config.cwd); const singleRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 1 && this.pathsEqual(templateProperties.cwd, this._configHelper.config.cwd || this._workspaceContextService.getWorkspace().folders[0]?.uri.fsPath); - if ((this._instance.cwd !== this._instance.initialCwd) || this._splitInheritedCwd) { + if (this._instance.cwd !== this._instance.initialCwd) { templateProperties.cwdFolder = (!templateProperties.cwd || !detection || zeroRootWorkspace || singleRootWorkspace) ? '' : path.basename(templateProperties.cwd); } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts index 9496ea2e2d6..9a2186bec36 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -929,7 +929,7 @@ export class TerminalService implements ITerminalService { const splitActiveTerminal = typeof options?.location === 'object' && 'splitActiveTerminal' in options.location ? options.location.splitActiveTerminal : typeof options?.location === 'object' ? 'parentTerminal' in options.location : false; - shellLaunchConfig.splitInheritedCwd = await this._resolveCwd(shellLaunchConfig, splitActiveTerminal, options); + this._resolveCwd(shellLaunchConfig, splitActiveTerminal, options); // Launch the contributed profile if (contributedProfile) { @@ -975,7 +975,7 @@ export class TerminalService implements ITerminalService { return this._createTerminal(shellLaunchConfig, location, options); } - private async _resolveCwd(shellLaunchConfig: IShellLaunchConfig, splitActiveTerminal: boolean, options?: ICreateTerminalOptions): Promise { + private async _resolveCwd(shellLaunchConfig: IShellLaunchConfig, splitActiveTerminal: boolean, options?: ICreateTerminalOptions): Promise { let cwd = shellLaunchConfig.cwd; if (!cwd) { if (options?.cwd) { @@ -989,10 +989,8 @@ export class TerminalService implements ITerminalService { throw new Error('Cannot split without an active instance'); } shellLaunchConfig.cwd = await getCwdForSplit(this.configHelper, parent, this._workspaceContextService.getWorkspace().folders, this._commandService); - return !!shellLaunchConfig.cwd; } } - return undefined; } private _splitTerminal(shellLaunchConfig: IShellLaunchConfig, location: TerminalLocation, parent: ITerminalInstance): ITerminalInstance { From 4823538fdab2401029bea7137efb1e3ac35cce69 Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Fri, 28 Jan 2022 10:41:46 -0500 Subject: [PATCH 67/96] Bump distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2206dfdfcde..5d6022a2a40 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.64.0", - "distro": "82772fba93439d96710bebecd46f52537cb370cd", + "distro": "674cec30e4b34119b7567a73aaa391cc67b89422", "author": { "name": "Microsoft Corporation" }, From a853936292178200eb58c2a9904d7a7dcf98cce8 Mon Sep 17 00:00:00 2001 From: rebornix Date: Fri, 28 Jan 2022 13:12:59 -0800 Subject: [PATCH 68/96] Revert "support file llink" This reverts commit 09108ba2ce82dece79d267f3e11c16ab7cf5539c. --- .../contrib/notebook/browser/view/renderers/backLayerWebView.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts b/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts index 0d61f08e7bc..4aa423cc39f 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts @@ -654,7 +654,7 @@ var requirejs = (function() { case 'clicked-link': { let linkToOpen: URI | string | undefined; - if (matchesSomeScheme(data.href, Schemas.http, Schemas.https, Schemas.mailto, Schemas.command, Schemas.vscodeNotebookCell, Schemas.vscodeNotebook, Schemas.file)) { + if (matchesSomeScheme(data.href, Schemas.http, Schemas.https, Schemas.mailto, Schemas.command, Schemas.vscodeNotebookCell, Schemas.vscodeNotebook)) { linkToOpen = data.href; } else if (!/^[\w\-]+:/.test(data.href)) { if (this.documentUri.scheme === Schemas.untitled) { From 9f4c4062ee0279af07d0c6e64176067c816404bd Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 28 Jan 2022 22:47:21 +0100 Subject: [PATCH 69/96] Restart the local extension host automatically after a crash --- .../electron-browser/extensionService.ts | 110 ++++++++++++------ 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts index 582609ea7ad..cf8024d05bb 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -54,6 +54,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten private readonly _lazyLocalWebWorker: boolean; private readonly _remoteInitData: Map; private readonly _extensionScanner: CachedExtensionScanner; + private readonly _crashTracker = new ExtensionHostCrashTracker(); constructor( @IInstantiationService instantiationService: IInstantiationService, @@ -277,50 +278,62 @@ export class ExtensionService extends AbstractExtensionService implements IExten this._logService.error(`Extension host (${extensionHostKindToString(extensionHost.kind)}) terminated unexpectedly. No extensions were activated.`); } - this._notificationService.prompt(Severity.Error, nls.localize('extensionService.crash', "Extension host terminated unexpectedly."), - [{ - label: nls.localize('devTools', "Open Developer Tools"), - run: () => this._nativeHostService.openDevTools() - }, - { - label: nls.localize('restart', "Restart Extension Host"), - run: () => this.startExtensionHosts() - }] - ); + this._sendExtensionHostCrashTelemetry(code, signal, activatedExtensions); - type ExtensionHostCrashClassification = { + this._crashTracker.registerCrash(); + + if (this._crashTracker.shouldAutomaticallyRestart()) { + this._logService.info(`Automatically restarting the extension host.`); + this._notificationService.status(nls.localize('extensionService.autoRestart', "The extension host terminated unexpectedly. Restarting..."), { hideAfter: 5000 }); + this.startExtensionHosts(); + } else { + this._notificationService.prompt(Severity.Error, nls.localize('extensionService.crash', "Extension host terminated unexpectedly 3 times within the last 5 minutes."), + [{ + label: nls.localize('devTools', "Open Developer Tools"), + run: () => this._nativeHostService.openDevTools() + }, + { + label: nls.localize('restart', "Restart Extension Host"), + run: () => this.startExtensionHosts() + }] + ); + } + } + } + + private _sendExtensionHostCrashTelemetry(code: number, signal: string | null, activatedExtensions: ExtensionIdentifier[]): void { + type ExtensionHostCrashClassification = { + code: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; + signal: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; + extensionIds: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; + }; + type ExtensionHostCrashEvent = { + code: number; + signal: string | null; + extensionIds: string[]; + }; + this._telemetryService.publicLog2('extensionHostCrash', { + code, + signal, + extensionIds: activatedExtensions.map(e => e.value) + }); + + for (const extensionId of activatedExtensions) { + type ExtensionHostCrashExtensionClassification = { code: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; signal: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; - extensionIds: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; + extensionId: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; }; - type ExtensionHostCrashEvent = { + type ExtensionHostCrashExtensionEvent = { code: number; signal: string | null; - extensionIds: string[]; + extensionId: string; }; - this._telemetryService.publicLog2('extensionHostCrash', { + this._telemetryService.publicLog2('extensionHostCrashExtension', { code, signal, - extensionIds: activatedExtensions.map(e => e.value) + extensionId: extensionId.value }); - - for (const extensionId of activatedExtensions) { - type ExtensionHostCrashExtensionClassification = { - code: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; - signal: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; - extensionId: { classification: 'SystemMetaData', purpose: 'PerformanceAndHealth' }; - }; - type ExtensionHostCrashExtensionEvent = { - code: number; - signal: string | null; - extensionId: string; - }; - this._telemetryService.publicLog2('extensionHostCrashExtension', { - code, - signal, - extensionId: extensionId.value - }); - } } } @@ -561,6 +574,35 @@ export class ExtensionService extends AbstractExtensionService implements IExten } } +export interface IExtensionHostCrashInfo { + timestamp: number; +} + +class ExtensionHostCrashTracker { + + private static _TIME_LIMIT = 5 * 60 * 1000; // 5 minutes + private static _CRASH_LIMIT = 3; + + private readonly _recentCrashes: IExtensionHostCrashInfo[] = []; + + private _removeOldCrashes(): void { + const limit = Date.now() - ExtensionHostCrashTracker._TIME_LIMIT; + while (this._recentCrashes.length > 0 && this._recentCrashes[0].timestamp < limit) { + this._recentCrashes.shift(); + } + } + + public registerCrash(): void { + this._removeOldCrashes(); + this._recentCrashes.push({ timestamp: Date.now() }); + } + + public shouldAutomaticallyRestart(): boolean { + this._removeOldCrashes(); + return (this._recentCrashes.length < ExtensionHostCrashTracker._CRASH_LIMIT); + } +} + function getRemoteAuthorityPrefix(remoteAuthority: string): string { const plusIndex = remoteAuthority.indexOf('+'); if (plusIndex === -1) { From 584d5348da59a02764b1731d9dc0b2c1c272e1e5 Mon Sep 17 00:00:00 2001 From: Raymond Zhao Date: Sat, 29 Jan 2022 21:41:55 -0800 Subject: [PATCH 70/96] Trim characters off match instead to get key, fixes #141614 --- src/vs/workbench/contrib/preferences/browser/settingsTree.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/preferences/browser/settingsTree.ts b/src/vs/workbench/contrib/preferences/browser/settingsTree.ts index 6a132a713fa..464d79af8b8 100644 --- a/src/vs/workbench/contrib/preferences/browser/settingsTree.ts +++ b/src/vs/workbench/contrib/preferences/browser/settingsTree.ts @@ -2130,7 +2130,8 @@ function cleanRenderedMarkdown(element: Node): void { } function fixSettingLinks(text: string, linkify = true): string { - return text.replace(/`#([^#]*)#`|'#([^#]*)#'/g, (match, settingKey) => { + return text.replace(/`#([^#]*)#`|'#([^#]*)#'/g, (match) => { + const settingKey = match.substring(2, match.length - 2); const targetDisplayFormat = settingKeyToDisplayFormat(settingKey); const targetName = `${targetDisplayFormat.category}: ${targetDisplayFormat.label}`; return linkify ? From 8fc944bb20fb4e694ac057cfdcf3c845474c8b54 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Mon, 31 Jan 2022 06:04:06 +0100 Subject: [PATCH 71/96] Increased opacity in overload counter tooltip (#141828) * Increased opacity in overload counter tooltip This improves its readability, in particular with the default dark theme. * Opacity removed --- src/vs/editor/contrib/parameterHints/browser/parameterHints.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css index 74cf9a06566..88f66f0d7ae 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css @@ -97,7 +97,6 @@ text-align: center; height: 12px; line-height: 12px; - opacity: 0.5; font-family: var(--monaco-monospace-font); } From c64876aff96a3c7f73f3e8f7ce36df44d5899fe7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Jan 2022 07:28:38 +0100 Subject: [PATCH 72/96] :lipstick: test scripts (#141791) * try it * log window ready states as info * :lipstick: * compile more * better format * fix * are you serious? * bumpb * . * . --- scripts/test-integration.bat | 43 +++++++-- scripts/test-integration.sh | 86 ++++++++++++----- scripts/test-remote-integration.bat | 16 ++-- scripts/test-remote-integration.sh | 96 ++++++++++++------- scripts/test-web-integration.bat | 17 +++- scripts/test-web-integration.sh | 26 ++++- .../platform/windows/electron-main/window.ts | 3 + 7 files changed, 208 insertions(+), 79 deletions(-) diff --git a/scripts/test-integration.bat b/scripts/test-integration.bat index 3da6d3c9e62..309bfd91e33 100644 --- a/scripts/test-integration.bat +++ b/scripts/test-integration.bat @@ -47,52 +47,77 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( :: Tests standalone (AMD) +echo. +echo ### node.js integration tests call .\scripts\test.bat --runGlob **\*.integrationTest.js %* if %errorlevel% neq 0 exit /b %errorlevel% :: Tests in the extension host -set ALL_PLATFORMS_API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --disable-keytar --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR% +set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --disable-keytar --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\singlefolder-tests %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### API tests (folder) +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\singlefolder-tests %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### API tests (workspace) +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-colorize-tests\test --extensionDevelopmentPath=%~dp0\..\extensions\vscode-colorize-tests --extensionTestsPath=%~dp0\..\extensions\vscode-colorize-tests\out %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### Colorize tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-colorize-tests\test --extensionDevelopmentPath=%~dp0\..\extensions\vscode-colorize-tests --extensionTestsPath=%~dp0\..\extensions\vscode-colorize-tests\out %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit --enable-proposed-api=vscode.typescript-language-features %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### TypeScript tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit --enable-proposed-api=vscode.typescript-language-features %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\markdown-language-features --extensionTestsPath=%~dp0\..\extensions\markdown-language-features\out\test %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### Markdown tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\markdown-language-features --extensionTestsPath=%~dp0\..\extensions\markdown-language-features\out\test %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\emmet\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +echo. +echo ### Emmet tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\emmet\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### Git tests for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i set GITWORKSPACE=%TEMPDIR%\git-%RANDOM% mkdir %GITWORKSPACE% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test --enable-proposed-api=vscode.git %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test --enable-proposed-api=vscode.git %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### Ipynb tests set IPYNBWORKSPACE=%TEMPDIR%\ipynb-%RANDOM% mkdir %IPYNBWORKSPACE% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %IPYNBWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\ipynb --extensionTestsPath=%~dp0\..\extensions\ipynb\out\test %ALL_PLATFORMS_API_TESTS_EXTRA_ARGS% +call "%INTEGRATION_TEST_ELECTRON_PATH%" %IPYNBWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\ipynb --extensionTestsPath=%~dp0\..\extensions\ipynb\out\test %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% :: Tests standalone (CommonJS) +echo. +echo ### CSS tests call %~dp0\node-electron.bat %~dp0\..\extensions\css-language-features/server/test/index.js if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### HTML tests call %~dp0\node-electron.bat %~dp0\..\extensions\html-language-features/server/test/index.js if %errorlevel% neq 0 exit /b %errorlevel% + +:: Cleanup + rmdir /s /q %VSCODEUSERDATADIR% popd diff --git a/scripts/test-integration.sh b/scripts/test-integration.sh index 2eb8ce50a73..3c4e2989a5c 100755 --- a/scripts/test-integration.sh +++ b/scripts/test-integration.sh @@ -14,6 +14,7 @@ fi VSCODEUSERDATADIR=`mktemp -d 2>/dev/null` VSCODECRASHDIR=$ROOT/.build/crashes VSCODELOGSDIR=$ROOT/.build/logs/integration-tests + cd $ROOT # Figure out which Electron to use for running tests @@ -53,54 +54,87 @@ else echo "Running integration tests with '$INTEGRATION_TEST_ELECTRON_PATH' as build." fi -if [ -z "$INTEGRATION_TEST_APP_NAME" ]; then - after_suite() { true; } -else - after_suite() { killall $INTEGRATION_TEST_APP_NAME || true; } -fi - # Tests standalone (AMD) +echo +echo "### node.js integration tests" +echo ./scripts/test.sh --runGlob **/*.integrationTest.js "$@" -after_suite # Tests in the extension host -ALL_PLATFORMS_API_TESTS_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --disable-keytar --disable-extensions --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR" +API_TESTS_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --disable-keytar --disable-extensions --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR" -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +if [ -z "$INTEGRATION_TEST_APP_NAME" ]; then + kill_app() { true; } +else + kill_app() { killall $INTEGRATION_TEST_APP_NAME || true; } +fi -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### API tests (folder)" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### API tests (workspace)" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --enable-proposed-api=vscode.typescript-language-features --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### Colorize tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### TypeScript tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --enable-proposed-api=vscode.typescript-language-features --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/emmet/test-workspace --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### Markdown tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --enable-proposed-api=vscode.git --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### Emmet tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/emmet/test-workspace --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test $API_TESTS_EXTRA_ARGS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$ROOT/extensions/ipynb --extensionTestsPath=$ROOT/extensions/ipynb/out/test $ALL_PLATFORMS_API_TESTS_EXTRA_ARGS -after_suite +echo +echo "### Git tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --enable-proposed-api=vscode.git --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test $API_TESTS_EXTRA_ARGS +kill_app + +echo +echo "### Ipynb tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$ROOT/extensions/ipynb --extensionTestsPath=$ROOT/extensions/ipynb/out/test $API_TESTS_EXTRA_ARGS +kill_app # Tests standalone (CommonJS) +echo +echo "### CSS tests" +echo cd $ROOT/extensions/css-language-features/server && $ROOT/scripts/node-electron.sh test/index.js -after_suite +echo +echo "### HTML tests" +echo cd $ROOT/extensions/html-language-features/server && $ROOT/scripts/node-electron.sh test/index.js -after_suite + + +# Cleanup rm -rf $VSCODEUSERDATADIR diff --git a/scripts/test-remote-integration.bat b/scripts/test-remote-integration.bat index f67c213048a..396737b831e 100644 --- a/scripts/test-remote-integration.bat +++ b/scripts/test-remote-integration.bat @@ -26,18 +26,18 @@ set TESTRESOLVER_DATA_FOLDER=%TMP%\testresolverdatafolder-%RANDOM%-%TIME:~6,5% set TESTRESOLVER_LOGS_FOLDER=%VSCODELOGSDIR%\server if "%VSCODE_REMOTE_SERVER_PATH%"=="" ( - echo "Using remote server out of sources for integration tests" + echo Using remote server out of sources for integration tests ) else ( set TESTRESOLVER_INSTALL_BUILTIN_EXTENSION=ms-vscode.vscode-smoketest-check - echo "Using %VSCODE_REMOTE_SERVER_PATH% as server path" + echo Using '%VSCODE_REMOTE_SERVER_PATH%' as server path ) set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --disable-keytar --disable-inspect --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR% :: Figure out which Electron to use for running tests if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( - echo "Storing crash reports into '%VSCODECRASHDIR%'." - echo "Storing log files into '%VSCODELOGSDIR%'." + echo Storing crash reports into '%VSCODECRASHDIR%' + echo Storing log files into '%VSCODELOGSDIR%' :: Tests in the extension host running from sources call .\scripts\code.bat --folder-uri=%REMOTE_VSCODE%/vscode-api-tests/testWorkspace --extensionDevelopmentPath=%REMOTE_VSCODE%/vscode-api-tests --extensionTestsPath=%REMOTE_VSCODE%/vscode-api-tests/out/singlefolder-tests %API_TESTS_EXTRA_ARGS% @@ -46,14 +46,16 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( call .\scripts\code.bat --file-uri=%REMOTE_VSCODE%/vscode-api-tests/testworkspace.code-workspace --extensionDevelopmentPath=%REMOTE_VSCODE%/vscode-api-tests --extensionTestsPath=%REMOTE_VSCODE%/vscode-api-tests/out/workspace-tests %API_TESTS_EXTRA_ARGS% if %errorlevel% neq 0 exit /b %errorlevel% ) else ( - echo "Storing crash reports into '%VSCODECRASHDIR%'." - echo "Storing log files into '%VSCODELOGSDIR%'." - echo "Using %INTEGRATION_TEST_ELECTRON_PATH% as Electron path" + echo Storing crash reports into '%VSCODECRASHDIR%' + echo Storing log files into '%VSCODELOGSDIR%' + echo Using %INTEGRATION_TEST_ELECTRON_PATH% as Electron path :: Run from a built: need to compile all test extensions :: because we run extension tests from their source folders :: and the build bundles extensions into .build webpacked call yarn gulp compile-extension:vscode-api-tests^ + compile-extension:microsoft-authentication^ + compile-extension:github-authentication^ compile-extension:vscode-test-resolver :: Configuration for more verbose output diff --git a/scripts/test-remote-integration.sh b/scripts/test-remote-integration.sh index 066e136aa2c..7515940b5d4 100755 --- a/scripts/test-remote-integration.sh +++ b/scripts/test-remote-integration.sh @@ -1,21 +1,23 @@ -#!/bin/bash +#!/usr/bin/env bash set -e if [[ "$OSTYPE" == "darwin"* ]]; then realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"; } ROOT=$(dirname $(dirname $(realpath "$0"))) - VSCODEUSERDATADIR=`mktemp -d -t 'myuserdatadir'` - TESTRESOLVER_DATA_FOLDER=`mktemp -d -t 'testresolverdatafolder'` else ROOT=$(dirname $(dirname $(readlink -f $0))) - VSCODEUSERDATADIR=`mktemp -d 2>/dev/null` - TESTRESOLVER_DATA_FOLDER=`mktemp -d 2>/dev/null` # --disable-dev-shm-usage --use-gl=swiftshader: when run on docker containers where size of /dev/shm # partition < 64MB which causes OOM failure for chromium compositor that uses the partition for shared memory LINUX_EXTRA_ARGS="--disable-dev-shm-usage --use-gl=swiftshader" fi +VSCODEUSERDATADIR=`mktemp -d 2>/dev/null` +VSCODECRASHDIR=$ROOT/.build/crashes +VSCODELOGSDIR=$ROOT/.build/logs/integration-tests-remote +TESTRESOLVER_DATA_FOLDER=`mktemp -d 2>/dev/null` + cd $ROOT + if [[ "$1" == "" ]]; then AUTHORITY=vscode-remote://test+test EXT_PATH=$ROOT/extensions @@ -28,25 +30,20 @@ else fi export REMOTE_VSCODE=$AUTHORITY$EXT_PATH -VSCODECRASHDIR=$ROOT/.build/crashes -VSCODELOGSDIR=$ROOT/.build/logs/integration-tests-remote # Figure out which Electron to use for running tests if [ -z "$INTEGRATION_TEST_ELECTRON_PATH" ] then - echo "Storing crash reports into '$VSCODECRASHDIR'." - echo "Storing log files into '$VSCODELOGSDIR'." - - # code.sh makes sure Test Extensions are compiled + # Run out of sources: no need to compile as code.sh takes care of it INTEGRATION_TEST_ELECTRON_PATH="./scripts/code.sh" # No extra arguments when running out of sources EXTRA_INTEGRATION_TEST_ARGUMENTS="" -else + echo "Storing crash reports into '$VSCODECRASHDIR'." echo "Storing log files into '$VSCODELOGSDIR'." - echo "Using $INTEGRATION_TEST_ELECTRON_PATH as Electron path for integration tests" - + echo "Running remote integration tests out of sources." +else # Run from a built: need to compile all test extensions # because we run extension tests from their source folders # and the build bundles extensions into .build webpacked @@ -56,6 +53,9 @@ else compile-extension:typescript-language-features \ compile-extension:emmet \ compile-extension:git \ + compile-extension:ipynb \ + compile-extension:microsoft-authentication \ + compile-extension:github-authentication \ compile-extension-media # Configuration for more verbose output @@ -65,12 +65,10 @@ else # Running from a build, we need to enable the vscode-test-resolver extension EXTRA_INTEGRATION_TEST_ARGUMENTS="--extensions-dir=$EXT_PATH --enable-proposed-api=vscode.vscode-test-resolver --enable-proposed-api=vscode.vscode-api-tests --enable-proposed-api=vscode.image-preview --enable-proposed-api=vscode.git" -fi -if [ -z "$INTEGRATION_TEST_APP_NAME" ]; then - after_suite() { true; } -else - after_suite() { killall $INTEGRATION_TEST_APP_NAME || true; } + echo "Storing crash reports into '$VSCODECRASHDIR'." + echo "Storing log files into '$VSCODELOGSDIR'." + echo "Running remote integration tests with $INTEGRATION_TEST_ELECTRON_PATH as build." fi export TESTRESOLVER_DATA_FOLDER=$TESTRESOLVER_DATA_FOLDER @@ -85,29 +83,59 @@ else export TESTRESOLVER_INSTALL_BUILTIN_EXTENSION='ms-vscode.vscode-smoketest-check' fi -# Tests in the extension host +if [ -z "$INTEGRATION_TEST_APP_NAME" ]; then + kill_app() { true; } +else + kill_app() { killall $INTEGRATION_TEST_APP_NAME || true; } +fi -API_TESTS_DEFAULT_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --disable-keytar --disable-inspect --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR" +API_TESTS_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --disable-keytar --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR" -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/vscode-api-tests/testWorkspace --extensionDevelopmentPath=$REMOTE_VSCODE/vscode-api-tests --extensionTestsPath=$REMOTE_VSCODE/vscode-api-tests/out/singlefolder-tests $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### API tests (folder)" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/vscode-api-tests/testWorkspace --extensionDevelopmentPath=$REMOTE_VSCODE/vscode-api-tests --extensionTestsPath=$REMOTE_VSCODE/vscode-api-tests/out/singlefolder-tests $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --file-uri=$REMOTE_VSCODE/vscode-api-tests/testworkspace.code-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/vscode-api-tests --extensionTestsPath=$REMOTE_VSCODE/vscode-api-tests/out/workspace-tests $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### API tests (workspace)" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --file-uri=$REMOTE_VSCODE/vscode-api-tests/testworkspace.code-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/vscode-api-tests --extensionTestsPath=$REMOTE_VSCODE/vscode-api-tests/out/workspace-tests $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/typescript-language-features/test-workspace --enable-proposed-api=vscode.typescript-language-features --extensionDevelopmentPath=$REMOTE_VSCODE/typescript-language-features --extensionTestsPath=$REMOTE_VSCODE/typescript-language-features/out/test/unit $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### TypeScript tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/typescript-language-features/test-workspace --enable-proposed-api=vscode.typescript-language-features --extensionDevelopmentPath=$REMOTE_VSCODE/typescript-language-features --extensionTestsPath=$REMOTE_VSCODE/typescript-language-features/out/test/unit $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/markdown-language-features/test-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/markdown-language-features --extensionTestsPath=$REMOTE_VSCODE/markdown-language-features/out/test $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### Markdown tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/markdown-language-features/test-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/markdown-language-features --extensionTestsPath=$REMOTE_VSCODE/markdown-language-features/out/test $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/emmet/test-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/emmet --extensionTestsPath=$REMOTE_VSCODE/emmet/out/test $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### Emmet tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$REMOTE_VSCODE/emmet/test-workspace --extensionDevelopmentPath=$REMOTE_VSCODE/emmet --extensionTestsPath=$REMOTE_VSCODE/emmet/out/test $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$AUTHORITY$(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$REMOTE_VSCODE/git --extensionTestsPath=$REMOTE_VSCODE/git/out/test $API_TESTS_DEFAULT_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS -after_suite +echo +echo "### Git tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$AUTHORITY$(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$REMOTE_VSCODE/git --extensionTestsPath=$REMOTE_VSCODE/git/out/test $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app + +echo +echo "### Ipynb tests" +echo +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS --folder-uri=$AUTHORITY$(mktemp -d 2>/dev/null) --extensionDevelopmentPath=$REMOTE_VSCODE/ipynb --extensionTestsPath=$REMOTE_VSCODE/ipynb/out/test $API_TESTS_EXTRA_ARGS $EXTRA_INTEGRATION_TEST_ARGUMENTS +kill_app + + +# Cleanup -# Clean up if [[ "$3" == "" ]]; then rm -rf $VSCODEUSERDATADIR fi diff --git a/scripts/test-web-integration.bat b/scripts/test-web-integration.bat index 13570fbc05a..6f778843e05 100644 --- a/scripts/test-web-integration.bat +++ b/scripts/test-web-integration.bat @@ -18,9 +18,9 @@ IF "%~1" == "" ( set REMOTE_VSCODE=%AUTHORITY%%EXT_PATH% if "%VSCODE_REMOTE_SERVER_PATH%"=="" ( - echo "Using remote server out of sources for integration web tests" + echo Using remote server out of sources for integration web tests ) else ( - echo "Using %VSCODE_REMOTE_SERVER_PATH% as server path for web integration tests" + echo Using '%VSCODE_REMOTE_SERVER_PATH%' as server path for web integration tests :: Run from a built: need to compile all test extensions :: because we run extension tests from their source folders @@ -37,21 +37,34 @@ if not exist ".\test\integration\browser\out\index.js" ( call yarn --cwd test/integration/browser compile call yarn playwright-install ) + +echo. +echo ### API tests (folder) call node .\test\integration\browser\out\index.js --workspacePath=.\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=.\extensions\vscode-api-tests --extensionTestsPath=.\extensions\vscode-api-tests\out\singlefolder-tests %* if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### API tests (workspace) call node .\test\integration\browser\out\index.js --workspacePath=.\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=.\extensions\vscode-api-tests --extensionTestsPath=.\extensions\vscode-api-tests\out\workspace-tests %* if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### TypeScript tests call node .\test\integration\browser\out\index.js --workspacePath=.\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=.\extensions\typescript-language-features --extensionTestsPath=.\extensions\typescript-language-features\out\test\unit %* if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### Markdown tests call node .\test\integration\browser\out\index.js --workspacePath=.\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=.\extensions\markdown-language-features --extensionTestsPath=.\extensions\markdown-language-features\out\test %* if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### Emmet tests call node .\test\integration\browser\out\index.js --workspacePath=.\extensions\emmet\test-workspace --extensionDevelopmentPath=.\extensions\emmet --extensionTestsPath=.\extensions\emmet\out\test %* if %errorlevel% neq 0 exit /b %errorlevel% +echo. +echo ### Git tests for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i set GITWORKSPACE=%TEMPDIR%\git-%RANDOM% mkdir %GITWORKSPACE% diff --git a/scripts/test-web-integration.sh b/scripts/test-web-integration.sh index 2a692e2d518..b84e8c51d2f 100755 --- a/scripts/test-web-integration.sh +++ b/scripts/test-web-integration.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e if [[ "$OSTYPE" == "darwin"* ]]; then @@ -33,9 +33,33 @@ if [ ! -e 'test/integration/browser/out/index.js' ];then fi # Tests in the extension host + +echo +echo "### API tests (folder)" +echo node test/integration/browser/out/index.js --workspacePath $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests "$@" + +echo +echo "### API tests (workspace)" +echo node test/integration/browser/out/index.js --workspacePath $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests "$@" + +echo +echo "### TypeScript tests" +echo node test/integration/browser/out/index.js --workspacePath $ROOT/extensions/typescript-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit "$@" + +echo +echo "### Markdown tests" +echo node test/integration/browser/out/index.js --workspacePath $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test "$@" + +echo +echo "### Emmet tests" +echo node test/integration/browser/out/index.js --workspacePath $ROOT/extensions/emmet/test-workspace --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test "$@" + +echo +echo "### Git tests" +echo node test/integration/browser/out/index.js --workspacePath $(mktemp -d 2>/dev/null) --enable-proposed-api=vscode.git --extensionDevelopmentPath=$ROOT/extensions/git --extensionTestsPath=$ROOT/extensions/git/out/test "$@" diff --git a/src/vs/platform/windows/electron-main/window.ts b/src/vs/platform/windows/electron-main/window.ts index dfb1f7f186f..4457e07d14e 100644 --- a/src/vs/platform/windows/electron-main/window.ts +++ b/src/vs/platform/windows/electron-main/window.ts @@ -363,6 +363,8 @@ export class CodeWindow extends Disposable implements ICodeWindow { private readyState = ReadyState.NONE; setReady(): void { + this.logService.info(`window#load: window reported ready (id: ${this._id})`); + this.readyState = ReadyState.READY; // inform all waiting promises that we are ready now @@ -692,6 +694,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { } load(configuration: INativeWindowConfiguration, options: ILoadOptions = Object.create(null)): void { + this.logService.info(`window#load: attempt to load window (id: ${this._id})`); // Clear Document Edited if needed if (this.isDocumentEdited()) { From 84163149f3aa4f57b4407199cae52af18f0d8269 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Jan 2022 07:57:05 +0100 Subject: [PATCH 73/96] web - move exports into main file --- src/vs/platform/product/common/product.ts | 2 +- src/vs/workbench/browser/web.factory.ts | 117 ++-------------------- src/vs/workbench/workbench.web.main.ts | 115 ++++++++++++++++++++- 3 files changed, 119 insertions(+), 115 deletions(-) diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts index 096699f4ed8..75ce0b91229 100644 --- a/src/vs/platform/product/common/product.ts +++ b/src/vs/platform/product/common/product.ts @@ -58,7 +58,7 @@ else { // Running out of sources if (Object.keys(product).length === 0) { Object.assign(product, { - version: '1.64.0-dev', + version: '1.65.0-dev', nameShort: 'Code - OSS Dev', nameLong: 'Code - OSS Dev', applicationName: 'code-oss', diff --git a/src/vs/workbench/browser/web.factory.ts b/src/vs/workbench/browser/web.factory.ts index a66d1e81b68..4b271e566d4 100644 --- a/src/vs/workbench/browser/web.factory.ts +++ b/src/vs/workbench/browser/web.factory.ts @@ -3,20 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IWorkbench, ICommand, ICommonTelemetryPropertiesResolver, IDefaultEditor, IDefaultLayout, IDefaultView, IDevelopmentOptions, IExternalUriResolver, IExternalURLOpener, IHomeIndicator, IInitialColorTheme, IPosition, IProductQualityChangeHandler, IRange, IResourceUriProvider, ISettingsSyncOptions, IShowPortCandidate, ITunnel, ITunnelFactory, ITunnelOptions, ITunnelProvider, IWelcomeBanner, IWelcomeBannerAction, IWindowIndicator, IWorkbenchConstructionOptions, Menu } from 'vs/workbench/browser/web.api'; +import { IWorkbench, IWorkbenchConstructionOptions, Menu } from 'vs/workbench/browser/web.api'; import { BrowserMain } from 'vs/workbench/browser/web.main'; -import { UriComponents, URI } from 'vs/base/common/uri'; -import { IWebSocketFactory, IWebSocket } from 'vs/platform/remote/browser/browserSocketFactory'; -import { IURLCallbackProvider } from 'vs/workbench/services/url/browser/urlService'; -import { LogLevel } from 'vs/platform/log/common/log'; -import { IUpdateProvider, IUpdate } from 'vs/workbench/services/update/browser/updateService'; -import { Event, Emitter } from 'vs/base/common/event'; -import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; -import { IWorkspaceProvider, IWorkspace } from 'vs/workbench/services/host/browser/browserHostService'; +import { URI } from 'vs/base/common/uri'; +import { IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; -import { IProductConfiguration } from 'vs/base/common/product'; import { mark, PerformanceMark } from 'vs/base/common/performance'; -import { ICredentialsProvider } from 'vs/platform/credentials/common/credentials'; import { MenuId, MenuRegistry } from 'vs/platform/actions/common/actions'; import { DeferredPromise } from 'vs/base/common/async'; import { asArray } from 'vs/base/common/arrays'; @@ -30,7 +22,7 @@ const workbenchPromise = new DeferredPromise(); * @param domElement the container to create the workbench in * @param options for setting up the workbench */ -function create(domElement: HTMLElement, options: IWorkbenchConstructionOptions): IDisposable { +export function create(domElement: HTMLElement, options: IWorkbenchConstructionOptions): IDisposable { // Mark start of workbench mark('code/didLoadWorkbenchMain'); @@ -87,7 +79,7 @@ function asMenuId(menu: Menu): MenuId { } } -namespace commands { +export namespace commands { /** * {@linkcode IWorkbench.commands IWorkbench.commands.executeCommand} @@ -99,7 +91,7 @@ namespace commands { } } -namespace env { +export namespace env { /** * {@linkcode IWorkbench.env IWorkbench.env.retrievePerformanceMarks} @@ -128,100 +120,3 @@ namespace env { return workbench.env.openUri(target); } } - - -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -// -// Do NOT change these exports in a way that something is removed unless -// intentional. These exports are used by web embedders and thus require -// an adoption when something changes. -// -// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -export { - - // Factory - create, - IWorkbenchConstructionOptions, - IWorkbench, - - // Basic Types - URI, - UriComponents, - Event, - Emitter, - IDisposable, - Disposable, - - // Workspace - IWorkspace, - IWorkspaceProvider, - - // WebSockets - IWebSocketFactory, - IWebSocket, - - // Resources - IResourceUriProvider, - - // Credentials - ICredentialsProvider, - - // Callbacks - IURLCallbackProvider, - - // LogLevel - LogLevel, - - // SettingsSync - ISettingsSyncOptions, - - // Updates/Quality - IUpdateProvider, - IUpdate, - IProductQualityChangeHandler, - - // Telemetry - ICommonTelemetryPropertiesResolver, - - // External Uris - IExternalUriResolver, - - // External URL Opener - IExternalURLOpener, - - // Tunnel - ITunnelProvider, - ITunnelFactory, - ITunnel, - ITunnelOptions, - - // Ports - IShowPortCandidate, - - // Commands - ICommand, - commands, - Menu, - - // Branding - IHomeIndicator, - IWelcomeBanner, - IWelcomeBannerAction, - IProductConfiguration, - IWindowIndicator, - IInitialColorTheme, - - // Default layout - IDefaultView, - IDefaultEditor, - IDefaultLayout, - IPosition, - IRange as ISelection, - - // Env - env, - - // Development - IDevelopmentOptions -}; diff --git a/src/vs/workbench/workbench.web.main.ts b/src/vs/workbench/workbench.web.main.ts index 4935f5179d1..dcc647ee82f 100644 --- a/src/vs/workbench/workbench.web.main.ts +++ b/src/vs/workbench/workbench.web.main.ts @@ -68,7 +68,7 @@ import { IExtensionTipsService } from 'vs/platform/extensionManagement/common/ex import { ExtensionTipsService } from 'vs/platform/extensionManagement/common/extensionTipsService'; import { IWorkbenchExtensionManagementService } from 'vs/workbench/services/extensionManagement/common/extensionManagement'; import { ExtensionManagementService } from 'vs/workbench/services/extensionManagement/common/extensionManagementService'; -import { ILoggerService } from 'vs/platform/log/common/log'; +import { ILoggerService, LogLevel } from 'vs/platform/log/common/log'; import { FileLoggerService } from 'vs/platform/log/common/fileLog'; import { UserDataSyncMachinesService, IUserDataSyncMachinesService } from 'vs/platform/userDataSync/common/userDataSyncMachines'; import { IUserDataSyncStoreService, IUserDataSyncService, IUserDataAutoSyncService, IUserDataSyncBackupStoreService, IUserDataSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync'; @@ -158,7 +158,116 @@ import 'vs/workbench/contrib/offline/browser/offline.contribution'; //#region --- export workbench factory -import * as factory from 'vs/workbench/browser/web.factory'; -export = factory; +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +// +// Do NOT change these exports in a way that something is removed unless +// intentional. These exports are used by web embedders and thus require +// an adoption when something changes. +// +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +import { create, commands, env } from 'vs/workbench/browser/web.factory'; +import { IWorkbench, ICommand, ICommonTelemetryPropertiesResolver, IDefaultEditor, IDefaultLayout, IDefaultView, IDevelopmentOptions, IExternalUriResolver, IExternalURLOpener, IHomeIndicator, IInitialColorTheme, IPosition, IProductQualityChangeHandler, IRange, IResourceUriProvider, ISettingsSyncOptions, IShowPortCandidate, ITunnel, ITunnelFactory, ITunnelOptions, ITunnelProvider, IWelcomeBanner, IWelcomeBannerAction, IWindowIndicator, IWorkbenchConstructionOptions, Menu } from 'vs/workbench/browser/web.api'; +import { UriComponents, URI } from 'vs/base/common/uri'; +import { IWebSocketFactory, IWebSocket } from 'vs/platform/remote/browser/browserSocketFactory'; +import { Event, Emitter } from 'vs/base/common/event'; +import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +import { IProductConfiguration } from 'vs/base/common/product'; +import { ICredentialsProvider } from 'vs/platform/credentials/common/credentials'; +// eslint-disable-next-line no-duplicate-imports +import type { IURLCallbackProvider } from 'vs/workbench/services/url/browser/urlService'; +// eslint-disable-next-line no-duplicate-imports +import type { IUpdateProvider, IUpdate } from 'vs/workbench/services/update/browser/updateService'; +// eslint-disable-next-line no-duplicate-imports +import type { IWorkspace, IWorkspaceProvider } from 'vs/workbench/services/host/browser/browserHostService'; + +export { + + // Factory + create, + IWorkbenchConstructionOptions, + IWorkbench, + + // Basic Types + URI, + UriComponents, + Event, + Emitter, + IDisposable, + Disposable, + + // Workspace + IWorkspace, + IWorkspaceProvider, + + // WebSockets + IWebSocketFactory, + IWebSocket, + + // Resources + IResourceUriProvider, + + // Credentials + ICredentialsProvider, + + // Callbacks + IURLCallbackProvider, + + // LogLevel + LogLevel, + + // SettingsSync + ISettingsSyncOptions, + + // Updates/Quality + IUpdateProvider, + IUpdate, + IProductQualityChangeHandler, + + // Telemetry + ICommonTelemetryPropertiesResolver, + + // External Uris + IExternalUriResolver, + + // External URL Opener + IExternalURLOpener, + + // Tunnel + ITunnelProvider, + ITunnelFactory, + ITunnel, + ITunnelOptions, + + // Ports + IShowPortCandidate, + + // Commands + ICommand, + commands, + Menu, + + // Branding + IHomeIndicator, + IWelcomeBanner, + IWelcomeBannerAction, + IProductConfiguration, + IWindowIndicator, + IInitialColorTheme, + + // Default layout + IDefaultView, + IDefaultEditor, + IDefaultLayout, + IPosition, + IRange as ISelection, + + // Env + env, + + // Development + IDevelopmentOptions +}; + //#endregion From 5323a5374639a302e00d77c0ff2f9027826ad9eb Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 10:24:06 +0100 Subject: [PATCH 74/96] Add more logging for #141734 --- .../node/extensionHostStarterWorker.ts | 21 +++++++++++-------- .../electron-browser/extensionService.ts | 21 ++++++++++++++++++- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/vs/platform/extensions/node/extensionHostStarterWorker.ts b/src/vs/platform/extensions/node/extensionHostStarterWorker.ts index 9ea3bd7857a..d134d411336 100644 --- a/src/vs/platform/extensions/node/extensionHostStarterWorker.ts +++ b/src/vs/platform/extensions/node/extensionHostStarterWorker.ts @@ -3,18 +3,18 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { SerializedError, transformErrorForSerialization } from 'vs/base/common/errors'; -import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import { IExtensionHostProcessOptions, IExtensionHostStarter } from 'vs/platform/extensions/common/extensionHostStarter'; -import { Emitter, Event } from 'vs/base/common/event'; import { ChildProcess, fork } from 'child_process'; -import { FileAccess } from 'vs/base/common/network'; import { StringDecoder } from 'string_decoder'; -import * as platform from 'vs/base/common/platform'; -import { mixin } from 'vs/base/common/objects'; -import { cwd } from 'vs/base/common/process'; -import { StopWatch } from 'vs/base/common/stopwatch'; import { Promises, timeout } from 'vs/base/common/async'; +import { SerializedError, transformErrorForSerialization } from 'vs/base/common/errors'; +import { Emitter, Event } from 'vs/base/common/event'; +import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; +import { FileAccess } from 'vs/base/common/network'; +import { mixin } from 'vs/base/common/objects'; +import * as platform from 'vs/base/common/platform'; +import { cwd, env } from 'vs/base/common/process'; +import { StopWatch } from 'vs/base/common/stopwatch'; +import { IExtensionHostProcessOptions, IExtensionHostStarter } from 'vs/platform/extensions/common/extensionHostStarter'; export interface IExtensionHostStarterWorkerHost { logInfo(message: string): Promise; @@ -48,6 +48,9 @@ class ExtensionHostProcess extends Disposable { } start(opts: IExtensionHostProcessOptions): { pid: number; } { + if (env['CI'] || env['BUILD_ARTIFACTSTAGINGDIRECTORY']) { + this._host.logInfo(`Calling fork to start extension host...`); + } const sw = StopWatch.create(false); this._process = fork( FileAccess.asFileUri('bootstrap-fork', require).fsPath, diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts index cf8024d05bb..d4aa1200b27 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -6,6 +6,7 @@ import { LocalProcessExtensionHost } from 'vs/workbench/services/extensions/electron-browser/localProcessExtensionHost'; import { CachedExtensionScanner } from 'vs/workbench/services/extensions/electron-browser/cachedExtensionScanner'; +import { env } from 'vs/base/common/process'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { AbstractExtensionService, ExtensionRunningPreference, extensionRunningPreferenceToString } from 'vs/workbench/services/extensions/common/abstractExtensionService'; import * as nls from 'vs/nls'; @@ -376,13 +377,31 @@ export class ExtensionService extends AbstractExtensionService implements IExten return uri; } const localProcessExtensionHost = this._getExtensionHostManager(ExtensionHostKind.LocalProcess)!; - return localProcessExtensionHost.getCanonicalURI(remoteAuthority, uri); + if (env['CI'] || env['BUILD_ARTIFACTSTAGINGDIRECTORY']) { + this._logService.info(`Invoking getCanonicalURI for authority ${getRemoteAuthorityPrefix(remoteAuthority)}...`); + } + try { + return localProcessExtensionHost.getCanonicalURI(remoteAuthority, uri); + } finally { + if (env['CI'] || env['BUILD_ARTIFACTSTAGINGDIRECTORY']) { + this._logService.info(`getCanonicalURI returned for authority ${getRemoteAuthorityPrefix(remoteAuthority)}.`); + } + } }); + if (env['CI'] || env['BUILD_ARTIFACTSTAGINGDIRECTORY']) { + this._logService.info(`Starting to wait on IWorkspaceTrustManagementService.workspaceResolved...`); + } + // Now that the canonical URI provider has been registered, we need to wait for the trust state to be // calculated. The trust state will be used while resolving the authority, however the resolver can // override the trust state through the resolver result. await this._workspaceTrustManagementService.workspaceResolved; + + if (env['CI'] || env['BUILD_ARTIFACTSTAGINGDIRECTORY']) { + this._logService.info(`Finished waiting on IWorkspaceTrustManagementService.workspaceResolved.`); + } + let resolverResult: ResolverResult; const sw = StopWatch.create(false); From 4f4df625f901f020606e580bda55e82d31ebaed9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Jan 2022 10:44:53 +0100 Subject: [PATCH 75/96] Cleanup deprecated `IEnvironmentService.configuration` property (#141859) * renames and reductions * adopt for files to open, diff, wait * remove from tests * backup path * accessibility support * remove unused * more inlines * perf * removal * more cleanup * removal of workbench config object --- src/vs/workbench/browser/layout.ts | 2 +- .../electron-sandbox/remote.contribution.ts | 2 +- .../electron-sandbox/workspaceTagsService.ts | 6 +- .../browser/telemetry.contribution.ts | 2 +- .../browser/terminalProfileService.test.ts | 4 +- .../electron-sandbox/desktop.main.ts | 12 +- src/vs/workbench/electron-sandbox/window.ts | 4 +- .../electron-sandbox/accessibilityService.ts | 2 +- .../configurationResolverService.test.ts | 4 +- .../environment/browser/environmentService.ts | 189 +++++++++--------- .../environment/common/environmentService.ts | 34 ++-- .../electron-sandbox/environmentService.ts | 76 +++++-- .../extensionEnablementService.test.ts | 2 +- .../localProcessExtensionHost.ts | 3 +- .../electron-sandbox/nativeHostService.ts | 2 +- .../issue/electron-sandbox/issueService.ts | 2 +- .../nativeHostColorSchemeService.ts | 2 +- .../timer/electron-sandbox/timerService.ts | 6 +- .../workingCopyBackupService.ts | 2 +- .../workingCopyBackupService.test.ts | 4 +- .../workspaces/common/workspaceTrust.ts | 8 +- .../test/common/workspaceTrust.test.ts | 6 +- .../electron-browser/workbenchTestServices.ts | 8 +- 23 files changed, 201 insertions(+), 181 deletions(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index acebcd3e9f4..55e517319df 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -613,7 +613,7 @@ export abstract class Layout extends Disposable implements IWorkbenchLayoutServi } // Then check for files to open, create or diff from main side - const { filesToOpenOrCreate, filesToDiff } = this.environmentService.configuration; + const { filesToOpenOrCreate, filesToDiff } = this.environmentService; if (filesToOpenOrCreate || filesToDiff) { return { filesToOpenOrCreate, filesToDiff }; } diff --git a/src/vs/workbench/contrib/remote/electron-sandbox/remote.contribution.ts b/src/vs/workbench/contrib/remote/electron-sandbox/remote.contribution.ts index 6c88e74721e..172063360b9 100644 --- a/src/vs/workbench/contrib/remote/electron-sandbox/remote.contribution.ts +++ b/src/vs/workbench/contrib/remote/electron-sandbox/remote.contribution.ts @@ -137,7 +137,7 @@ class RemoteEmptyWorkbenchPresentation extends Disposable implements IWorkbenchC return shouldShowExplorer(); } - const { remoteAuthority, filesToDiff, filesToOpenOrCreate, filesToWait } = environmentService.configuration; + const { remoteAuthority, filesToDiff, filesToOpenOrCreate, filesToWait } = environmentService; if (remoteAuthority && contextService.getWorkbenchState() === WorkbenchState.EMPTY && !filesToDiff?.length && !filesToOpenOrCreate?.length && !filesToWait) { remoteAuthorityResolverService.resolveAuthority(remoteAuthority).then(() => { if (shouldShowExplorer()) { diff --git a/src/vs/workbench/contrib/tags/electron-sandbox/workspaceTagsService.ts b/src/vs/workbench/contrib/tags/electron-sandbox/workspaceTagsService.ts index ecc77eb8a0f..b7891c758d4 100644 --- a/src/vs/workbench/contrib/tags/electron-sandbox/workspaceTagsService.ts +++ b/src/vs/workbench/contrib/tags/electron-sandbox/workspaceTagsService.ts @@ -372,7 +372,7 @@ export class WorkspaceTagsService implements IWorkspaceTagsService { "workspace.npm.playwright-core" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, "workspace.npm.playwright-chromium" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, "workspace.npm.playwright-firefox" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, - "workspace.npm.playwright-webkit" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, + "workspace.npm.playwright-webkit" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, "workspace.npm.cypress" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, "workspace.npm.nightwatch" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, "workspace.npm.protractor" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true }, @@ -572,7 +572,7 @@ export class WorkspaceTagsService implements IWorkspaceTagsService { tags['workspace.id'] = await this.getTelemetryWorkspaceId(workspace, state); - const { filesToOpenOrCreate, filesToDiff } = this.environmentService.configuration; + const { filesToOpenOrCreate, filesToDiff } = this.environmentService; tags['workbench.filesToOpenOrCreate'] = filesToOpenOrCreate && filesToOpenOrCreate.length || 0; tags['workbench.filesToDiff'] = filesToDiff && filesToDiff.length || 0; @@ -813,7 +813,7 @@ export class WorkspaceTagsService implements IWorkspaceTagsService { } private findFolder(): URI | undefined { - const { filesToOpenOrCreate, filesToDiff } = this.environmentService.configuration; + const { filesToOpenOrCreate, filesToDiff } = this.environmentService; if (filesToOpenOrCreate && filesToOpenOrCreate.length) { return this.parentURI(filesToOpenOrCreate[0].fileUri); } else if (filesToDiff && filesToDiff.length) { diff --git a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts index 8615fce5375..bc7e49a15ed 100644 --- a/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts +++ b/src/vs/workbench/contrib/telemetry/browser/telemetry.contribution.ts @@ -61,7 +61,7 @@ export class TelemetryContribution extends Disposable implements IWorkbenchContr ) { super(); - const { filesToOpenOrCreate, filesToDiff } = environmentService.configuration; + const { filesToOpenOrCreate, filesToDiff } = environmentService; const activeViewlet = paneCompositeService.getActivePaneComposite(ViewContainerLocation.Sidebar); type WindowSizeFragment = { diff --git a/src/vs/workbench/contrib/terminal/test/browser/terminalProfileService.test.ts b/src/vs/workbench/contrib/terminal/test/browser/terminalProfileService.test.ts index 53aab44a21a..5fb8a0c76ec 100644 --- a/src/vs/workbench/contrib/terminal/test/browser/terminalProfileService.test.ts +++ b/src/vs/workbench/contrib/terminal/test/browser/terminalProfileService.test.ts @@ -157,7 +157,7 @@ suite('TerminalProfileService', () => { remoteAgentService = new TestRemoteAgentService(); terminalInstanceService = new TestTerminalInstanceService(); extensionService = new TestTerminalExtensionService(); - environmentService = { configuration: {}, remoteAuthority: undefined } as IWorkbenchEnvironmentService; + environmentService = { remoteAuthority: undefined } as IWorkbenchEnvironmentService; instantiationService = new TestInstantiationService(); let themeService = new TestThemeService(); @@ -258,7 +258,7 @@ suite('TerminalProfileService', () => { }); test('should get profiles from remoteTerminalService when there is a remote authority', async () => { - environmentService = { configuration: {}, remoteAuthority: 'fakeremote' } as IWorkbenchEnvironmentService; + environmentService = { remoteAuthority: 'fakeremote' } as IWorkbenchEnvironmentService; instantiationService.stub(IWorkbenchEnvironmentService, environmentService); terminalProfileService = instantiationService.createInstance(TestTerminalProfileService); await terminalProfileService.hasRefreshedProfiles; diff --git a/src/vs/workbench/electron-sandbox/desktop.main.ts b/src/vs/workbench/electron-sandbox/desktop.main.ts index 70bfea47760..d6010d9d253 100644 --- a/src/vs/workbench/electron-sandbox/desktop.main.ts +++ b/src/vs/workbench/electron-sandbox/desktop.main.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import product from 'vs/platform/product/common/product'; -import { zoomLevelToZoomFactor } from 'vs/platform/windows/common/windows'; +import { INativeWindowConfiguration, zoomLevelToZoomFactor } from 'vs/platform/windows/common/windows'; import { Workbench } from 'vs/workbench/browser/workbench'; import { NativeWindow } from 'vs/workbench/electron-sandbox/window'; import { setZoomLevel, setZoomFactor, setFullscreen } from 'vs/base/browser/browser'; @@ -12,7 +12,7 @@ import { domContentLoaded } from 'vs/base/browser/dom'; import { onUnexpectedError } from 'vs/base/common/errors'; import { URI } from 'vs/base/common/uri'; import { WorkspaceService } from 'vs/workbench/services/configuration/browser/configurationService'; -import { INativeWorkbenchConfiguration, INativeWorkbenchEnvironmentService, NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; +import { INativeWorkbenchEnvironmentService, NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { isSingleFolderWorkspaceIdentifier, isWorkspaceIdentifier, IWorkspaceInitializationPayload, reviveIdentifier } from 'vs/platform/workspaces/common/workspaces'; import { ILoggerService, ILogService } from 'vs/platform/log/common/log'; @@ -55,7 +55,7 @@ import { FileUserDataProvider } from 'vs/platform/userData/common/fileUserDataPr export class DesktopMain extends Disposable { constructor( - private readonly configuration: INativeWorkbenchConfiguration + private readonly configuration: INativeWindowConfiguration ) { super(); @@ -174,11 +174,11 @@ export class DesktopMain extends Disposable { // Logger const logLevelChannelClient = new LogLevelChannelClient(mainProcessService.getChannel('logLevel')); - const loggerService = new LoggerChannelClient(environmentService.configuration.logLevel, logLevelChannelClient.onDidChangeLogLevel, mainProcessService.getChannel('logger')); + const loggerService = new LoggerChannelClient(this.configuration.logLevel, logLevelChannelClient.onDidChangeLogLevel, mainProcessService.getChannel('logger')); serviceCollection.set(ILoggerService, loggerService); // Log - const logService = this._register(new NativeLogService(`renderer${this.configuration.windowId}`, environmentService.configuration.logLevel, loggerService, logLevelChannelClient, environmentService)); + const logService = this._register(new NativeLogService(`renderer${this.configuration.windowId}`, this.configuration.logLevel, loggerService, logLevelChannelClient, environmentService)); serviceCollection.set(ILogService, logService); // Shared Process @@ -372,7 +372,7 @@ export class DesktopMain extends Disposable { } } -export function main(configuration: INativeWorkbenchConfiguration): Promise { +export function main(configuration: INativeWindowConfiguration): Promise { const workbench = new DesktopMain(configuration); return workbench.open(); diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts index 763c8d02384..60167bc3254 100644 --- a/src/vs/workbench/electron-sandbox/window.ts +++ b/src/vs/workbench/electron-sandbox/window.ts @@ -263,7 +263,7 @@ export class NativeWindow extends Disposable { this._register(this.editorService.onDidVisibleEditorsChange(() => this.onDidChangeVisibleEditors())); // Listen to editor closing (if we run with --wait) - const filesToWait = this.environmentService.configuration.filesToWait; + const filesToWait = this.environmentService.filesToWait; if (filesToWait) { this.trackClosedWaitFiles(filesToWait.waitMarkerFileUri, coalesce(filesToWait.paths.map(path => path.fileUri))); } @@ -310,7 +310,7 @@ export class NativeWindow extends Disposable { Event.map(Event.filter(this.nativeHostService.onDidUnmaximizeWindow, id => id === this.nativeHostService.windowId), () => false) )(e => this.onDidChangeWindowMaximized(e))); - this.onDidChangeWindowMaximized(this.environmentService.configuration.maximized ?? false); + this.onDidChangeWindowMaximized(this.environmentService.window.maximized ?? false); // Lifecycle this._register(this.lifecycleService.onBeforeShutdownError(e => this.onBeforeShutdownError(e))); diff --git a/src/vs/workbench/services/accessibility/electron-sandbox/accessibilityService.ts b/src/vs/workbench/services/accessibility/electron-sandbox/accessibilityService.ts index c3004ecaecb..11250faa762 100644 --- a/src/vs/workbench/services/accessibility/electron-sandbox/accessibilityService.ts +++ b/src/vs/workbench/services/accessibility/electron-sandbox/accessibilityService.ts @@ -37,7 +37,7 @@ export class NativeAccessibilityService extends AccessibilityService implements @INativeHostService private readonly nativeHostService: INativeHostService ) { super(contextKeyService, configurationService); - this.setAccessibilitySupport(environmentService.configuration.accessibilitySupport ? AccessibilitySupport.Enabled : AccessibilitySupport.Disabled); + this.setAccessibilitySupport(environmentService.window.accessibilitySupport ? AccessibilitySupport.Enabled : AccessibilitySupport.Disabled); } override async alwaysUnderlineAccessKeys(): Promise { diff --git a/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts b/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts index cd7dd738abb..9fdd805bf15 100644 --- a/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts +++ b/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts @@ -26,7 +26,7 @@ import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environ import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { TestEditorService, TestProductService, TestQuickInputService } from 'vs/workbench/test/browser/workbenchTestServices'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; -import { TestWorkbenchConfiguration } from 'vs/workbench/test/electron-browser/workbenchTestServices'; +import { TestNativeWindowConfiguration } from 'vs/workbench/test/electron-browser/workbenchTestServices'; const mockLineNumber = 10; class TestEditorServiceWithActiveEditor extends TestEditorService { @@ -746,6 +746,6 @@ class MockInputsConfigurationService extends TestConfigurationService { class MockWorkbenchEnvironmentService extends NativeWorkbenchEnvironmentService { constructor(public userEnv: platform.IProcessEnvironment) { - super({ ...TestWorkbenchConfiguration, userEnv }, TestProductService); + super({ ...TestNativeWindowConfiguration, userEnv }, TestProductService); } } diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts index 57afef9411c..3c8df7db731 100644 --- a/src/vs/workbench/services/environment/browser/environmentService.ts +++ b/src/vs/workbench/services/environment/browser/environmentService.ts @@ -6,9 +6,8 @@ import { Schemas } from 'vs/base/common/network'; import { joinPath } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; -import { generateUuid } from 'vs/base/common/uuid'; import { ExtensionKind, IEnvironmentService, IExtensionHostDebugParams } from 'vs/platform/environment/common/environment'; -import { IPath, IWindowConfiguration } from 'vs/platform/windows/common/windows'; +import { IPath } from 'vs/platform/windows/common/windows'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IWorkbenchConstructionOptions } from 'vs/workbench/browser/web.api'; import { IProductService } from 'vs/platform/product/common/productService'; @@ -33,83 +32,10 @@ export interface IBrowserWorkbenchEnvironmentService extends IWorkbenchEnvironme readonly options?: IWorkbenchConstructionOptions; } -class BrowserWorkbenchConfiguration implements IWindowConfiguration { - - constructor( - private readonly options: IWorkbenchConstructionOptions, - private readonly payload: Map | undefined - ) { } - - @memoize - get sessionId(): string { return generateUuid(); } - - @memoize - get remoteAuthority(): string | undefined { return this.options.remoteAuthority; } - - @memoize - get filesToOpenOrCreate(): IPath[] | undefined { - if (this.payload) { - const fileToOpen = this.payload.get('openFile'); - if (fileToOpen) { - const fileUri = URI.parse(fileToOpen); - - // Support: --goto parameter to open on line/col - if (this.payload.has('gotoLineMode')) { - const pathColumnAware = parseLineAndColumnAware(fileUri.path); - - return [{ - fileUri: fileUri.with({ path: pathColumnAware.path }), - selection: !isUndefined(pathColumnAware.line) ? { startLineNumber: pathColumnAware.line, startColumn: pathColumnAware.column || 1 } : undefined - }]; - } - - return [{ fileUri }]; - } - } - - return undefined; - } - - @memoize - get filesToDiff(): IPath[] | undefined { - if (this.payload) { - const fileToDiffPrimary = this.payload.get('diffFilePrimary'); - const fileToDiffSecondary = this.payload.get('diffFileSecondary'); - if (fileToDiffPrimary && fileToDiffSecondary) { - return [ - { fileUri: URI.parse(fileToDiffSecondary) }, - { fileUri: URI.parse(fileToDiffPrimary) } - ]; - } - } - - return undefined; - } -} - -interface IExtensionHostDebugEnvironment { - params: IExtensionHostDebugParams; - debugRenderer: boolean; - isExtensionDevelopment: boolean; - extensionDevelopmentLocationURI?: URI[]; - extensionDevelopmentKind?: ExtensionKind[]; - extensionTestsLocationURI?: URI; - extensionEnabledProposedApi?: string[]; -} - export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvironmentService { declare readonly _serviceBrand: undefined; - private _configuration: IWindowConfiguration | undefined = undefined; - get configuration(): IWindowConfiguration { - if (!this._configuration) { - this._configuration = new BrowserWorkbenchConfiguration(this.options, this.payload); - } - - return this._configuration; - } - @memoize get remoteAuthority(): string | undefined { return this.options.remoteAuthority; } @@ -177,65 +103,75 @@ export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvi @memoize get extHostLogsPath(): URI { return joinPath(this.logsHome, 'exthost'); } - private _extensionHostDebugEnvironment: IExtensionHostDebugEnvironment | undefined = undefined; + private extensionHostDebugEnvironment: IExtensionHostDebugEnvironment | undefined = undefined; + + @memoize get debugExtensionHost(): IExtensionHostDebugParams { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.params; + return this.extensionHostDebugEnvironment.params; } + @memoize get isExtensionDevelopment(): boolean { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.isExtensionDevelopment; + return this.extensionHostDebugEnvironment.isExtensionDevelopment; } + @memoize get extensionDevelopmentLocationURI(): URI[] | undefined { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.extensionDevelopmentLocationURI; + return this.extensionHostDebugEnvironment.extensionDevelopmentLocationURI; } + @memoize get extensionDevelopmentLocationKind(): ExtensionKind[] | undefined { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.extensionDevelopmentKind; + return this.extensionHostDebugEnvironment.extensionDevelopmentKind; } + @memoize get extensionTestsLocationURI(): URI | undefined { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.extensionTestsLocationURI; + return this.extensionHostDebugEnvironment.extensionTestsLocationURI; } + @memoize get extensionEnabledProposedApi(): string[] | undefined { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.extensionEnabledProposedApi; + return this.extensionHostDebugEnvironment.extensionEnabledProposedApi; } + @memoize get debugRenderer(): boolean { - if (!this._extensionHostDebugEnvironment) { - this._extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); + if (!this.extensionHostDebugEnvironment) { + this.extensionHostDebugEnvironment = this.resolveExtensionHostDebugEnvironment(); } - return this._extensionHostDebugEnvironment.debugRenderer; + return this.extensionHostDebugEnvironment.debugRenderer; } + @memoize get disableExtensions() { return this.payload?.get('disableExtensions') === 'true'; } + @memoize get enableExtensions() { return this.options.enabledExtensions; } @memoize @@ -252,12 +188,20 @@ export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvi @memoize get telemetryLogResource(): URI { return joinPath(this.logsHome, 'telemetry.log'); } + + @memoize get disableTelemetry(): boolean { return false; } + @memoize get verbose(): boolean { return this.payload?.get('verbose') === 'true'; } + + @memoize get logExtensionHostCommunication(): boolean { return this.payload?.get('logExtensionHostCommunication') === 'true'; } + @memoize get skipReleaseNotes(): boolean { return false; } + + @memoize get skipWelcome(): boolean { return this.payload?.get('skipWelcome') === 'true'; } @memoize @@ -335,6 +279,7 @@ export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvi extensionHostDebugEnvironment.extensionDevelopmentLocationURI = developmentOptions.extensions.map(e => URI.revive(e)); extensionHostDebugEnvironment.isExtensionDevelopment = true; } + if (developmentOptions.extensionTestsPath) { extensionHostDebugEnvironment.extensionTestsLocationURI = URI.revive(developmentOptions.extensionTestsPath); } @@ -342,4 +287,54 @@ export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvi return extensionHostDebugEnvironment; } + + @memoize + get filesToOpenOrCreate(): IPath[] | undefined { + if (this.payload) { + const fileToOpen = this.payload.get('openFile'); + if (fileToOpen) { + const fileUri = URI.parse(fileToOpen); + + // Support: --goto parameter to open on line/col + if (this.payload.has('gotoLineMode')) { + const pathColumnAware = parseLineAndColumnAware(fileUri.path); + + return [{ + fileUri: fileUri.with({ path: pathColumnAware.path }), + selection: !isUndefined(pathColumnAware.line) ? { startLineNumber: pathColumnAware.line, startColumn: pathColumnAware.column || 1 } : undefined + }]; + } + + return [{ fileUri }]; + } + } + + return undefined; + } + + @memoize + get filesToDiff(): IPath[] | undefined { + if (this.payload) { + const fileToDiffPrimary = this.payload.get('diffFilePrimary'); + const fileToDiffSecondary = this.payload.get('diffFileSecondary'); + if (fileToDiffPrimary && fileToDiffSecondary) { + return [ + { fileUri: URI.parse(fileToDiffSecondary) }, + { fileUri: URI.parse(fileToDiffPrimary) } + ]; + } + } + + return undefined; + } +} + +interface IExtensionHostDebugEnvironment { + params: IExtensionHostDebugParams; + debugRenderer: boolean; + isExtensionDevelopment: boolean; + extensionDevelopmentLocationURI?: URI[]; + extensionDevelopmentKind?: ExtensionKind[]; + extensionTestsLocationURI?: URI; + extensionEnabledProposedApi?: string[]; } diff --git a/src/vs/workbench/services/environment/common/environmentService.ts b/src/vs/workbench/services/environment/common/environmentService.ts index 22d905ca964..c012e27723d 100644 --- a/src/vs/workbench/services/environment/common/environmentService.ts +++ b/src/vs/workbench/services/environment/common/environmentService.ts @@ -4,14 +4,12 @@ *--------------------------------------------------------------------------------------------*/ import { refineServiceDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { IWindowConfiguration } from 'vs/platform/windows/common/windows'; +import { IPath } from 'vs/platform/windows/common/windows'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { URI } from 'vs/base/common/uri'; export const IWorkbenchEnvironmentService = refineServiceDecorator(IEnvironmentService); -export interface IWorkbenchConfiguration extends IWindowConfiguration { } - /** * A workbench specific environment service that is only present in workbench * layer. @@ -24,31 +22,27 @@ export interface IWorkbenchEnvironmentService extends IEnvironmentService { // ENVIRONMENT SERVICE // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - readonly remoteAuthority?: string; - + // --- Paths readonly logFile: URI; - readonly extHostLogsPath: URI; - readonly logExtensionHostCommunication?: boolean; + + // --- Extensions readonly extensionEnabledProposedApi?: string[]; - readonly webviewExternalEndpoint: string; - + // --- Config + readonly remoteAuthority?: string; readonly skipReleaseNotes: boolean; readonly skipWelcome: boolean; - - readonly debugRenderer: boolean; - readonly disableWorkspaceTrust: boolean; + readonly webviewExternalEndpoint: string; - /** - * @deprecated this property will go away eventually as it - * duplicates many properties of the environment service - * - * Please consider using the environment service directly - * if you can. - */ - readonly configuration: IWorkbenchConfiguration; + // --- Development + readonly debugRenderer: boolean; + readonly logExtensionHostCommunication?: boolean; + + // --- Editors to open + readonly filesToOpenOrCreate?: IPath[] | undefined + readonly filesToDiff?: IPath[] | undefined; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // NOTE: KEEP THIS INTERFACE AS SMALL AS POSSIBLE. AS SUCH: diff --git a/src/vs/workbench/services/environment/electron-sandbox/environmentService.ts b/src/vs/workbench/services/environment/electron-sandbox/environmentService.ts index a9bcfb8a68a..903f6dd7e0e 100644 --- a/src/vs/workbench/services/environment/electron-sandbox/environmentService.ts +++ b/src/vs/workbench/services/environment/electron-sandbox/environmentService.ts @@ -3,9 +3,9 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IWorkbenchConfiguration } from 'vs/workbench/services/environment/common/environmentService'; +import { PerformanceMark } from 'vs/base/common/performance'; import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; -import { INativeWindowConfiguration, IOSConfiguration } from 'vs/platform/windows/common/windows'; +import { IColorScheme, INativeWindowConfiguration, IOSConfiguration, IPath, IPathsToWaitFor } from 'vs/platform/windows/common/windows'; import { IEnvironmentService, INativeEnvironmentService } from 'vs/platform/environment/common/environment'; import { refineServiceDecorator } from 'vs/platform/instantiation/common/instantiation'; import { AbstractNativeEnvironmentService } from 'vs/platform/environment/common/environmentService'; @@ -17,37 +17,45 @@ import { IProductService } from 'vs/platform/product/common/productService'; export const INativeWorkbenchEnvironmentService = refineServiceDecorator(IEnvironmentService); -export interface INativeWorkbenchConfiguration extends IWorkbenchConfiguration, INativeWindowConfiguration { } - /** * A subclass of the `IWorkbenchEnvironmentService` to be used only in native * environments (Windows, Linux, macOS) but not e.g. web. */ export interface INativeWorkbenchEnvironmentService extends IBrowserWorkbenchEnvironmentService, INativeEnvironmentService { + // --- Window + readonly window: { + id: number; + colorScheme: IColorScheme; + maximized?: boolean; + accessibilitySupport?: boolean; + isInitialStartup?: boolean; + isCodeCaching?: boolean; + perfMarks: PerformanceMark[]; + }; + + // --- Main + readonly mainPid: number; + readonly os: IOSConfiguration; readonly machineId: string; + // --- Paths + readonly execPath: string; + readonly backupPath?: string; + + // --- Development readonly crashReporterDirectory?: string; readonly crashReporterId?: string; - readonly execPath: string; - - readonly log?: string; - - readonly os: IOSConfiguration; - - /** - * @deprecated this property will go away eventually as it - * duplicates many properties of the environment service - * - * Please consider using the environment service directly - * if you can. - */ - readonly configuration: INativeWorkbenchConfiguration; + // --- Editors to --wait + readonly filesToWait?: IPathsToWaitFor; } export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironmentService implements INativeWorkbenchEnvironmentService { + @memoize + get mainPid() { return this.configuration.mainPid; } + @memoize get machineId() { return this.configuration.machineId; } @@ -57,6 +65,22 @@ export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironment @memoize get execPath() { return this.configuration.execPath; } + @memoize + get backupPath() { return this.configuration.backupPath; } + + @memoize + get window() { + return { + id: this.configuration.windowId, + colorScheme: this.configuration.colorScheme, + maximized: this.configuration.maximized, + accessibilitySupport: this.configuration.accessibilitySupport, + perfMarks: this.configuration.perfMarks, + isInitialStartup: this.configuration.isInitialStartup, + isCodeCaching: typeof this.configuration.codeCachePath === 'string' + }; + } + @memoize override get userRoamingDataHome(): URI { return this.appSettingsHome.with({ scheme: Schemas.userData }); } @@ -91,12 +115,20 @@ export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironment return undefined; } - get os(): IOSConfiguration { - return this.configuration.os; - } + @memoize + get os(): IOSConfiguration { return this.configuration.os; } + + @memoize + get filesToOpenOrCreate(): IPath[] | undefined { return this.configuration.filesToOpenOrCreate; } + + @memoize + get filesToDiff(): IPath[] | undefined { return this.configuration.filesToDiff; } + + @memoize + get filesToWait(): IPathsToWaitFor | undefined { return this.configuration.filesToWait; } constructor( - readonly configuration: INativeWorkbenchConfiguration, + private readonly configuration: INativeWindowConfiguration, productService: IProductService ) { super(configuration, { homeDir: configuration.homeDir, tmpDir: configuration.tmpDir, userDataDir: configuration.userDataDir }, productService); diff --git a/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts b/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts index c83ccfb933b..e4927610b9c 100644 --- a/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts +++ b/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts @@ -73,7 +73,7 @@ export class TestExtensionEnablementService extends ExtensionEnablementService { storageService, new GlobalExtensionEnablementService(storageService, extensionManagementService), instantiationService.get(IWorkspaceContextService) || new TestContextService(), - instantiationService.get(IWorkbenchEnvironmentService) || instantiationService.stub(IWorkbenchEnvironmentService, { configuration: Object.create(null) } as IWorkbenchEnvironmentService), + instantiationService.get(IWorkbenchEnvironmentService) || instantiationService.stub(IWorkbenchEnvironmentService, {} as IWorkbenchEnvironmentService), workbenchExtensionManagementService, instantiationService.get(IConfigurationService), extensionManagementServerService, diff --git a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts index 210d6947613..7145fbeab36 100644 --- a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts @@ -220,8 +220,7 @@ export class LocalProcessExtensionHost implements IExtensionHost { VSCODE_LOG_NATIVE: this._isExtensionDevHost, VSCODE_IPC_HOOK_EXTHOST: pipeName, VSCODE_HANDLES_UNCAUGHT_ERRORS: true, - VSCODE_LOG_STACK: !this._isExtensionDevTestFromCli && (this._isExtensionDevHost || !this._environmentService.isBuilt || this._productService.quality !== 'stable' || this._environmentService.verbose), - VSCODE_LOG_LEVEL: this._environmentService.verbose ? 'trace' : this._environmentService.log + VSCODE_LOG_STACK: !this._isExtensionDevTestFromCli && (this._isExtensionDevHost || !this._environmentService.isBuilt || this._productService.quality !== 'stable' || this._environmentService.verbose) }); if (this._environmentService.debugExtensionHost.env) { diff --git a/src/vs/workbench/services/host/electron-sandbox/nativeHostService.ts b/src/vs/workbench/services/host/electron-sandbox/nativeHostService.ts index 227a1887a39..81576aadd15 100644 --- a/src/vs/workbench/services/host/electron-sandbox/nativeHostService.ts +++ b/src/vs/workbench/services/host/electron-sandbox/nativeHostService.ts @@ -21,7 +21,7 @@ class WorkbenchNativeHostService extends NativeHostService { @INativeWorkbenchEnvironmentService environmentService: INativeWorkbenchEnvironmentService, @IMainProcessService mainProcessService: IMainProcessService ) { - super(environmentService.configuration.windowId, mainProcessService); + super(environmentService.window.id, mainProcessService); } } diff --git a/src/vs/workbench/services/issue/electron-sandbox/issueService.ts b/src/vs/workbench/services/issue/electron-sandbox/issueService.ts index cf004784fe9..a317690769b 100644 --- a/src/vs/workbench/services/issue/electron-sandbox/issueService.ts +++ b/src/vs/workbench/services/issue/electron-sandbox/issueService.ts @@ -97,7 +97,7 @@ export class WorkbenchIssueService implements IWorkbenchIssueService { openProcessExplorer(): Promise { const theme = this.themeService.getColorTheme(); const data: ProcessExplorerData = { - pid: this.environmentService.configuration.mainPid, + pid: this.environmentService.mainPid, zoomLevel: getZoomLevel(), styles: { backgroundColor: getColor(theme, editorBackground), diff --git a/src/vs/workbench/services/themes/electron-sandbox/nativeHostColorSchemeService.ts b/src/vs/workbench/services/themes/electron-sandbox/nativeHostColorSchemeService.ts index 4bd56248c81..a60be414226 100644 --- a/src/vs/workbench/services/themes/electron-sandbox/nativeHostColorSchemeService.ts +++ b/src/vs/workbench/services/themes/electron-sandbox/nativeHostColorSchemeService.ts @@ -35,7 +35,7 @@ export class NativeHostColorSchemeService extends Disposable implements IHostCol // register listener with the OS this._register(this.nativeHostService.onDidChangeColorScheme(scheme => this.update(scheme))); - const initial = this.getStoredValue() ?? environmentService.configuration.colorScheme; + const initial = this.getStoredValue() ?? environmentService.window.colorScheme; this.dark = initial.dark; this.highContrast = initial.highContrast; diff --git a/src/vs/workbench/services/timer/electron-sandbox/timerService.ts b/src/vs/workbench/services/timer/electron-sandbox/timerService.ts index f051292eefb..19347cb694a 100644 --- a/src/vs/workbench/services/timer/electron-sandbox/timerService.ts +++ b/src/vs/workbench/services/timer/electron-sandbox/timerService.ts @@ -38,11 +38,11 @@ export class TimerService extends AbstractTimerService { @IStorageService private readonly _storageService: IStorageService ) { super(lifecycleService, contextService, extensionService, updateService, paneCompositeService, editorService, accessibilityService, telemetryService, layoutService); - this.setPerformanceMarks('main', _environmentService.configuration.perfMarks); + this.setPerformanceMarks('main', _environmentService.window.perfMarks); } protected _isInitialStartup(): boolean { - return Boolean(this._environmentService.configuration.isInitialStartup); + return Boolean(this._environmentService.window.isInitialStartup); } protected _didUseCachedData(): boolean { return didUseCachedData(this._productService, this._storageService, this._environmentService); @@ -97,7 +97,7 @@ export function didUseCachedData(productService: IProductService, storageService // this being the first start with the commit // or subsequent if (typeof _didUseCachedData !== 'boolean') { - if (!environmentService.configuration.codeCachePath || !productService.commit) { + if (!environmentService.window.isCodeCaching || !productService.commit) { _didUseCachedData = false; // we only produce cached data whith commit and code cache path } else if (storageService.get(lastRunningCommitStorageKey, StorageScope.GLOBAL) === productService.commit) { _didUseCachedData = true; // subsequent start on same commit, assume cached data is there diff --git a/src/vs/workbench/services/workingCopy/electron-sandbox/workingCopyBackupService.ts b/src/vs/workbench/services/workingCopy/electron-sandbox/workingCopyBackupService.ts index ee86a367485..d4c07c0f67a 100644 --- a/src/vs/workbench/services/workingCopy/electron-sandbox/workingCopyBackupService.ts +++ b/src/vs/workbench/services/workingCopy/electron-sandbox/workingCopyBackupService.ts @@ -23,7 +23,7 @@ export class NativeWorkingCopyBackupService extends WorkingCopyBackupService { @ILogService logService: ILogService, @ILifecycleService private readonly lifecycleService: ILifecycleService ) { - super(environmentService.configuration.backupPath ? URI.file(environmentService.configuration.backupPath).with({ scheme: environmentService.userRoamingDataHome.scheme }) : undefined, fileService, logService); + super(environmentService.backupPath ? URI.file(environmentService.backupPath).with({ scheme: environmentService.userRoamingDataHome.scheme }) : undefined, fileService, logService); this.registerListeners(); } diff --git a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts index e380d4d82c3..59ccdfb7205 100644 --- a/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts +++ b/src/vs/workbench/services/workingCopy/test/electron-browser/workingCopyBackupService.test.ts @@ -27,7 +27,7 @@ import { IFileService } from 'vs/platform/files/common/files'; import { NativeWorkingCopyBackupService } from 'vs/workbench/services/workingCopy/electron-sandbox/workingCopyBackupService'; import { FileUserDataProvider } from 'vs/platform/userData/common/fileUserDataProvider'; import { bufferToReadable, bufferToStream, streamToBuffer, VSBuffer, VSBufferReadable, VSBufferReadableStream } from 'vs/base/common/buffer'; -import { TestWorkbenchConfiguration } from 'vs/workbench/test/electron-browser/workbenchTestServices'; +import { TestNativeWindowConfiguration } from 'vs/workbench/test/electron-browser/workbenchTestServices'; import { TestLifecycleService, TestProductService, toTypedWorkingCopyId, toUntypedWorkingCopyId } from 'vs/workbench/test/browser/workbenchTestServices'; import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import { IWorkingCopyBackupMeta, IWorkingCopyIdentifier } from 'vs/workbench/services/workingCopy/common/workingCopy'; @@ -36,7 +36,7 @@ import { consumeStream } from 'vs/base/common/stream'; class TestWorkbenchEnvironmentService extends NativeWorkbenchEnvironmentService { constructor(testDir: string, backupPath: string) { - super({ ...TestWorkbenchConfiguration, backupPath, 'user-data-dir': testDir }, TestProductService); + super({ ...TestNativeWindowConfiguration, backupPath, 'user-data-dir': testDir }, TestProductService); } } diff --git a/src/vs/workbench/services/workspaces/common/workspaceTrust.ts b/src/vs/workbench/services/workspaces/common/workspaceTrust.ts index 77e979b89f9..118e5c1a0b9 100644 --- a/src/vs/workbench/services/workspaces/common/workspaceTrust.ts +++ b/src/vs/workbench/services/workspaces/common/workspaceTrust.ts @@ -215,12 +215,12 @@ export class WorkspaceTrustManagementService extends Disposable implements IWork private async resolveCanonicalUris(): Promise { // Open editors const filesToOpen: IPath[] = []; - if (this.environmentService.configuration.filesToOpenOrCreate) { - filesToOpen.push(...this.environmentService.configuration.filesToOpenOrCreate); + if (this.environmentService.filesToOpenOrCreate) { + filesToOpen.push(...this.environmentService.filesToOpenOrCreate); } - if (this.environmentService.configuration.filesToDiff) { - filesToOpen.push(...this.environmentService.configuration.filesToDiff); + if (this.environmentService.filesToDiff) { + filesToOpen.push(...this.environmentService.filesToDiff); } if (filesToOpen.length) { diff --git a/src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts b/src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts index db0640b5cfa..cb8808efc50 100644 --- a/src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts +++ b/src/vs/workbench/services/workspaces/test/common/workspaceTrust.test.ts @@ -35,7 +35,7 @@ suite('Workspace Trust', () => { configurationService = new TestConfigurationService(); instantiationService.stub(IConfigurationService, configurationService); - environmentService = { configuration: {} } as IWorkbenchEnvironmentService; + environmentService = {} as IWorkbenchEnvironmentService; instantiationService.stub(IWorkbenchEnvironmentService, environmentService); instantiationService.stub(IUriIdentityService, new UriIdentityService(new FileService(new NullLogService()))); @@ -111,7 +111,7 @@ suite('Workspace Trust', () => { const trustInfo: IWorkspaceTrustInfo = { uriTrustInfo: [{ uri: URI.parse('file:///Folder'), trusted: true }] }; storageService.store(WORKSPACE_TRUST_STORAGE_KEY, JSON.stringify(trustInfo), StorageScope.GLOBAL, StorageTarget.MACHINE); - environmentService.configuration.filesToOpenOrCreate = [{ fileUri: URI.parse('file:///Folder/file.txt') }]; + (environmentService as any).filesToOpenOrCreate = [{ fileUri: URI.parse('file:///Folder/file.txt') }]; instantiationService.stub(IWorkbenchEnvironmentService, { ...environmentService }); workspaceService.setWorkspace(new Workspace('empty-workspace')); @@ -123,7 +123,7 @@ suite('Workspace Trust', () => { test('empty workspace - trusted, open untrusted file', async () => { await configurationService.setUserConfiguration('security', getUserSettings(true, true)); - environmentService.configuration.filesToOpenOrCreate = [{ fileUri: URI.parse('file:///Folder/foo.txt') }]; + (environmentService as any).filesToOpenOrCreate = [{ fileUri: URI.parse('file:///Folder/foo.txt') }]; instantiationService.stub(IWorkbenchEnvironmentService, { ...environmentService }); workspaceService.setWorkspace(new Workspace('empty-workspace')); diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 531addb02a1..33ffd4f1b50 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -13,7 +13,7 @@ import { IUntitledTextEditorService } from 'vs/workbench/services/untitled/commo import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IModelService } from 'vs/editor/common/services/model'; -import { INativeWorkbenchConfiguration, INativeWorkbenchEnvironmentService, NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; +import { INativeWorkbenchEnvironmentService, NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { IDialogService, IFileDialogService, INativeOpenDialogOptions } from 'vs/platform/dialogs/common/dialogs'; import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { IProductService } from 'vs/platform/product/common/productService'; @@ -23,7 +23,7 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService import { URI } from 'vs/base/common/uri'; import { IReadTextFileOptions, ITextFileStreamContent, ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { createTextBufferFactoryFromStream } from 'vs/editor/common/model/textModel'; -import { IOpenEmptyWindowOptions, IWindowOpenable, IOpenWindowOptions, IOpenedWindow, IPartsSplash, IColorScheme } from 'vs/platform/windows/common/windows'; +import { IOpenEmptyWindowOptions, IWindowOpenable, IOpenWindowOptions, IOpenedWindow, IPartsSplash, IColorScheme, INativeWindowConfiguration } from 'vs/platform/windows/common/windows'; import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv'; import { LogLevel, ILogService } from 'vs/platform/log/common/log'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; @@ -50,7 +50,7 @@ import { DisposableStore } from 'vs/base/common/lifecycle'; const args = parseArgs(process.argv, OPTIONS); -export const TestWorkbenchConfiguration: INativeWorkbenchConfiguration = { +export const TestNativeWindowConfiguration: INativeWindowConfiguration = { windowId: 0, machineId: 'testMachineId', logLevel: LogLevel.Error, @@ -68,7 +68,7 @@ export const TestWorkbenchConfiguration: INativeWorkbenchConfiguration = { ...args }; -export const TestEnvironmentService = new NativeWorkbenchEnvironmentService(TestWorkbenchConfiguration, TestProductService); +export const TestEnvironmentService = new NativeWorkbenchEnvironmentService(TestNativeWindowConfiguration, TestProductService); export class TestTextFileService extends NativeTextFileService { private resolveTextContentError!: FileOperationError | null; From 1e5cda3d4203dc893a3e7e290df965d34a17b1f2 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 10:44:57 +0100 Subject: [PATCH 76/96] Move `viewModel` interfaces out of `/viewModel/` (#141174) --- src/vs/editor/browser/controller/coreCommands.ts | 4 ++-- src/vs/editor/browser/controller/mouseHandler.ts | 6 +++--- src/vs/editor/browser/controller/mouseTarget.ts | 4 ++-- src/vs/editor/browser/controller/pointerHandler.ts | 2 +- src/vs/editor/browser/controller/textAreaHandler.ts | 4 ++-- src/vs/editor/browser/editorBrowser.ts | 2 +- src/vs/editor/browser/view/dynamicViewOverlay.ts | 2 +- src/vs/editor/browser/view/renderingContext.ts | 2 +- src/vs/editor/browser/view/view.ts | 8 ++++---- src/vs/editor/browser/view/viewController.ts | 2 +- src/vs/editor/browser/view/viewLayer.ts | 2 +- src/vs/editor/browser/view/viewOverlays.ts | 4 ++-- src/vs/editor/browser/view/viewPart.ts | 4 ++-- src/vs/editor/browser/view/viewUserInputEvents.ts | 2 +- .../browser/viewParts/contentWidgets/contentWidgets.ts | 4 ++-- .../currentLineHighlight/currentLineHighlight.ts | 4 ++-- .../editor/browser/viewParts/decorations/decorations.ts | 6 +++--- .../browser/viewParts/editorScrollbar/editorScrollbar.ts | 4 ++-- .../editor/browser/viewParts/glyphMargin/glyphMargin.ts | 4 ++-- .../editor/browser/viewParts/indentGuides/indentGuides.ts | 4 ++-- .../editor/browser/viewParts/lineNumbers/lineNumbers.ts | 4 ++-- src/vs/editor/browser/viewParts/lines/viewLine.ts | 2 +- src/vs/editor/browser/viewParts/lines/viewLines.ts | 6 +++--- .../viewParts/linesDecorations/linesDecorations.ts | 4 ++-- src/vs/editor/browser/viewParts/margin/margin.ts | 4 ++-- .../viewParts/marginDecorations/marginDecorations.ts | 4 ++-- src/vs/editor/browser/viewParts/minimap/minimap.ts | 6 +++--- .../browser/viewParts/overlayWidgets/overlayWidgets.ts | 4 ++-- .../viewParts/overviewRuler/decorationsOverviewRuler.ts | 6 +++--- .../browser/viewParts/overviewRuler/overviewRuler.ts | 6 +++--- src/vs/editor/browser/viewParts/rulers/rulers.ts | 4 ++-- .../viewParts/scrollDecoration/scrollDecoration.ts | 4 ++-- src/vs/editor/browser/viewParts/selections/selections.ts | 4 ++-- src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts | 4 ++-- .../editor/browser/viewParts/viewCursors/viewCursors.ts | 4 ++-- src/vs/editor/browser/viewParts/viewZones/viewZones.ts | 6 +++--- src/vs/editor/browser/widget/codeEditorWidget.ts | 4 ++-- src/vs/editor/browser/widget/diffEditorWidget.ts | 2 +- src/vs/editor/browser/widget/diffReview.ts | 2 +- src/vs/editor/common/cursor/cursor.ts | 4 ++-- src/vs/editor/common/cursor/cursorCommon.ts | 2 +- src/vs/editor/common/cursor/cursorMoveCommands.ts | 2 +- src/vs/editor/common/{viewModel => }/viewContext.ts | 4 ++-- src/vs/editor/common/{viewModel => }/viewEventHandler.ts | 2 +- src/vs/editor/common/{viewModel => }/viewEvents.ts | 0 src/vs/editor/common/viewLayout/lineDecorations.ts | 2 +- src/vs/editor/common/viewLayout/linesLayout.ts | 2 +- src/vs/editor/common/viewLayout/viewLayout.ts | 2 +- src/vs/editor/common/viewLayout/viewLineRenderer.ts | 2 +- src/vs/editor/common/viewLayout/viewLinesViewportData.ts | 2 +- src/vs/editor/common/{viewModel => }/viewModel.ts | 6 +++--- src/vs/editor/common/viewModel/modelLineProjection.ts | 2 +- src/vs/editor/common/viewModel/viewModelDecorations.ts | 2 +- .../editor/common/viewModel/viewModelEventDispatcher.ts | 4 ++-- src/vs/editor/common/viewModel/viewModelImpl.ts | 8 ++++---- src/vs/editor/common/viewModel/viewModelLines.ts | 4 ++-- .../contrib/inlineCompletions/browser/ghostTextWidget.ts | 2 +- src/vs/editor/standalone/browser/colorizer.ts | 2 +- .../test/browser/viewModel/modelLineProjection.test.ts | 2 +- .../test/browser/viewModel/viewModelDecorations.test.ts | 2 +- .../editor/test/browser/viewModel/viewModelImpl.test.ts | 4 ++-- .../editor/test/common/viewLayout/lineDecorations.test.ts | 2 +- .../test/common/viewLayout/viewLineRenderer.test.ts | 2 +- 63 files changed, 110 insertions(+), 110 deletions(-) rename src/vs/editor/common/{viewModel => }/viewContext.ts (95%) rename src/vs/editor/common/{viewModel => }/viewEventHandler.ts (98%) rename src/vs/editor/common/{viewModel => }/viewEvents.ts (100%) rename src/vs/editor/common/{viewModel => }/viewModel.ts (98%) diff --git a/src/vs/editor/browser/controller/coreCommands.ts b/src/vs/editor/browser/controller/coreCommands.ts index 04f0b7359ee..f9f4cffc0c3 100644 --- a/src/vs/editor/browser/controller/coreCommands.ts +++ b/src/vs/editor/browser/controller/coreCommands.ts @@ -21,13 +21,13 @@ import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Handler, ScrollType } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; -import { VerticalRevealType } from 'vs/editor/common/viewModel/viewEvents'; +import { VerticalRevealType } from 'vs/editor/common/viewEvents'; import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight, KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel } from 'vs/editor/common/viewModel'; const CORE_WEIGHT = KeybindingWeight.EditorCore; diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts index 8a2279b4830..31236476096 100644 --- a/src/vs/editor/browser/controller/mouseHandler.ts +++ b/src/vs/editor/browser/controller/mouseHandler.ts @@ -16,9 +16,9 @@ import { EditorZoom } from 'vs/editor/common/config/editorZoom'; import { Position } from 'vs/editor/common/core/position'; import { Selection } from 'vs/editor/common/core/selection'; import { HorizontalPosition } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; /** diff --git a/src/vs/editor/browser/controller/mouseTarget.ts b/src/vs/editor/browser/controller/mouseTarget.ts index fe7424ed899..3a94365ba9e 100644 --- a/src/vs/editor/browser/controller/mouseTarget.ts +++ b/src/vs/editor/browser/controller/mouseTarget.ts @@ -13,8 +13,8 @@ import { EditorLayoutInfo, EditorOption } from 'vs/editor/common/config/editorOp import { Position } from 'vs/editor/common/core/position'; import { Range as EditorRange } from 'vs/editor/common/core/range'; import { HorizontalPosition } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import { IViewModel } from 'vs/editor/common/viewModel'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; import * as dom from 'vs/base/browser/dom'; import { AtomicTabMoveOperations, Direction } from 'vs/editor/common/cursor/cursorAtomicMoveOperations'; diff --git a/src/vs/editor/browser/controller/pointerHandler.ts b/src/vs/editor/browser/controller/pointerHandler.ts index 0fb7a0d6788..136fc4556ce 100644 --- a/src/vs/editor/browser/controller/pointerHandler.ts +++ b/src/vs/editor/browser/controller/pointerHandler.ts @@ -11,7 +11,7 @@ import { IPointerHandlerHelper, MouseHandler, createMouseMoveEventMerger } from import { IMouseTarget } from 'vs/editor/browser/editorBrowser'; import { EditorMouseEvent, EditorPointerEventFactory } from 'vs/editor/browser/editorDom'; import { ViewController } from 'vs/editor/browser/view/viewController'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; +import { ViewContext } from 'vs/editor/common/viewContext'; import { BrowserFeatures } from 'vs/base/browser/canIUse'; import { TextAreaSyntethicEvents } from 'vs/editor/browser/controller/textAreaInput'; diff --git a/src/vs/editor/browser/controller/textAreaHandler.ts b/src/vs/editor/browser/controller/textAreaHandler.ts index beee2daef1b..18ff0c24c85 100644 --- a/src/vs/editor/browser/controller/textAreaHandler.ts +++ b/src/vs/editor/browser/controller/textAreaHandler.ts @@ -26,8 +26,8 @@ import { Selection } from 'vs/editor/common/core/selection'; import { ScrollType } from 'vs/editor/common/editorCommon'; import { EndOfLinePreference } from 'vs/editor/common/model'; import { RenderingContext, RestrictedRenderingContext, HorizontalPosition } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility'; import { IEditorAriaOptions } from 'vs/editor/browser/editorBrowser'; import { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from 'vs/base/browser/ui/mouseCursor/mouseCursor'; diff --git a/src/vs/editor/browser/editorBrowser.ts b/src/vs/editor/browser/editorBrowser.ts index 0a06cc4b66c..afc237ad95e 100644 --- a/src/vs/editor/browser/editorBrowser.ts +++ b/src/vs/editor/browser/editorBrowser.ts @@ -18,7 +18,7 @@ import { IModelContentChangedEvent, IModelDecorationsChangedEvent, IModelLanguag import { OverviewRulerZone } from 'vs/editor/common/viewModel/overviewZoneManager'; import { IEditorWhitespace } from 'vs/editor/common/viewLayout/linesLayout'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel } from 'vs/editor/common/viewModel'; import { InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; import { IDiffComputationResult, ILineChange } from 'vs/editor/common/diff/diffComputer'; import { IDimension } from 'vs/editor/common/core/dimension'; diff --git a/src/vs/editor/browser/view/dynamicViewOverlay.ts b/src/vs/editor/browser/view/dynamicViewOverlay.ts index b275422216a..c8de7098816 100644 --- a/src/vs/editor/browser/view/dynamicViewOverlay.ts +++ b/src/vs/editor/browser/view/dynamicViewOverlay.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; export abstract class DynamicViewOverlay extends ViewEventHandler { diff --git a/src/vs/editor/browser/view/renderingContext.ts b/src/vs/editor/browser/view/renderingContext.ts index 22f0ffc9cda..bed244ba618 100644 --- a/src/vs/editor/browser/view/renderingContext.ts +++ b/src/vs/editor/browser/view/renderingContext.ts @@ -6,7 +6,7 @@ import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { IViewLayout, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { IViewLayout, ViewModelDecoration } from 'vs/editor/common/viewModel'; export interface IViewLines { linesVisibleRangesForRange(range: Range, includeNewLines: boolean): LineVisibleRanges[] | null; diff --git a/src/vs/editor/browser/view/view.ts b/src/vs/editor/browser/view/view.ts index 81583e1d517..7db798523a5 100644 --- a/src/vs/editor/browser/view/view.ts +++ b/src/vs/editor/browser/view/view.ts @@ -42,11 +42,11 @@ import { Range } from 'vs/editor/common/core/range'; import { ScrollType } from 'vs/editor/common/editorCommon'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; +import { IViewModel } from 'vs/editor/common/viewModel'; import { IThemeService, getThemeTypeSelector } from 'vs/platform/theme/common/themeService'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { PointerHandlerLastRenderData } from 'vs/editor/browser/controller/mouseTarget'; diff --git a/src/vs/editor/browser/view/viewController.ts b/src/vs/editor/browser/view/viewController.ts index 284810957a5..f13c8d08519 100644 --- a/src/vs/editor/browser/view/viewController.ts +++ b/src/vs/editor/browser/view/viewController.ts @@ -10,7 +10,7 @@ import { ViewUserInputEvents } from 'vs/editor/browser/view/viewUserInputEvents' import { Position } from 'vs/editor/common/core/position'; import { Selection } from 'vs/editor/common/core/selection'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel } from 'vs/editor/common/viewModel'; import { IMouseWheelEvent } from 'vs/base/browser/mouseEvent'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import * as platform from 'vs/base/common/platform'; diff --git a/src/vs/editor/browser/view/viewLayer.ts b/src/vs/editor/browser/view/viewLayer.ts index 56834a13afc..6403370d5c5 100644 --- a/src/vs/editor/browser/view/viewLayer.ts +++ b/src/vs/editor/browser/view/viewLayer.ts @@ -5,7 +5,7 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { IStringBuilder, createStringBuilder } from 'vs/editor/common/core/stringBuilder'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/view/viewOverlays.ts b/src/vs/editor/browser/view/viewOverlays.ts index aa9f47fe583..1d6b3dfcb6e 100644 --- a/src/vs/editor/browser/view/viewOverlays.ts +++ b/src/vs/editor/browser/view/viewOverlays.ts @@ -11,8 +11,8 @@ import { ViewPart } from 'vs/editor/browser/view/viewPart'; import { IStringBuilder } from 'vs/editor/common/core/stringBuilder'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/view/viewPart.ts b/src/vs/editor/browser/view/viewPart.ts index e967076b3cf..93bddf95c92 100644 --- a/src/vs/editor/browser/view/viewPart.ts +++ b/src/vs/editor/browser/view/viewPart.ts @@ -5,8 +5,8 @@ import { FastDomNode } from 'vs/base/browser/fastDomNode'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; export abstract class ViewPart extends ViewEventHandler { diff --git a/src/vs/editor/browser/view/viewUserInputEvents.ts b/src/vs/editor/browser/view/viewUserInputEvents.ts index 03d7e4ac35c..64df9a0859f 100644 --- a/src/vs/editor/browser/view/viewUserInputEvents.ts +++ b/src/vs/editor/browser/view/viewUserInputEvents.ts @@ -5,7 +5,7 @@ import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { IEditorMouseEvent, IMouseTarget, IPartialEditorMouseEvent } from 'vs/editor/browser/editorBrowser'; -import { ICoordinatesConverter } from 'vs/editor/common/viewModel/viewModel'; +import { ICoordinatesConverter } from 'vs/editor/common/viewModel'; import { IMouseWheelEvent } from 'vs/base/browser/mouseEvent'; export interface EventCallback { diff --git a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts index 7ce773a7a77..2099b4257fd 100644 --- a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts +++ b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts @@ -10,8 +10,8 @@ import { PartFingerprint, PartFingerprints, ViewPart } from 'vs/editor/browser/v import { IRange, Range } from 'vs/editor/common/core/range'; import { Constants } from 'vs/base/common/uint'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { IDimension } from 'vs/editor/common/core/dimension'; diff --git a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts index fe8dc86925c..6a5cbd24b74 100644 --- a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts +++ b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts @@ -7,8 +7,8 @@ import 'vs/css!./currentLineHighlight'; import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay'; import { editorLineHighlight, editorLineHighlightBorder } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import * as arrays from 'vs/base/common/arrays'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/browser/viewParts/decorations/decorations.ts b/src/vs/editor/browser/viewParts/decorations/decorations.ts index 5d7c686f400..47e554bda74 100644 --- a/src/vs/editor/browser/viewParts/decorations/decorations.ts +++ b/src/vs/editor/browser/viewParts/decorations/decorations.ts @@ -7,9 +7,9 @@ import 'vs/css!./decorations'; import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay'; import { Range } from 'vs/editor/common/core/range'; import { HorizontalRange, RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; -import { ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; +import { ViewModelDecoration } from 'vs/editor/common/viewModel'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; export class DecorationsOverlay extends DynamicViewOverlay { diff --git a/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.ts b/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.ts index fca359777b5..2ef5fc05be7 100644 --- a/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.ts +++ b/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.ts @@ -11,8 +11,8 @@ import { ScrollableElementChangeOptions, ScrollableElementCreationOptions } from import { PartFingerprint, PartFingerprints, ViewPart } from 'vs/editor/browser/view/viewPart'; import { INewScrollPosition, ScrollType } from 'vs/editor/common/editorCommon'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { registerThemingParticipant, getThemeTypeSelector } from 'vs/platform/theme/common/themeService'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground } from 'vs/platform/theme/common/colorRegistry'; diff --git a/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.ts b/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.ts index dba70108d26..9ef3fddf8ee 100644 --- a/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.ts +++ b/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.ts @@ -6,8 +6,8 @@ import 'vs/css!./glyphMargin'; import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts b/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts index ac6d263c022..84f39b044e1 100644 --- a/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts +++ b/src/vs/editor/browser/viewParts/indentGuides/indentGuides.ts @@ -7,8 +7,8 @@ import 'vs/css!./indentGuides'; import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay'; import { editorActiveIndentGuides, editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketPairGuideActiveBackground1, editorBracketPairGuideActiveBackground2, editorBracketPairGuideActiveBackground3, editorBracketPairGuideActiveBackground4, editorBracketPairGuideActiveBackground5, editorBracketPairGuideActiveBackground6, editorBracketPairGuideBackground1, editorBracketPairGuideBackground2, editorBracketPairGuideBackground3, editorBracketPairGuideBackground4, editorBracketPairGuideBackground5, editorBracketPairGuideBackground6, editorIndentGuides } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { EditorOption, InternalGuidesOptions } from 'vs/editor/common/config/editorOptions'; import { Position } from 'vs/editor/common/core/position'; diff --git a/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts b/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts index 01adc941a4c..bc152b48622 100644 --- a/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts +++ b/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.ts @@ -10,8 +10,8 @@ import { RenderLineNumbersType, EditorOption } from 'vs/editor/common/config/edi import { Position } from 'vs/editor/common/core/position'; import { editorActiveLineNumber, editorLineNumbers } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; export class LineNumbersOverlay extends DynamicViewOverlay { diff --git a/src/vs/editor/browser/viewParts/lines/viewLine.ts b/src/vs/editor/browser/viewParts/lines/viewLine.ts index 307d8927ffd..5caa7b7bb7e 100644 --- a/src/vs/editor/browser/viewParts/lines/viewLine.ts +++ b/src/vs/editor/browser/viewParts/lines/viewLine.ts @@ -14,7 +14,7 @@ import { FloatHorizontalRange, VisibleRanges } from 'vs/editor/browser/view/rend import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations'; import { CharacterMapping, ForeignElementType, RenderLineInput, renderViewLine, LineRange, DomPosition } from 'vs/editor/common/viewLayout/viewLineRenderer'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecorationType } from 'vs/editor/common/viewModel'; import { ColorScheme } from 'vs/platform/theme/common/theme'; import { EditorOption, EditorFontLigatures } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/lines/viewLines.ts b/src/vs/editor/browser/viewParts/lines/viewLines.ts index 036d55e7621..524694fd628 100644 --- a/src/vs/editor/browser/viewParts/lines/viewLines.ts +++ b/src/vs/editor/browser/viewParts/lines/viewLines.ts @@ -16,10 +16,10 @@ import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; import { ScrollType } from 'vs/editor/common/editorCommon'; import { IViewLines, LineVisibleRanges, VisibleRanges, HorizontalPosition, HorizontalRange } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { ViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { Viewport } from 'vs/editor/common/viewModel/viewModel'; +import { Viewport } from 'vs/editor/common/viewModel'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { Constants } from 'vs/base/common/uint'; import { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from 'vs/base/browser/ui/mouseCursor/mouseCursor'; diff --git a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts index d8de0727cc4..8a6a434f6f5 100644 --- a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts +++ b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts @@ -6,8 +6,8 @@ import 'vs/css!./linesDecorations'; import { DecorationToRender, DedupOverlay } from 'vs/editor/browser/viewParts/glyphMargin/glyphMargin'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/margin/margin.ts b/src/vs/editor/browser/viewParts/margin/margin.ts index 0c48e7631fa..4bf62e009ff 100644 --- a/src/vs/editor/browser/viewParts/margin/margin.ts +++ b/src/vs/editor/browser/viewParts/margin/margin.ts @@ -6,8 +6,8 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { ViewPart } from 'vs/editor/browser/view/viewPart'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.ts b/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.ts index 4a090e922d2..3e5107ccbad 100644 --- a/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.ts +++ b/src/vs/editor/browser/viewParts/marginDecorations/marginDecorations.ts @@ -6,8 +6,8 @@ import 'vs/css!./marginDecorations'; import { DecorationToRender, DedupOverlay } from 'vs/editor/browser/viewParts/glyphMargin/glyphMargin'; import { RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; export class MarginViewLineDecorationsOverlay extends DedupOverlay { private readonly _context: ViewContext; diff --git a/src/vs/editor/browser/viewParts/minimap/minimap.ts b/src/vs/editor/browser/viewParts/minimap/minimap.ts index 2ab0a7f7cbb..63b0dfed9af 100644 --- a/src/vs/editor/browser/viewParts/minimap/minimap.ts +++ b/src/vs/editor/browser/viewParts/minimap/minimap.ts @@ -23,9 +23,9 @@ import { MinimapCharRenderer } from 'vs/editor/browser/viewParts/minimap/minimap import { Constants } from 'vs/editor/browser/viewParts/minimap/minimapCharSheet'; import { MinimapTokensColorTracker } from 'vs/editor/common/viewModel/minimapTokensColorTracker'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext, EditorTheme } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; -import { ViewLineData, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { ViewContext, EditorTheme } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; +import { ViewLineData, ViewModelDecoration } from 'vs/editor/common/viewModel'; import { minimapSelection, scrollbarShadow, minimapBackground, minimapSliderBackground, minimapSliderHoverBackground, minimapSliderActiveBackground, minimapForegroundOpacity } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { ModelDecorationMinimapOptions } from 'vs/editor/common/model/textModel'; diff --git a/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts b/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts index acc9e5b770d..7b2450fbdf2 100644 --- a/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts +++ b/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts @@ -8,8 +8,8 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { IOverlayWidget, OverlayWidgetPositionPreference } from 'vs/editor/browser/editorBrowser'; import { PartFingerprint, PartFingerprints, ViewPart } from 'vs/editor/browser/view/viewPart'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts index ffb992a600f..a547082dcd2 100644 --- a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts +++ b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts @@ -12,10 +12,10 @@ import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguratio import { TokenizationRegistry } from 'vs/editor/common/languages'; import { editorCursorForeground, editorOverviewRulerBorder, editorOverviewRulerBackground } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext, EditorTheme } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext, EditorTheme } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { OverviewRulerDecorationsGroup } from 'vs/editor/common/viewModel/viewModel'; +import { OverviewRulerDecorationsGroup } from 'vs/editor/common/viewModel'; class Settings { diff --git a/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts index ed352796425..dceaed9fc57 100644 --- a/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts +++ b/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.ts @@ -7,9 +7,9 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { IOverviewRuler } from 'vs/editor/browser/editorBrowser'; import { OverviewRulerPosition, EditorOption } from 'vs/editor/common/config/editorOptions'; import { ColorZone, OverviewRulerZone, OverviewZoneManager } from 'vs/editor/common/viewModel/overviewZoneManager'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; export class OverviewRuler extends ViewEventHandler implements IOverviewRuler { diff --git a/src/vs/editor/browser/viewParts/rulers/rulers.ts b/src/vs/editor/browser/viewParts/rulers/rulers.ts index f891f1e4c1b..432858a9aa8 100644 --- a/src/vs/editor/browser/viewParts/rulers/rulers.ts +++ b/src/vs/editor/browser/viewParts/rulers/rulers.ts @@ -8,8 +8,8 @@ import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { ViewPart } from 'vs/editor/browser/view/viewPart'; import { editorRuler } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { EditorOption, IRulerOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts b/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts index 65801c93000..e30630be0bd 100644 --- a/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts +++ b/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.ts @@ -7,8 +7,8 @@ import 'vs/css!./scrollDecoration'; import { FastDomNode, createFastDomNode } from 'vs/base/browser/fastDomNode'; import { ViewPart } from 'vs/editor/browser/view/viewPart'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { scrollbarShadow } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/selections/selections.ts b/src/vs/editor/browser/viewParts/selections/selections.ts index fae4837bd85..1882f5a2e20 100644 --- a/src/vs/editor/browser/viewParts/selections/selections.ts +++ b/src/vs/editor/browser/viewParts/selections/selections.ts @@ -7,8 +7,8 @@ import 'vs/css!./selections'; import { DynamicViewOverlay } from 'vs/editor/browser/view/dynamicViewOverlay'; import { Range } from 'vs/editor/common/core/range'; import { HorizontalRange, LineVisibleRanges, RenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { editorInactiveSelection, editorSelectionBackground, editorSelectionForeground } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts b/src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts index c53663c2206..2026ddfbd1d 100644 --- a/src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts +++ b/src/vs/editor/browser/viewParts/viewCursors/viewCursor.ts @@ -11,8 +11,8 @@ import { TextEditorCursorStyle, EditorOption } from 'vs/editor/common/config/edi import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from 'vs/base/browser/ui/mouseCursor/mouseCursor'; export interface IViewCursorRenderData { diff --git a/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts b/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts index 5fcfef530dd..03545df7eb8 100644 --- a/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts +++ b/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts @@ -12,8 +12,8 @@ import { TextEditorCursorBlinkingStyle, TextEditorCursorStyle, EditorOption } fr import { Position } from 'vs/editor/common/core/position'; import { editorCursorBackground, editorCursorForeground } from 'vs/editor/common/core/editorColorRegistry'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; export class ViewCursors extends ViewPart { diff --git a/src/vs/editor/browser/viewParts/viewZones/viewZones.ts b/src/vs/editor/browser/viewParts/viewZones/viewZones.ts index f0bc58b958a..53dbf999eb6 100644 --- a/src/vs/editor/browser/viewParts/viewZones/viewZones.ts +++ b/src/vs/editor/browser/viewParts/viewZones/viewZones.ts @@ -9,9 +9,9 @@ import { IViewZone, IViewZoneChangeAccessor } from 'vs/editor/browser/editorBrow import { ViewPart } from 'vs/editor/browser/view/viewPart'; import { Position } from 'vs/editor/common/core/position'; import { RenderingContext, RestrictedRenderingContext } from 'vs/editor/browser/view/renderingContext'; -import { ViewContext } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; -import { IViewWhitespaceViewportData } from 'vs/editor/common/viewModel/viewModel'; +import { ViewContext } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; +import { IViewWhitespaceViewportData } from 'vs/editor/common/viewModel'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { IWhitespaceChangeAccessor, IEditorWhitespace } from 'vs/editor/common/viewLayout/linesLayout'; diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index 68b2ff7dbeb..e9649a1f0ae 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -41,7 +41,7 @@ import { IModelContentChangedEvent, IModelDecorationsChangedEvent, IModelLanguag import * as modes from 'vs/editor/common/languages'; import { editorUnnecessaryCodeBorder, editorUnnecessaryCodeOpacity } from 'vs/editor/common/core/editorColorRegistry'; import { editorErrorBorder, editorErrorForeground, editorHintBorder, editorHintForeground, editorInfoBorder, editorInfoForeground, editorWarningBorder, editorWarningForeground, editorForeground, editorErrorBackground, editorInfoBackground, editorWarningBackground } from 'vs/platform/theme/common/colorRegistry'; -import { VerticalRevealType } from 'vs/editor/common/viewModel/viewEvents'; +import { VerticalRevealType } from 'vs/editor/common/viewEvents'; import { IEditorWhitespace } from 'vs/editor/common/viewLayout/linesLayout'; import { ViewModel } from 'vs/editor/common/viewModel/viewModelImpl'; import { ICommandService } from 'vs/platform/commands/common/commands'; @@ -55,7 +55,7 @@ import { withNullAsUndefined } from 'vs/base/common/types'; import { MonospaceLineBreaksComputerFactory } from 'vs/editor/common/viewModel/monospaceLineBreaksComputer'; import { DOMLineBreaksComputerFactory } from 'vs/editor/browser/view/domLineBreaksComputer'; import { WordOperations } from 'vs/editor/common/cursor/cursorWordOperations'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel } from 'vs/editor/common/viewModel'; import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { applyFontInfo } from 'vs/editor/browser/config/domFontInfo'; diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 6845b809361..0a8fcf0581c 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -32,7 +32,7 @@ import { OverviewRulerZone } from 'vs/editor/common/viewModel/overviewZoneManage import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations'; import { RenderLineInput, renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; import { IEditorWhitespace } from 'vs/editor/common/viewLayout/linesLayout'; -import { InlineDecoration, InlineDecorationType, IViewModel, ViewLineRenderingData } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecoration, InlineDecorationType, IViewModel, ViewLineRenderingData } from 'vs/editor/common/viewModel'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; diff --git a/src/vs/editor/browser/widget/diffReview.ts b/src/vs/editor/browser/widget/diffReview.ts index 727ea81ce87..6df41826c91 100644 --- a/src/vs/editor/browser/widget/diffReview.ts +++ b/src/vs/editor/browser/widget/diffReview.ts @@ -24,7 +24,7 @@ import { ScrollType } from 'vs/editor/common/editorCommon'; import { ITextModel, TextModelResolvedOptions } from 'vs/editor/common/model'; import { editorLineNumbers } from 'vs/editor/common/core/editorColorRegistry'; import { RenderLineInput, renderViewLine2 as renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; -import { ViewLineRenderingData } from 'vs/editor/common/viewModel/viewModel'; +import { ViewLineRenderingData } from 'vs/editor/common/viewModel'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { scrollbarShadow } from 'vs/platform/theme/common/colorRegistry'; diff --git a/src/vs/editor/common/cursor/cursor.ts b/src/vs/editor/common/cursor/cursor.ts index 9e51d2864bd..a49b7bb54c9 100644 --- a/src/vs/editor/common/cursor/cursor.ts +++ b/src/vs/editor/common/cursor/cursor.ts @@ -16,9 +16,9 @@ import { ISelection, Selection, SelectionDirection } from 'vs/editor/common/core import * as editorCommon from 'vs/editor/common/editorCommon'; import { ITextModel, TrackedRangeStickiness, IModelDeltaDecoration, ICursorStateComputer, IIdentifiedSingleEditOperation, IValidEditOperation } from 'vs/editor/common/model'; import { RawContentChangedType, ModelRawContentChangedEvent, ModelInjectedTextChangedEvent } from 'vs/editor/common/textModelEvents'; -import { VerticalRevealType, ViewCursorStateChangedEvent, ViewRevealRangeRequestEvent } from 'vs/editor/common/viewModel/viewEvents'; +import { VerticalRevealType, ViewCursorStateChangedEvent, ViewRevealRangeRequestEvent } from 'vs/editor/common/viewEvents'; import { dispose, Disposable } from 'vs/base/common/lifecycle'; -import { ICoordinatesConverter } from 'vs/editor/common/viewModel/viewModel'; +import { ICoordinatesConverter } from 'vs/editor/common/viewModel'; import { CursorStateChangedEvent, ViewModelEventsCollector } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; export class CursorsController extends Disposable { diff --git a/src/vs/editor/common/cursor/cursorCommon.ts b/src/vs/editor/common/cursor/cursorCommon.ts index 3626ea64f7c..f002f50e7a5 100644 --- a/src/vs/editor/common/cursor/cursorCommon.ts +++ b/src/vs/editor/common/cursor/cursorCommon.ts @@ -16,7 +16,7 @@ import { AutoClosingPairs } from 'vs/editor/common/languages/languageConfigurati import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { createScopedLineTokens } from 'vs/editor/common/languages/supports'; import { IElectricAction } from 'vs/editor/common/languages/supports/electricCharacter'; -import { ICoordinatesConverter } from 'vs/editor/common/viewModel/viewModel'; +import { ICoordinatesConverter } from 'vs/editor/common/viewModel'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; export interface IColumnSelectData { diff --git a/src/vs/editor/common/cursor/cursorMoveCommands.ts b/src/vs/editor/common/cursor/cursorMoveCommands.ts index 3ac0aa83ec1..e5c26d7c836 100644 --- a/src/vs/editor/common/cursor/cursorMoveCommands.ts +++ b/src/vs/editor/common/cursor/cursorMoveCommands.ts @@ -10,7 +10,7 @@ import { WordOperations } from 'vs/editor/common/cursor/cursorWordOperations'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; -import { IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel } from 'vs/editor/common/viewModel'; export class CursorMoveCommands { diff --git a/src/vs/editor/common/viewModel/viewContext.ts b/src/vs/editor/common/viewContext.ts similarity index 95% rename from src/vs/editor/common/viewModel/viewContext.ts rename to src/vs/editor/common/viewContext.ts index 77c5eb030d7..97168d7d0b0 100644 --- a/src/vs/editor/common/viewModel/viewContext.ts +++ b/src/vs/editor/common/viewContext.ts @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; -import { IViewLayout, IViewModel } from 'vs/editor/common/viewModel/viewModel'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; +import { IViewLayout, IViewModel } from 'vs/editor/common/viewModel'; import { IColorTheme } from 'vs/platform/theme/common/themeService'; import { ColorIdentifier } from 'vs/platform/theme/common/colorRegistry'; import { Color } from 'vs/base/common/color'; diff --git a/src/vs/editor/common/viewModel/viewEventHandler.ts b/src/vs/editor/common/viewEventHandler.ts similarity index 98% rename from src/vs/editor/common/viewModel/viewEventHandler.ts rename to src/vs/editor/common/viewEventHandler.ts index 887de545148..a80b59c50ea 100644 --- a/src/vs/editor/common/viewModel/viewEventHandler.ts +++ b/src/vs/editor/common/viewEventHandler.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Disposable } from 'vs/base/common/lifecycle'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import * as viewEvents from 'vs/editor/common/viewEvents'; export class ViewEventHandler extends Disposable { diff --git a/src/vs/editor/common/viewModel/viewEvents.ts b/src/vs/editor/common/viewEvents.ts similarity index 100% rename from src/vs/editor/common/viewModel/viewEvents.ts rename to src/vs/editor/common/viewEvents.ts diff --git a/src/vs/editor/common/viewLayout/lineDecorations.ts b/src/vs/editor/common/viewLayout/lineDecorations.ts index eb5c869bc29..36519fa2875 100644 --- a/src/vs/editor/common/viewLayout/lineDecorations.ts +++ b/src/vs/editor/common/viewLayout/lineDecorations.ts @@ -5,7 +5,7 @@ import * as strings from 'vs/base/common/strings'; import { Constants } from 'vs/base/common/uint'; -import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel'; import { LinePartMetadata } from 'vs/editor/common/viewLayout/viewLineRenderer'; export class LineDecoration { diff --git a/src/vs/editor/common/viewLayout/linesLayout.ts b/src/vs/editor/common/viewLayout/linesLayout.ts index 0bfc77d4cfb..0a4aba4a916 100644 --- a/src/vs/editor/common/viewLayout/linesLayout.ts +++ b/src/vs/editor/common/viewLayout/linesLayout.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IPartialViewLinesViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { IViewWhitespaceViewportData } from 'vs/editor/common/viewModel/viewModel'; +import { IViewWhitespaceViewportData } from 'vs/editor/common/viewModel'; import * as strings from 'vs/base/common/strings'; export interface IEditorWhitespace { diff --git a/src/vs/editor/common/viewLayout/viewLayout.ts b/src/vs/editor/common/viewLayout/viewLayout.ts index d49ecffa0c4..1e6da20022d 100644 --- a/src/vs/editor/common/viewLayout/viewLayout.ts +++ b/src/vs/editor/common/viewLayout/viewLayout.ts @@ -11,7 +11,7 @@ import { ScrollType } from 'vs/editor/common/editorCommon'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; import { LinesLayout, IEditorWhitespace, IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { IPartialViewLinesViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { IViewLayout, IViewWhitespaceViewportData, Viewport } from 'vs/editor/common/viewModel/viewModel'; +import { IViewLayout, IViewWhitespaceViewportData, Viewport } from 'vs/editor/common/viewModel'; import { ContentSizeChangedEvent } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; const SMOOTH_SCROLLING_TIME = 125; diff --git a/src/vs/editor/common/viewLayout/viewLineRenderer.ts b/src/vs/editor/common/viewLayout/viewLineRenderer.ts index 609d0aa455d..03de5d9989c 100644 --- a/src/vs/editor/common/viewLayout/viewLineRenderer.ts +++ b/src/vs/editor/common/viewLayout/viewLineRenderer.ts @@ -8,7 +8,7 @@ import * as strings from 'vs/base/common/strings'; import { IViewLineTokens } from 'vs/editor/common/tokens/lineTokens'; import { IStringBuilder, createStringBuilder } from 'vs/editor/common/core/stringBuilder'; import { LineDecoration, LineDecorationsNormalizer } from 'vs/editor/common/viewLayout/lineDecorations'; -import { InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecorationType } from 'vs/editor/common/viewModel'; export const enum RenderWhitespace { None = 0, diff --git a/src/vs/editor/common/viewLayout/viewLinesViewportData.ts b/src/vs/editor/common/viewLayout/viewLinesViewportData.ts index 9a1771f236c..b9f75e0aaf2 100644 --- a/src/vs/editor/common/viewLayout/viewLinesViewportData.ts +++ b/src/vs/editor/common/viewLayout/viewLinesViewportData.ts @@ -5,7 +5,7 @@ import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { IViewModel, IViewWhitespaceViewportData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { IViewModel, IViewWhitespaceViewportData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel'; export interface IPartialViewLinesViewportData { /** diff --git a/src/vs/editor/common/viewModel/viewModel.ts b/src/vs/editor/common/viewModel.ts similarity index 98% rename from src/vs/editor/common/viewModel/viewModel.ts rename to src/vs/editor/common/viewModel.ts index af4f5cde3e6..bf379da2f73 100644 --- a/src/vs/editor/common/viewModel/viewModel.ts +++ b/src/vs/editor/common/viewModel.ts @@ -13,12 +13,12 @@ import { IRange, Range } from 'vs/editor/common/core/range'; import { INewScrollPosition, ScrollType } from 'vs/editor/common/editorCommon'; import { EndOfLinePreference, IModelDecorationOptions, ITextModel, PositionAffinity, TextModelResolvedOptions } from 'vs/editor/common/model'; import { BracketGuideOptions, IActiveIndentGuideInfo, IndentGuide } from 'vs/editor/common/textModelGuides'; -import { EditorTheme } from 'vs/editor/common/viewModel/viewContext'; -import { VerticalRevealType } from 'vs/editor/common/viewModel/viewEvents'; +import { EditorTheme } from 'vs/editor/common/viewContext'; +import { VerticalRevealType } from 'vs/editor/common/viewEvents'; import { IEditorWhitespace, IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { IPartialViewLinesViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; import { ILineBreaksComputer, InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; export interface IViewModel extends ICursorSimpleModel { diff --git a/src/vs/editor/common/viewModel/modelLineProjection.ts b/src/vs/editor/common/viewModel/modelLineProjection.ts index 7f5db8fa253..94845f4fd00 100644 --- a/src/vs/editor/common/viewModel/modelLineProjection.ts +++ b/src/vs/editor/common/viewModel/modelLineProjection.ts @@ -9,7 +9,7 @@ import { IRange } from 'vs/editor/common/core/range'; import { EndOfLinePreference, ITextModel, PositionAffinity } from 'vs/editor/common/model'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; import { InjectedText, ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; -import { SingleLineInlineDecoration, ViewLineData } from 'vs/editor/common/viewModel/viewModel'; +import { SingleLineInlineDecoration, ViewLineData } from 'vs/editor/common/viewModel'; export interface IModelLineProjection { isVisible(): boolean; diff --git a/src/vs/editor/common/viewModel/viewModelDecorations.ts b/src/vs/editor/common/viewModel/viewModelDecorations.ts index b4fa2165d34..efaa25f58c1 100644 --- a/src/vs/editor/common/viewModel/viewModelDecorations.ts +++ b/src/vs/editor/common/viewModel/viewModelDecorations.ts @@ -9,7 +9,7 @@ import { Range } from 'vs/editor/common/core/range'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; import { IModelDecoration, ITextModel, PositionAffinity } from 'vs/editor/common/model'; import { IViewModelLines } from 'vs/editor/common/viewModel/viewModelLines'; -import { ICoordinatesConverter, InlineDecoration, InlineDecorationType, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { ICoordinatesConverter, InlineDecoration, InlineDecorationType, ViewModelDecoration } from 'vs/editor/common/viewModel'; import { filterValidationDecorations } from 'vs/editor/common/config/editorOptions'; import { StandardTokenType } from 'vs/editor/common/languages'; diff --git a/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts b/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts index fa9eaffa8af..b32b416d2da 100644 --- a/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts +++ b/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts @@ -3,8 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; -import { ViewEvent } from 'vs/editor/common/viewModel/viewEvents'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; +import { ViewEvent } from 'vs/editor/common/viewEvents'; import { IContentSizeChangedEvent } from 'vs/editor/common/editorCommon'; import { Emitter } from 'vs/base/common/event'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/common/viewModel/viewModelImpl.ts b/src/vs/editor/common/viewModel/viewModelImpl.ts index b9abb294c3a..ca05e08928f 100644 --- a/src/vs/editor/common/viewModel/viewModelImpl.ts +++ b/src/vs/editor/common/viewModel/viewModelImpl.ts @@ -27,14 +27,14 @@ import { ColorId, TokenizationRegistry } from 'vs/editor/common/languages'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; import { tokenizeLineToHTML } from 'vs/editor/common/languages/textToHtmlTokenizer'; -import { EditorTheme } from 'vs/editor/common/viewModel/viewContext'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import { EditorTheme } from 'vs/editor/common/viewContext'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { ViewLayout } from 'vs/editor/common/viewLayout/viewLayout'; import { MinimapTokensColorTracker } from 'vs/editor/common/viewModel/minimapTokensColorTracker'; import { ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; -import { ICoordinatesConverter, IViewModel, MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel/viewModel'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; +import { ICoordinatesConverter, IViewModel, MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel'; import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations'; import { FocusChangedEvent, OutgoingViewModelEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewModelEventsCollector, ViewZonesChangedEvent } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; import { IViewModelLines, ViewModelLinesFromModelAsIs, ViewModelLinesFromProjectedModel } from 'vs/editor/common/viewModel/viewModelLines'; diff --git a/src/vs/editor/common/viewModel/viewModelLines.ts b/src/vs/editor/common/viewModel/viewModelLines.ts index dac779e41b2..1850fe5cda3 100644 --- a/src/vs/editor/common/viewModel/viewModelLines.ts +++ b/src/vs/editor/common/viewModel/viewModelLines.ts @@ -13,11 +13,11 @@ import { IModelDecoration, IModelDeltaDecoration, ITextModel, PositionAffinity } import { IActiveIndentGuideInfo, BracketGuideOptions, IndentGuide, IndentGuideHorizontalLine } from 'vs/editor/common/textModelGuides'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; -import * as viewEvents from 'vs/editor/common/viewModel/viewEvents'; +import * as viewEvents from 'vs/editor/common/viewEvents'; import { createModelLineProjection, IModelLineProjection } from 'vs/editor/common/viewModel/modelLineProjection'; import { ILineBreaksComputer, ModelLineProjectionData, InjectedText, ILineBreaksComputerFactory } from 'vs/editor/common/viewModel/modelLineProjectionData'; import { ConstantTimePrefixSumComputer } from 'vs/editor/common/model/prefixSumComputer'; -import { ICoordinatesConverter, ViewLineData } from 'vs/editor/common/viewModel/viewModel'; +import { ICoordinatesConverter, ViewLineData } from 'vs/editor/common/viewModel'; export interface IViewModelLines extends IDisposable { createCoordinatesConverter(): ICoordinatesConverter; diff --git a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts index f2dc47aca8d..91dc63c7f10 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts @@ -20,7 +20,7 @@ import { ILanguageService } from 'vs/editor/common/services/language'; import { ghostTextBackground, ghostTextBorder, ghostTextForeground } from 'vs/editor/common/core/editorColorRegistry'; import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations'; import { RenderLineInput, renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; -import { InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecorationType } from 'vs/editor/common/viewModel'; import { GhostTextWidgetModel } from 'vs/editor/contrib/inlineCompletions/browser/ghostText'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; diff --git a/src/vs/editor/standalone/browser/colorizer.ts b/src/vs/editor/standalone/browser/colorizer.ts index f2f01d2b8d8..1f4b81ddf4b 100644 --- a/src/vs/editor/standalone/browser/colorizer.ts +++ b/src/vs/editor/standalone/browser/colorizer.ts @@ -9,7 +9,7 @@ import { ITextModel } from 'vs/editor/common/model'; import { ColorId, FontStyle, ILanguageIdCodec, ITokenizationSupport, MetadataConsts, TokenizationRegistry } from 'vs/editor/common/languages'; import { ILanguageService } from 'vs/editor/common/services/language'; import { RenderLineInput, renderViewLine2 as renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; -import { ViewLineRenderingData } from 'vs/editor/common/viewModel/viewModel'; +import { ViewLineRenderingData } from 'vs/editor/common/viewModel'; import { IStandaloneThemeService } from 'vs/editor/standalone/common/standaloneTheme'; import { MonarchTokenizer } from 'vs/editor/standalone/common/monarch/monarchLexer'; diff --git a/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts b/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts index 3145c42da29..0e94a497e1b 100644 --- a/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts +++ b/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts @@ -14,7 +14,7 @@ import * as modes from 'vs/editor/common/languages'; import { NullState } from 'vs/editor/common/languages/nullMode'; import { MonospaceLineBreaksComputerFactory } from 'vs/editor/common/viewModel/monospaceLineBreaksComputer'; import { ViewModelLinesFromProjectedModel } from 'vs/editor/common/viewModel/viewModelLines'; -import { ViewLineData } from 'vs/editor/common/viewModel/viewModel'; +import { ViewLineData } from 'vs/editor/common/viewModel'; import { TestConfiguration } from 'vs/editor/test/browser/config/testConfiguration'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { createTextModel } from 'vs/editor/test/common/testTextModel'; diff --git a/src/vs/editor/test/browser/viewModel/viewModelDecorations.test.ts b/src/vs/editor/test/browser/viewModel/viewModelDecorations.test.ts index a5942b1148d..0b203e82672 100644 --- a/src/vs/editor/test/browser/viewModel/viewModelDecorations.test.ts +++ b/src/vs/editor/test/browser/viewModel/viewModelDecorations.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; import { Range } from 'vs/editor/common/core/range'; -import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel'; import { testViewModel } from 'vs/editor/test/browser/viewModel/testViewModel'; suite('ViewModelDecorations', () => { diff --git a/src/vs/editor/test/browser/viewModel/viewModelImpl.test.ts b/src/vs/editor/test/browser/viewModel/viewModelImpl.test.ts index 752c3c3c325..9505b838e06 100644 --- a/src/vs/editor/test/browser/viewModel/viewModelImpl.test.ts +++ b/src/vs/editor/test/browser/viewModel/viewModelImpl.test.ts @@ -7,8 +7,8 @@ import * as assert from 'assert'; import { Range } from 'vs/editor/common/core/range'; import { EndOfLineSequence, PositionAffinity } from 'vs/editor/common/model'; import { testViewModel } from 'vs/editor/test/browser/viewModel/testViewModel'; -import { ViewEventHandler } from 'vs/editor/common/viewModel/viewEventHandler'; -import { ViewEvent } from 'vs/editor/common/viewModel/viewEvents'; +import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; +import { ViewEvent } from 'vs/editor/common/viewEvents'; import { Position } from 'vs/editor/common/core/position'; suite('ViewModel', () => { diff --git a/src/vs/editor/test/common/viewLayout/lineDecorations.test.ts b/src/vs/editor/test/common/viewLayout/lineDecorations.test.ts index 9ced21b60ff..7acf0b75f3f 100644 --- a/src/vs/editor/test/common/viewLayout/lineDecorations.test.ts +++ b/src/vs/editor/test/common/viewLayout/lineDecorations.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import { Range } from 'vs/editor/common/core/range'; import { DecorationSegment, LineDecoration, LineDecorationsNormalizer } from 'vs/editor/common/viewLayout/lineDecorations'; -import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecoration, InlineDecorationType } from 'vs/editor/common/viewModel'; suite('Editor ViewLayout - ViewLineParts', () => { diff --git a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts index 6b0447ac768..320574897a1 100644 --- a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts +++ b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts @@ -10,7 +10,7 @@ import { IViewLineTokens } from 'vs/editor/common/tokens/lineTokens'; import { MetadataConsts } from 'vs/editor/common/languages'; import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations'; import { CharacterMapping, RenderLineInput, renderViewLine2 as renderViewLine, LineRange, DomPosition } from 'vs/editor/common/viewLayout/viewLineRenderer'; -import { InlineDecorationType } from 'vs/editor/common/viewModel/viewModel'; +import { InlineDecorationType } from 'vs/editor/common/viewModel'; import { TestLineToken, TestLineTokens } from 'vs/editor/test/common/core/testLineToken'; function createViewLineTokens(viewLineTokens: TestLineToken[]): IViewLineTokens { From 1289a28691fd8cfb1833b533238614b9d190ab18 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 10:46:48 +0100 Subject: [PATCH 77/96] Move `modelLineProjectionData` out of `/viewModel/` (#141174) --- src/vs/editor/browser/controller/mouseTarget.ts | 2 +- src/vs/editor/browser/editorBrowser.ts | 2 +- src/vs/editor/browser/view/domLineBreaksComputer.ts | 2 +- src/vs/editor/browser/widget/diffEditorWidget.ts | 2 +- src/vs/editor/common/{viewModel => }/modelLineProjectionData.ts | 0 src/vs/editor/common/viewModel.ts | 2 +- src/vs/editor/common/viewModel/modelLineProjection.ts | 2 +- src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts | 2 +- src/vs/editor/common/viewModel/viewModelImpl.ts | 2 +- src/vs/editor/common/viewModel/viewModelLines.ts | 2 +- .../editor/test/browser/viewModel/modelLineProjection.test.ts | 2 +- src/vs/editor/test/common/viewModel/lineBreakData.test.ts | 2 +- .../test/common/viewModel/monospaceLineBreaksComputer.test.ts | 2 +- 13 files changed, 12 insertions(+), 12 deletions(-) rename src/vs/editor/common/{viewModel => }/modelLineProjectionData.ts (100%) diff --git a/src/vs/editor/browser/controller/mouseTarget.ts b/src/vs/editor/browser/controller/mouseTarget.ts index 3a94365ba9e..3bc10b8866d 100644 --- a/src/vs/editor/browser/controller/mouseTarget.ts +++ b/src/vs/editor/browser/controller/mouseTarget.ts @@ -19,7 +19,7 @@ import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; import * as dom from 'vs/base/browser/dom'; import { AtomicTabMoveOperations, Direction } from 'vs/editor/common/cursor/cursorAtomicMoveOperations'; import { PositionAffinity } from 'vs/editor/common/model'; -import { InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { InjectedText } from 'vs/editor/common/modelLineProjectionData'; const enum HitTestResultType { Unknown, diff --git a/src/vs/editor/browser/editorBrowser.ts b/src/vs/editor/browser/editorBrowser.ts index afc237ad95e..9799585120c 100644 --- a/src/vs/editor/browser/editorBrowser.ts +++ b/src/vs/editor/browser/editorBrowser.ts @@ -19,7 +19,7 @@ import { OverviewRulerZone } from 'vs/editor/common/viewModel/overviewZoneManage import { IEditorWhitespace } from 'vs/editor/common/viewLayout/linesLayout'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IViewModel } from 'vs/editor/common/viewModel'; -import { InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { IDiffComputationResult, ILineChange } from 'vs/editor/common/diff/diffComputer'; import { IDimension } from 'vs/editor/common/core/dimension'; diff --git a/src/vs/editor/browser/view/domLineBreaksComputer.ts b/src/vs/editor/browser/view/domLineBreaksComputer.ts index deecde0edee..bd281d1e9cb 100644 --- a/src/vs/editor/browser/view/domLineBreaksComputer.ts +++ b/src/vs/editor/browser/view/domLineBreaksComputer.ts @@ -11,7 +11,7 @@ import * as strings from 'vs/base/common/strings'; import { applyFontInfo } from 'vs/editor/browser/config/domFontInfo'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; import { InjectedTextOptions } from 'vs/editor/common/model'; -import { ILineBreaksComputer, ILineBreaksComputerFactory, ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputer, ILineBreaksComputerFactory, ModelLineProjectionData } from 'vs/editor/common/modelLineProjectionData'; const ttPolicy = window.trustedTypes?.createPolicy('domLineBreaksComputer', { createHTML: value => value }); diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 0a8fcf0581c..5b18244244b 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -52,7 +52,7 @@ import { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from 'vs/base/browser/ui/mouseCursor import { IViewLineTokens } from 'vs/editor/common/tokens/lineTokens'; import { FontInfo } from 'vs/editor/common/config/fontInfo'; import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; -import { ILineBreaksComputer } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputer } from 'vs/editor/common/modelLineProjectionData'; import { IChange, IDiffComputationResult, ILineChange } from 'vs/editor/common/diff/diffComputer'; import { IEditorConstructionOptions } from 'vs/editor/browser/config/editorConfiguration'; import { IDimension } from 'vs/editor/common/core/dimension'; diff --git a/src/vs/editor/common/viewModel/modelLineProjectionData.ts b/src/vs/editor/common/modelLineProjectionData.ts similarity index 100% rename from src/vs/editor/common/viewModel/modelLineProjectionData.ts rename to src/vs/editor/common/modelLineProjectionData.ts diff --git a/src/vs/editor/common/viewModel.ts b/src/vs/editor/common/viewModel.ts index bf379da2f73..15b77f36a5b 100644 --- a/src/vs/editor/common/viewModel.ts +++ b/src/vs/editor/common/viewModel.ts @@ -17,7 +17,7 @@ import { EditorTheme } from 'vs/editor/common/viewContext'; import { VerticalRevealType } from 'vs/editor/common/viewEvents'; import { IEditorWhitespace, IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { IPartialViewLinesViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; -import { ILineBreaksComputer, InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputer, InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; export interface IViewModel extends ICursorSimpleModel { diff --git a/src/vs/editor/common/viewModel/modelLineProjection.ts b/src/vs/editor/common/viewModel/modelLineProjection.ts index 94845f4fd00..8a2380d3b74 100644 --- a/src/vs/editor/common/viewModel/modelLineProjection.ts +++ b/src/vs/editor/common/viewModel/modelLineProjection.ts @@ -8,7 +8,7 @@ import { Position } from 'vs/editor/common/core/position'; import { IRange } from 'vs/editor/common/core/range'; import { EndOfLinePreference, ITextModel, PositionAffinity } from 'vs/editor/common/model'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; -import { InjectedText, ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { InjectedText, ModelLineProjectionData } from 'vs/editor/common/modelLineProjectionData'; import { SingleLineInlineDecoration, ViewLineData } from 'vs/editor/common/viewModel'; export interface IModelLineProjection { diff --git a/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts b/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts index 04e074e40eb..f61919b4ceb 100644 --- a/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts +++ b/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts @@ -10,7 +10,7 @@ import { CharacterClassifier } from 'vs/editor/common/core/characterClassifier'; import { FontInfo } from 'vs/editor/common/config/fontInfo'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; import { InjectedTextOptions } from 'vs/editor/common/model'; -import { ILineBreaksComputerFactory, ILineBreaksComputer, ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputerFactory, ILineBreaksComputer, ModelLineProjectionData } from 'vs/editor/common/modelLineProjectionData'; export class MonospaceLineBreaksComputerFactory implements ILineBreaksComputerFactory { public static create(options: IComputedEditorOptions): MonospaceLineBreaksComputerFactory { diff --git a/src/vs/editor/common/viewModel/viewModelImpl.ts b/src/vs/editor/common/viewModel/viewModelImpl.ts index ca05e08928f..ff33c24402e 100644 --- a/src/vs/editor/common/viewModel/viewModelImpl.ts +++ b/src/vs/editor/common/viewModel/viewModelImpl.ts @@ -32,7 +32,7 @@ import * as viewEvents from 'vs/editor/common/viewEvents'; import { IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { ViewLayout } from 'vs/editor/common/viewLayout/viewLayout'; import { MinimapTokensColorTracker } from 'vs/editor/common/viewModel/minimapTokensColorTracker'; -import { ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; import { ICoordinatesConverter, IViewModel, MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel'; import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations'; diff --git a/src/vs/editor/common/viewModel/viewModelLines.ts b/src/vs/editor/common/viewModel/viewModelLines.ts index 1850fe5cda3..40a2ac24644 100644 --- a/src/vs/editor/common/viewModel/viewModelLines.ts +++ b/src/vs/editor/common/viewModel/viewModelLines.ts @@ -15,7 +15,7 @@ import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { LineInjectedText } from 'vs/editor/common/textModelEvents'; import * as viewEvents from 'vs/editor/common/viewEvents'; import { createModelLineProjection, IModelLineProjection } from 'vs/editor/common/viewModel/modelLineProjection'; -import { ILineBreaksComputer, ModelLineProjectionData, InjectedText, ILineBreaksComputerFactory } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ILineBreaksComputer, ModelLineProjectionData, InjectedText, ILineBreaksComputerFactory } from 'vs/editor/common/modelLineProjectionData'; import { ConstantTimePrefixSumComputer } from 'vs/editor/common/model/prefixSumComputer'; import { ICoordinatesConverter, ViewLineData } from 'vs/editor/common/viewModel'; diff --git a/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts b/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts index 0e94a497e1b..175002a38d7 100644 --- a/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts +++ b/src/vs/editor/test/browser/viewModel/modelLineProjection.test.ts @@ -19,7 +19,7 @@ import { TestConfiguration } from 'vs/editor/test/browser/config/testConfigurati import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { createTextModel } from 'vs/editor/test/common/testTextModel'; import { ISimpleModel, IModelLineProjection, createModelLineProjection } from 'vs/editor/common/viewModel/modelLineProjection'; -import { ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ModelLineProjectionData } from 'vs/editor/common/modelLineProjectionData'; suite('Editor ViewModel - SplitLinesCollection', () => { test('SplitLine', () => { diff --git a/src/vs/editor/test/common/viewModel/lineBreakData.test.ts b/src/vs/editor/test/common/viewModel/lineBreakData.test.ts index 6ff5c565287..9b2715c1c23 100644 --- a/src/vs/editor/test/common/viewModel/lineBreakData.test.ts +++ b/src/vs/editor/test/common/viewModel/lineBreakData.test.ts @@ -6,7 +6,7 @@ import assert = require('assert'); import { PositionAffinity } from 'vs/editor/common/model'; import { ModelDecorationInjectedTextOptions } from 'vs/editor/common/model/textModel'; -import { ModelLineProjectionData } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ModelLineProjectionData } from 'vs/editor/common/modelLineProjectionData'; suite('Editor ViewModel - LineBreakData', () => { test('Basic', () => { diff --git a/src/vs/editor/test/common/viewModel/monospaceLineBreaksComputer.test.ts b/src/vs/editor/test/common/viewModel/monospaceLineBreaksComputer.test.ts index 8eed821c53f..d9e03ef6012 100644 --- a/src/vs/editor/test/common/viewModel/monospaceLineBreaksComputer.test.ts +++ b/src/vs/editor/test/common/viewModel/monospaceLineBreaksComputer.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import { WrappingIndent, EditorOptions } from 'vs/editor/common/config/editorOptions'; import { MonospaceLineBreaksComputerFactory } from 'vs/editor/common/viewModel/monospaceLineBreaksComputer'; import { FontInfo } from 'vs/editor/common/config/fontInfo'; -import { ModelLineProjectionData, ILineBreaksComputerFactory } from 'vs/editor/common/viewModel/modelLineProjectionData'; +import { ModelLineProjectionData, ILineBreaksComputerFactory } from 'vs/editor/common/modelLineProjectionData'; function parseAnnotatedText(annotatedText: string): { text: string; indices: number[]; } { let text = ''; From 7a0a293b38c353cd9773316a022d8f926d481715 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 11:33:58 +0100 Subject: [PATCH 78/96] Move more interfaces up to `editor/common/` (#141174) --- build/monaco/monaco.d.ts.recipe | 2 +- src/vs/editor/browser/controller/coreCommands.ts | 4 ++-- src/vs/editor/browser/editorBrowser.ts | 2 +- src/vs/editor/browser/widget/codeEditorWidget.ts | 4 ++-- src/vs/editor/browser/widget/diffNavigator.ts | 2 +- src/vs/editor/common/cursor/cursor.ts | 6 +++--- src/vs/editor/common/cursor/cursorCollection.ts | 2 +- src/vs/editor/common/cursor/cursorColumnSelection.ts | 2 +- src/vs/editor/common/cursor/cursorDeleteOperations.ts | 2 +- src/vs/editor/common/cursor/cursorMoveCommands.ts | 2 +- src/vs/editor/common/cursor/cursorMoveOperations.ts | 2 +- src/vs/editor/common/cursor/cursorTypeOperations.ts | 2 +- src/vs/editor/common/cursor/cursorWordOperations.ts | 2 +- src/vs/editor/common/cursor/oneCursor.ts | 2 +- src/vs/editor/common/{cursor => }/cursorCommon.ts | 0 src/vs/editor/common/{cursor => }/cursorEvents.ts | 0 src/vs/editor/common/viewLayout/viewLayout.ts | 2 +- src/vs/editor/common/viewModel.ts | 4 ++-- src/vs/editor/common/viewModel/viewModelImpl.ts | 6 +++--- .../common/{viewModel => }/viewModelEventDispatcher.ts | 2 +- src/vs/editor/contrib/dnd/browser/dnd.ts | 2 +- src/vs/editor/contrib/find/browser/findModel.ts | 2 +- .../contrib/gotoSymbol/browser/link/clickLinkGesture.ts | 2 +- .../editor/contrib/lineSelection/browser/lineSelection.ts | 2 +- src/vs/editor/contrib/multicursor/browser/multicursor.ts | 4 ++-- .../contrib/parameterHints/browser/parameterHintsModel.ts | 2 +- src/vs/editor/contrib/suggest/browser/suggestModel.ts | 2 +- .../contrib/wordHighlighter/browser/wordHighlighter.ts | 2 +- .../editor/contrib/wordOperations/browser/wordOperations.ts | 4 ++-- src/vs/editor/test/browser/controller/cursor.test.ts | 2 +- src/vs/workbench/browser/codeeditor.ts | 2 +- .../codeEditor/electron-sandbox/selectionClipboard.ts | 2 +- src/vs/workbench/contrib/output/browser/outputView.ts | 2 +- .../contrib/preferences/browser/preferencesRenderers.ts | 2 +- src/vs/workbench/services/history/browser/history.ts | 2 +- 35 files changed, 42 insertions(+), 42 deletions(-) rename src/vs/editor/common/{cursor => }/cursorCommon.ts (100%) rename src/vs/editor/common/{cursor => }/cursorEvents.ts (100%) rename src/vs/editor/common/{viewModel => }/viewModelEventDispatcher.ts (99%) diff --git a/build/monaco/monaco.d.ts.recipe b/build/monaco/monaco.d.ts.recipe index 887a44f2ef2..4c43340eee3 100644 --- a/build/monaco/monaco.d.ts.recipe +++ b/build/monaco/monaco.d.ts.recipe @@ -76,7 +76,7 @@ export interface ICommandHandler { #include(vs/editor/common/core/dimension): IDimension #includeAll(vs/editor/common/editorCommon): IScrollEvent #includeAll(vs/editor/common/textModelEvents): -#includeAll(vs/editor/common/cursor/cursorEvents): +#includeAll(vs/editor/common/cursorEvents): #include(vs/platform/accessibility/common/accessibility): AccessibilitySupport #includeAll(vs/editor/common/config/editorOptions): #include(vs/editor/browser/config/editorConfiguration): IEditorConstructionOptions diff --git a/src/vs/editor/browser/controller/coreCommands.ts b/src/vs/editor/browser/controller/coreCommands.ts index f9f4cffc0c3..2b1b74033ff 100644 --- a/src/vs/editor/browser/controller/coreCommands.ts +++ b/src/vs/editor/browser/controller/coreCommands.ts @@ -12,9 +12,9 @@ import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { Command, EditorCommand, ICommandOptions, registerEditorCommand, MultiCommand, UndoCommand, RedoCommand, SelectAllCommand } from 'vs/editor/browser/editorExtensions'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { ColumnSelection, IColumnSelectResult } from 'vs/editor/common/cursor/cursorColumnSelection'; -import { CursorState, EditOperationType, IColumnSelectData, PartialCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorState, EditOperationType, IColumnSelectData, PartialCursorState } from 'vs/editor/common/cursorCommon'; import { DeleteOperations } from 'vs/editor/common/cursor/cursorDeleteOperations'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { CursorMove as CursorMove_, CursorMoveCommands } from 'vs/editor/common/cursor/cursorMoveCommands'; import { TypeOperations } from 'vs/editor/common/cursor/cursorTypeOperations'; import { Position } from 'vs/editor/common/core/position'; diff --git a/src/vs/editor/browser/editorBrowser.ts b/src/vs/editor/browser/editorBrowser.ts index 9799585120c..c1d89789a83 100644 --- a/src/vs/editor/browser/editorBrowser.ts +++ b/src/vs/editor/browser/editorBrowser.ts @@ -7,7 +7,7 @@ import { Event } from 'vs/base/common/event'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { IMouseEvent, IMouseWheelEvent } from 'vs/base/browser/mouseEvent'; import { OverviewRulerPosition, ConfigurationChangedEvent, EditorLayoutInfo, IComputedEditorOptions, EditorOption, FindComputedEditorOptionValueById, IEditorOptions, IDiffEditorOptions } from 'vs/editor/common/config/editorOptions'; -import { ICursorPositionChangedEvent, ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorPositionChangedEvent, ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index e9649a1f0ae..9be2a4b34a9 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -26,7 +26,7 @@ import { ViewUserInputEvents } from 'vs/editor/browser/view/viewUserInputEvents' import { ConfigurationChangedEvent, EditorLayoutInfo, IEditorOptions, EditorOption, IComputedEditorOptions, FindComputedEditorOptionValueById, filterValidationDecorations } from 'vs/editor/common/config/editorOptions'; import { CursorsController } from 'vs/editor/common/cursor/cursor'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; -import { CursorChangeReason, ICursorPositionChangedEvent, ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason, ICursorPositionChangedEvent, ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { ISelection, Selection } from 'vs/editor/common/core/selection'; @@ -56,7 +56,7 @@ import { MonospaceLineBreaksComputerFactory } from 'vs/editor/common/viewModel/m import { DOMLineBreaksComputerFactory } from 'vs/editor/browser/view/domLineBreaksComputer'; import { WordOperations } from 'vs/editor/common/cursor/cursorWordOperations'; import { IViewModel } from 'vs/editor/common/viewModel'; -import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; +import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModelEventDispatcher'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { applyFontInfo } from 'vs/editor/browser/config/domFontInfo'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; diff --git a/src/vs/editor/browser/widget/diffNavigator.ts b/src/vs/editor/browser/widget/diffNavigator.ts index e7cddd97295..525c143d10e 100644 --- a/src/vs/editor/browser/widget/diffNavigator.ts +++ b/src/vs/editor/browser/widget/diffNavigator.ts @@ -8,7 +8,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import * as objects from 'vs/base/common/objects'; import { IDiffEditor } from 'vs/editor/browser/editorBrowser'; -import { ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { Range } from 'vs/editor/common/core/range'; import { ILineChange } from 'vs/editor/common/diff/diffComputer'; import { ScrollType } from 'vs/editor/common/editorCommon'; diff --git a/src/vs/editor/common/cursor/cursor.ts b/src/vs/editor/common/cursor/cursor.ts index a49b7bb54c9..10eee4f01fa 100644 --- a/src/vs/editor/common/cursor/cursor.ts +++ b/src/vs/editor/common/cursor/cursor.ts @@ -6,9 +6,9 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import * as strings from 'vs/base/common/strings'; import { CursorCollection } from 'vs/editor/common/cursor/cursorCollection'; -import { CursorConfiguration, CursorContext, CursorState, EditOperationResult, EditOperationType, IColumnSelectData, PartialCursorState, ICursorSimpleModel } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, CursorContext, CursorState, EditOperationResult, EditOperationType, IColumnSelectData, PartialCursorState, ICursorSimpleModel } from 'vs/editor/common/cursorCommon'; import { DeleteOperations } from 'vs/editor/common/cursor/cursorDeleteOperations'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { TypeOperations, TypeWithAutoClosingCommand } from 'vs/editor/common/cursor/cursorTypeOperations'; import { Position } from 'vs/editor/common/core/position'; import { Range, IRange } from 'vs/editor/common/core/range'; @@ -19,7 +19,7 @@ import { RawContentChangedType, ModelRawContentChangedEvent, ModelInjectedTextCh import { VerticalRevealType, ViewCursorStateChangedEvent, ViewRevealRangeRequestEvent } from 'vs/editor/common/viewEvents'; import { dispose, Disposable } from 'vs/base/common/lifecycle'; import { ICoordinatesConverter } from 'vs/editor/common/viewModel'; -import { CursorStateChangedEvent, ViewModelEventsCollector } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; +import { CursorStateChangedEvent, ViewModelEventsCollector } from 'vs/editor/common/viewModelEventDispatcher'; export class CursorsController extends Disposable { diff --git a/src/vs/editor/common/cursor/cursorCollection.ts b/src/vs/editor/common/cursor/cursorCollection.ts index 2ce0e442e05..7f3f196a9a8 100644 --- a/src/vs/editor/common/cursor/cursorCollection.ts +++ b/src/vs/editor/common/cursor/cursorCollection.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { compareBy, findLastMaxBy, findMinBy } from 'vs/base/common/arrays'; -import { CursorContext, CursorState, PartialCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorContext, CursorState, PartialCursorState } from 'vs/editor/common/cursorCommon'; import { Cursor } from 'vs/editor/common/cursor/oneCursor'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/editor/common/cursor/cursorColumnSelection.ts b/src/vs/editor/common/cursor/cursorColumnSelection.ts index 765c925dce8..65602ceb1fe 100644 --- a/src/vs/editor/common/cursor/cursorColumnSelection.ts +++ b/src/vs/editor/common/cursor/cursorColumnSelection.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CursorConfiguration, ICursorSimpleModel, SingleCursorState, IColumnSelectData } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, ICursorSimpleModel, SingleCursorState, IColumnSelectData } from 'vs/editor/common/cursorCommon'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/editor/common/cursor/cursorDeleteOperations.ts b/src/vs/editor/common/cursor/cursorDeleteOperations.ts index 3d35d84c142..13218ea71a6 100644 --- a/src/vs/editor/common/cursor/cursorDeleteOperations.ts +++ b/src/vs/editor/common/cursor/cursorDeleteOperations.ts @@ -6,7 +6,7 @@ import * as strings from 'vs/base/common/strings'; import { ReplaceCommand } from 'vs/editor/common/commands/replaceCommand'; import { EditorAutoClosingEditStrategy, EditorAutoClosingStrategy } from 'vs/editor/common/config/editorOptions'; -import { CursorConfiguration, EditOperationResult, EditOperationType, ICursorSimpleModel, isQuote } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, EditOperationResult, EditOperationType, ICursorSimpleModel, isQuote } from 'vs/editor/common/cursorCommon'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; import { MoveOperations } from 'vs/editor/common/cursor/cursorMoveOperations'; import { Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/editor/common/cursor/cursorMoveCommands.ts b/src/vs/editor/common/cursor/cursorMoveCommands.ts index e5c26d7c836..30d11cdac89 100644 --- a/src/vs/editor/common/cursor/cursorMoveCommands.ts +++ b/src/vs/editor/common/cursor/cursorMoveCommands.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as types from 'vs/base/common/types'; -import { CursorState, ICursorSimpleModel, PartialCursorState, SingleCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorState, ICursorSimpleModel, PartialCursorState, SingleCursorState } from 'vs/editor/common/cursorCommon'; import { MoveOperations } from 'vs/editor/common/cursor/cursorMoveOperations'; import { WordOperations } from 'vs/editor/common/cursor/cursorWordOperations'; import { IPosition, Position } from 'vs/editor/common/core/position'; diff --git a/src/vs/editor/common/cursor/cursorMoveOperations.ts b/src/vs/editor/common/cursor/cursorMoveOperations.ts index 19084260c6a..3e7dc921f89 100644 --- a/src/vs/editor/common/cursor/cursorMoveOperations.ts +++ b/src/vs/editor/common/cursor/cursorMoveOperations.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CursorConfiguration, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursorCommon'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/editor/common/cursor/cursorTypeOperations.ts b/src/vs/editor/common/cursor/cursorTypeOperations.ts index fb7a82bba2e..b3ea50d245f 100644 --- a/src/vs/editor/common/cursor/cursorTypeOperations.ts +++ b/src/vs/editor/common/cursor/cursorTypeOperations.ts @@ -9,7 +9,7 @@ import * as strings from 'vs/base/common/strings'; import { ReplaceCommand, ReplaceCommandWithOffsetCursorState, ReplaceCommandWithoutChangingPosition, ReplaceCommandThatPreservesSelection } from 'vs/editor/common/commands/replaceCommand'; import { ShiftCommand } from 'vs/editor/common/commands/shiftCommand'; import { SurroundSelectionCommand } from 'vs/editor/common/commands/surroundSelectionCommand'; -import { CursorConfiguration, EditOperationResult, EditOperationType, ICursorSimpleModel, isQuote } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, EditOperationResult, EditOperationType, ICursorSimpleModel, isQuote } from 'vs/editor/common/cursorCommon'; import { WordCharacterClass, getMapForWordSeparators } from 'vs/editor/common/core/wordCharacterClassifier'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/common/cursor/cursorWordOperations.ts b/src/vs/editor/common/cursor/cursorWordOperations.ts index ed902a624ab..fd1d36c8556 100644 --- a/src/vs/editor/common/cursor/cursorWordOperations.ts +++ b/src/vs/editor/common/cursor/cursorWordOperations.ts @@ -6,7 +6,7 @@ import { CharCode } from 'vs/base/common/charCode'; import * as strings from 'vs/base/common/strings'; import { EditorAutoClosingEditStrategy, EditorAutoClosingStrategy } from 'vs/editor/common/config/editorOptions'; -import { CursorConfiguration, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorConfiguration, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursorCommon'; import { DeleteOperations } from 'vs/editor/common/cursor/cursorDeleteOperations'; import { WordCharacterClass, WordCharacterClassifier, getMapForWordSeparators } from 'vs/editor/common/core/wordCharacterClassifier'; import { Position } from 'vs/editor/common/core/position'; diff --git a/src/vs/editor/common/cursor/oneCursor.ts b/src/vs/editor/common/cursor/oneCursor.ts index d5732e5b87e..490ed5770a0 100644 --- a/src/vs/editor/common/cursor/oneCursor.ts +++ b/src/vs/editor/common/cursor/oneCursor.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CursorContext, CursorState, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursor/cursorCommon'; +import { CursorContext, CursorState, ICursorSimpleModel, SingleCursorState } from 'vs/editor/common/cursorCommon'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/common/cursor/cursorCommon.ts b/src/vs/editor/common/cursorCommon.ts similarity index 100% rename from src/vs/editor/common/cursor/cursorCommon.ts rename to src/vs/editor/common/cursorCommon.ts diff --git a/src/vs/editor/common/cursor/cursorEvents.ts b/src/vs/editor/common/cursorEvents.ts similarity index 100% rename from src/vs/editor/common/cursor/cursorEvents.ts rename to src/vs/editor/common/cursorEvents.ts diff --git a/src/vs/editor/common/viewLayout/viewLayout.ts b/src/vs/editor/common/viewLayout/viewLayout.ts index 1e6da20022d..8d6891fd6ad 100644 --- a/src/vs/editor/common/viewLayout/viewLayout.ts +++ b/src/vs/editor/common/viewLayout/viewLayout.ts @@ -12,7 +12,7 @@ import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguratio import { LinesLayout, IEditorWhitespace, IWhitespaceChangeAccessor } from 'vs/editor/common/viewLayout/linesLayout'; import { IPartialViewLinesViewportData } from 'vs/editor/common/viewLayout/viewLinesViewportData'; import { IViewLayout, IViewWhitespaceViewportData, Viewport } from 'vs/editor/common/viewModel'; -import { ContentSizeChangedEvent } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; +import { ContentSizeChangedEvent } from 'vs/editor/common/viewModelEventDispatcher'; const SMOOTH_SCROLLING_TIME = 125; diff --git a/src/vs/editor/common/viewModel.ts b/src/vs/editor/common/viewModel.ts index 15b77f36a5b..2e3a46ff4c5 100644 --- a/src/vs/editor/common/viewModel.ts +++ b/src/vs/editor/common/viewModel.ts @@ -5,8 +5,8 @@ import { IScrollPosition, Scrollable } from 'vs/base/common/scrollable'; import * as strings from 'vs/base/common/strings'; -import { CursorConfiguration, CursorState, EditOperationType, IColumnSelectData, ICursorSimpleModel, PartialCursorState } from 'vs/editor/common/cursor/cursorCommon'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorConfiguration, CursorState, EditOperationType, IColumnSelectData, ICursorSimpleModel, PartialCursorState } from 'vs/editor/common/cursorCommon'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { IViewLineTokens } from 'vs/editor/common/tokens/lineTokens'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/editor/common/viewModel/viewModelImpl.ts b/src/vs/editor/common/viewModel/viewModelImpl.ts index ff33c24402e..ec89ba99008 100644 --- a/src/vs/editor/common/viewModel/viewModelImpl.ts +++ b/src/vs/editor/common/viewModel/viewModelImpl.ts @@ -12,8 +12,8 @@ import * as platform from 'vs/base/common/platform'; import * as strings from 'vs/base/common/strings'; import { ConfigurationChangedEvent, EditorOption, EDITOR_FONT_DEFAULTS, filterValidationDecorations } from 'vs/editor/common/config/editorOptions'; import { CursorsController } from 'vs/editor/common/cursor/cursor'; -import { CursorConfiguration, CursorState, EditOperationType, IColumnSelectData, PartialCursorState } from 'vs/editor/common/cursor/cursorCommon'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorConfiguration, CursorState, EditOperationType, IColumnSelectData, PartialCursorState } from 'vs/editor/common/cursorCommon'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { ISelection, Selection } from 'vs/editor/common/core/selection'; @@ -36,7 +36,7 @@ import { ILineBreaksComputer, ILineBreaksComputerFactory, InjectedText } from 'v import { ViewEventHandler } from 'vs/editor/common/viewEventHandler'; import { ICoordinatesConverter, IViewModel, MinimapLinesRenderingData, OverviewRulerDecorationsGroup, ViewLineData, ViewLineRenderingData, ViewModelDecoration } from 'vs/editor/common/viewModel'; import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations'; -import { FocusChangedEvent, OutgoingViewModelEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewModelEventsCollector, ViewZonesChangedEvent } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; +import { FocusChangedEvent, OutgoingViewModelEvent, ReadOnlyEditAttemptEvent, ScrollChangedEvent, ViewModelEventDispatcher, ViewModelEventsCollector, ViewZonesChangedEvent } from 'vs/editor/common/viewModelEventDispatcher'; import { IViewModelLines, ViewModelLinesFromModelAsIs, ViewModelLinesFromProjectedModel } from 'vs/editor/common/viewModel/viewModelLines'; const USE_IDENTITY_LINES_COLLECTION = true; diff --git a/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts b/src/vs/editor/common/viewModelEventDispatcher.ts similarity index 99% rename from src/vs/editor/common/viewModel/viewModelEventDispatcher.ts rename to src/vs/editor/common/viewModelEventDispatcher.ts index b32b416d2da..cbdc9410776 100644 --- a/src/vs/editor/common/viewModel/viewModelEventDispatcher.ts +++ b/src/vs/editor/common/viewModelEventDispatcher.ts @@ -9,7 +9,7 @@ import { IContentSizeChangedEvent } from 'vs/editor/common/editorCommon'; import { Emitter } from 'vs/base/common/event'; import { Selection } from 'vs/editor/common/core/selection'; import { Disposable } from 'vs/base/common/lifecycle'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; export class ViewModelEventDispatcher extends Disposable { diff --git a/src/vs/editor/contrib/dnd/browser/dnd.ts b/src/vs/editor/contrib/dnd/browser/dnd.ts index 5d66f26402e..ce2faf6d2eb 100644 --- a/src/vs/editor/contrib/dnd/browser/dnd.ts +++ b/src/vs/editor/contrib/dnd/browser/dnd.ts @@ -13,7 +13,7 @@ import { ICodeEditor, IEditorMouseEvent, IMouseTarget, IPartialEditorMouseEvent, import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/contrib/find/browser/findModel.ts b/src/vs/editor/contrib/find/browser/findModel.ts index 46ed7763e6d..4d545f40f8e 100644 --- a/src/vs/editor/contrib/find/browser/findModel.ts +++ b/src/vs/editor/contrib/find/browser/findModel.ts @@ -11,7 +11,7 @@ import { Constants } from 'vs/base/common/uint'; import { IActiveCodeEditor } from 'vs/editor/browser/editorBrowser'; import { ReplaceCommand, ReplaceCommandThatPreservesSelection } from 'vs/editor/common/commands/replaceCommand'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.ts b/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.ts index a3aa1953e5a..96939cffa98 100644 --- a/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.ts +++ b/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.ts @@ -10,7 +10,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import * as platform from 'vs/base/common/platform'; import { ICodeEditor, IEditorMouseEvent, IMouseTarget } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; function hasModifier(e: { ctrlKey: boolean; shiftKey: boolean; altKey: boolean; metaKey: boolean }, modifier: 'ctrlKey' | 'shiftKey' | 'altKey' | 'metaKey'): boolean { return !!e[modifier]; diff --git a/src/vs/editor/contrib/lineSelection/browser/lineSelection.ts b/src/vs/editor/contrib/lineSelection/browser/lineSelection.ts index 2c9f68bcca0..0e773d81809 100644 --- a/src/vs/editor/contrib/lineSelection/browser/lineSelection.ts +++ b/src/vs/editor/contrib/lineSelection/browser/lineSelection.ts @@ -6,7 +6,7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, registerEditorAction, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { CursorMoveCommands } from 'vs/editor/common/cursor/cursorMoveCommands'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import * as nls from 'vs/nls'; diff --git a/src/vs/editor/contrib/multicursor/browser/multicursor.ts b/src/vs/editor/contrib/multicursor/browser/multicursor.ts index f8c3c52ff96..b8766e52963 100644 --- a/src/vs/editor/contrib/multicursor/browser/multicursor.ts +++ b/src/vs/editor/contrib/multicursor/browser/multicursor.ts @@ -11,8 +11,8 @@ import { Constants } from 'vs/base/common/uint'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, registerEditorAction, registerEditorContribution, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { CursorState } from 'vs/editor/common/cursor/cursorCommon'; -import { CursorChangeReason, ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorState } from 'vs/editor/common/cursorCommon'; +import { CursorChangeReason, ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { CursorMoveCommands } from 'vs/editor/common/cursor/cursorMoveCommands'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts index fd9a3c78ce1..288a1505bc2 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.ts @@ -9,7 +9,7 @@ import { Emitter } from 'vs/base/common/event'; import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { CharacterSet } from 'vs/editor/common/core/characterClassifier'; import * as modes from 'vs/editor/common/languages'; import { provideSignatureHelp } from 'vs/editor/contrib/parameterHints/browser/provideSignatureHelp'; diff --git a/src/vs/editor/contrib/suggest/browser/suggestModel.ts b/src/vs/editor/contrib/suggest/browser/suggestModel.ts index 70ec123f44a..d753f697f14 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestModel.ts @@ -11,7 +11,7 @@ import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle' import { getLeadingWhitespace, isHighSurrogate, isLowSurrogate } from 'vs/base/common/strings'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { CursorChangeReason, ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason, ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { IPosition, Position } from 'vs/editor/common/core/position'; import { Selection } from 'vs/editor/common/core/selection'; import { ITextModel } from 'vs/editor/common/model'; diff --git a/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts b/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts index 89eb8cfe30d..18288faf711 100644 --- a/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts +++ b/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.ts @@ -13,7 +13,7 @@ import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import { IActiveCodeEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, IActionOptions, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from 'vs/editor/browser/editorExtensions'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/editor/contrib/wordOperations/browser/wordOperations.ts b/src/vs/editor/contrib/wordOperations/browser/wordOperations.ts index f736142043b..3c6257885e5 100644 --- a/src/vs/editor/contrib/wordOperations/browser/wordOperations.ts +++ b/src/vs/editor/contrib/wordOperations/browser/wordOperations.ts @@ -8,8 +8,8 @@ import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorAction, EditorCommand, ICommandOptions, registerEditorAction, registerEditorCommand, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { ReplaceCommand } from 'vs/editor/common/commands/replaceCommand'; import { EditorOption, EditorOptions } from 'vs/editor/common/config/editorOptions'; -import { CursorState } from 'vs/editor/common/cursor/cursorCommon'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorState } from 'vs/editor/common/cursorCommon'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { DeleteWordContext, WordNavigationType, WordOperations } from 'vs/editor/common/cursor/cursorWordOperations'; import { getMapForWordSeparators, WordCharacterClassifier } from 'vs/editor/common/core/wordCharacterClassifier'; import { Position } from 'vs/editor/common/core/position'; diff --git a/src/vs/editor/test/browser/controller/cursor.test.ts b/src/vs/editor/test/browser/controller/cursor.test.ts index 5a0bc9cc0e0..f2f17534764 100644 --- a/src/vs/editor/test/browser/controller/cursor.test.ts +++ b/src/vs/editor/test/browser/controller/cursor.test.ts @@ -22,7 +22,7 @@ import { IRelaxedTextModelCreationOptions, createTextModel, instantiateTextModel import { MockMode } from 'vs/editor/test/common/mocks/mockMode'; import { javascriptOnEnterRules } from 'vs/editor/test/common/modes/supports/javascriptOnEnterRules'; import { ViewModel } from 'vs/editor/common/viewModel/viewModelImpl'; -import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModel/viewModelEventDispatcher'; +import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModelEventDispatcher'; import { ILanguageService } from 'vs/editor/common/services/language'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; diff --git a/src/vs/workbench/browser/codeeditor.ts b/src/vs/workbench/browser/codeeditor.ts index 75848c032e6..57b14476241 100644 --- a/src/vs/workbench/browser/codeeditor.ts +++ b/src/vs/workbench/browser/codeeditor.ts @@ -23,7 +23,7 @@ import { IFileService } from 'vs/platform/files/common/files'; import { URI } from 'vs/base/common/uri'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IRange } from 'vs/editor/common/core/range'; -import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason, ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { TrackedRangeStickiness, IModelDecorationsChangeAccessor } from 'vs/editor/common/model'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; diff --git a/src/vs/workbench/contrib/codeEditor/electron-sandbox/selectionClipboard.ts b/src/vs/workbench/contrib/codeEditor/electron-sandbox/selectionClipboard.ts index a1efb8b1f9a..f64cd82881f 100644 --- a/src/vs/workbench/contrib/codeEditor/electron-sandbox/selectionClipboard.ts +++ b/src/vs/workbench/contrib/codeEditor/electron-sandbox/selectionClipboard.ts @@ -10,7 +10,7 @@ import * as platform from 'vs/base/common/platform'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { registerEditorContribution, EditorAction, ServicesAccessor, registerEditorAction } from 'vs/editor/browser/editorExtensions'; import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions'; -import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorSelectionChangedEvent } from 'vs/editor/common/cursorEvents'; import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution, Handler } from 'vs/editor/common/editorCommon'; import { EndOfLinePreference } from 'vs/editor/common/model'; diff --git a/src/vs/workbench/contrib/output/browser/outputView.ts b/src/vs/workbench/contrib/output/browser/outputView.ts index 9710fa75ad2..e10ce89cdd8 100644 --- a/src/vs/workbench/contrib/output/browser/outputView.ts +++ b/src/vs/workbench/contrib/output/browser/outputView.ts @@ -20,7 +20,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { CancellationToken } from 'vs/base/common/cancellation'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { CursorChangeReason } from 'vs/editor/common/cursor/cursorEvents'; +import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPane'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView'; diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts b/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts index 1524e4fe03b..04137bb85b0 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts @@ -13,7 +13,7 @@ import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { ResourceMap } from 'vs/base/common/map'; import { ICodeEditor, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/workbench/services/history/browser/history.ts b/src/vs/workbench/services/history/browser/history.ts index b68f676ee8b..63a2054dc63 100644 --- a/src/vs/workbench/services/history/browser/history.ts +++ b/src/vs/workbench/services/history/browser/history.ts @@ -22,7 +22,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { getCodeEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { getExcludes, ISearchConfiguration, SEARCH_EXCLUDE_CONFIG } from 'vs/workbench/services/search/common/search'; -import { ICursorPositionChangedEvent } from 'vs/editor/common/cursor/cursorEvents'; +import { ICursorPositionChangedEvent } from 'vs/editor/common/cursorEvents'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { EditorServiceImpl } from 'vs/workbench/browser/parts/editor/editor'; import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService'; From e5a76b122be79679cb3583dc66c71ea643133685 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 11:41:34 +0100 Subject: [PATCH 79/96] Move `colorHoverParticipant.ts` to `/colorPicker/` --- .../{hover => colorPicker}/browser/colorHoverParticipant.ts | 0 src/vs/editor/contrib/hover/browser/contentHover.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename src/vs/editor/contrib/{hover => colorPicker}/browser/colorHoverParticipant.ts (100%) diff --git a/src/vs/editor/contrib/hover/browser/colorHoverParticipant.ts b/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts similarity index 100% rename from src/vs/editor/contrib/hover/browser/colorHoverParticipant.ts rename to src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts diff --git a/src/vs/editor/contrib/hover/browser/contentHover.ts b/src/vs/editor/contrib/hover/browser/contentHover.ts index e6b7f333602..ee20fe1f58a 100644 --- a/src/vs/editor/contrib/hover/browser/contentHover.ts +++ b/src/vs/editor/contrib/hover/browser/contentHover.ts @@ -18,7 +18,7 @@ import { IModelDecoration, IModelDeltaDecoration } from 'vs/editor/common/model' import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { TokenizationRegistry } from 'vs/editor/common/languages'; import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; -import { ColorHoverParticipant } from 'vs/editor/contrib/hover/browser/colorHoverParticipant'; +import { ColorHoverParticipant } from 'vs/editor/contrib/colorPicker/browser/colorHoverParticipant'; import { HoverOperation, HoverStartMode, IHoverComputer } from 'vs/editor/contrib/hover/browser/hoverOperation'; import { HoverAnchor, HoverAnchorType, HoverRangeAnchor, IEditorHoverAction, IEditorHoverParticipant, IEditorHoverRenderContext, IEditorHoverStatusBar, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { MarkdownHoverParticipant } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; From bc7fb91e1f9beb3733c87e469e4784c0a9e55a18 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:11:52 +0100 Subject: [PATCH 80/96] Introduce and adopt `HoverParticipantRegistry` --- .../colorPicker/browser/colorContributions.ts | 3 ++ .../browser/colorHoverParticipant.ts | 2 ++ .../contrib/hover/browser/contentHover.ts | 31 +++++++++---------- src/vs/editor/contrib/hover/browser/hover.ts | 5 +++ .../contrib/hover/browser/hoverTypes.ts | 20 +++++++++++- .../hover/browser/markdownHoverParticipant.ts | 2 ++ .../hover/browser/markerHoverParticipant.ts | 3 +- .../browser/inlayHintsContribution.ts | 12 +++++++ .../browser/inlayHintsController.ts | 3 -- .../inlayHints/browser/inlayHintsHover.ts | 2 ++ .../browser/ghostTextController.ts | 7 +---- .../browser/inlineCompletionsContribution.ts | 15 +++++++++ .../inlineCompletionsHoverParticipant.ts | 3 ++ .../browser/unicodeHighlighter.ts | 5 ++- src/vs/editor/editor.all.ts | 4 +-- 15 files changed, 86 insertions(+), 31 deletions(-) create mode 100644 src/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.ts create mode 100644 src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsContribution.ts diff --git a/src/vs/editor/contrib/colorPicker/browser/colorContributions.ts b/src/vs/editor/contrib/colorPicker/browser/colorContributions.ts index c9e4714ea42..c6a4071877f 100644 --- a/src/vs/editor/contrib/colorPicker/browser/colorContributions.ts +++ b/src/vs/editor/contrib/colorPicker/browser/colorContributions.ts @@ -9,8 +9,10 @@ import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { ColorDecorationInjectedTextMarker } from 'vs/editor/contrib/colorPicker/browser/colorDetector'; +import { ColorHoverParticipant } from 'vs/editor/contrib/colorPicker/browser/colorHoverParticipant'; import { ModesHoverController } from 'vs/editor/contrib/hover/browser/hover'; import { HoverStartMode } from 'vs/editor/contrib/hover/browser/hoverOperation'; +import { HoverParticipantRegistry } from 'vs/editor/contrib/hover/browser/hoverTypes'; export class ColorContribution extends Disposable implements IEditorContribution { @@ -59,3 +61,4 @@ export class ColorContribution extends Disposable implements IEditorContribution } registerEditorContribution(ColorContribution.ID, ColorContribution); +HoverParticipantRegistry.register(ColorHoverParticipant); diff --git a/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts b/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts index 3f9386ff2d2..cbe2a4fc711 100644 --- a/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts +++ b/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts @@ -45,6 +45,8 @@ export class ColorHover implements IHoverPart { export class ColorHoverParticipant implements IEditorHoverParticipant { + public readonly hoverOrdinal: number = 1; + constructor( private readonly _editor: ICodeEditor, @IThemeService private readonly _themeService: IThemeService, diff --git a/src/vs/editor/contrib/hover/browser/contentHover.ts b/src/vs/editor/contrib/hover/browser/contentHover.ts index ee20fe1f58a..e96a2a58cad 100644 --- a/src/vs/editor/contrib/hover/browser/contentHover.ts +++ b/src/vs/editor/contrib/hover/browser/contentHover.ts @@ -18,19 +18,13 @@ import { IModelDecoration, IModelDeltaDecoration } from 'vs/editor/common/model' import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { TokenizationRegistry } from 'vs/editor/common/languages'; import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; -import { ColorHoverParticipant } from 'vs/editor/contrib/colorPicker/browser/colorHoverParticipant'; import { HoverOperation, HoverStartMode, IHoverComputer } from 'vs/editor/contrib/hover/browser/hoverOperation'; -import { HoverAnchor, HoverAnchorType, HoverRangeAnchor, IEditorHoverAction, IEditorHoverParticipant, IEditorHoverRenderContext, IEditorHoverStatusBar, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; -import { MarkdownHoverParticipant } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; -import { MarkerHoverParticipant } from 'vs/editor/contrib/hover/browser/markerHoverParticipant'; -import { InlineCompletionsHoverParticipant } from 'vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant'; +import { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, HoverRangeAnchor, IEditorHoverAction, IEditorHoverParticipant, IEditorHoverRenderContext, IEditorHoverStatusBar, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { Context as SuggestContext } from 'vs/editor/contrib/suggest/browser/suggest'; -import { UnicodeHighlighterHoverParticipant } from 'vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter'; import { AsyncIterableObject } from 'vs/base/common/async'; -import { InlayHintsHover } from 'vs/editor/contrib/inlayHints/browser/inlayHintsHover'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { Emitter } from 'vs/base/common/event'; import { IModelDecorationsChangedEvent } from 'vs/editor/common/textModelEvents'; @@ -39,18 +33,11 @@ const $ = dom.$; export class ContentHoverController extends Disposable { - private readonly _participants: IEditorHoverParticipant[] = [ - this._instantiationService.createInstance(ColorHoverParticipant, this._editor), - this._instantiationService.createInstance(MarkdownHoverParticipant, this._editor), - this._instantiationService.createInstance(InlineCompletionsHoverParticipant, this._editor), - this._instantiationService.createInstance(UnicodeHighlighterHoverParticipant, this._editor), - this._instantiationService.createInstance(MarkerHoverParticipant, this._editor), - this._instantiationService.createInstance(InlayHintsHover, this._editor), - ]; + private readonly _participants: IEditorHoverParticipant[]; private readonly _widget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor)); private readonly _decorationsChangerListener = this._register(new EditorDecorationsChangerListener(this._editor)); - private readonly _computer = new ContentHoverComputer(this._editor, this._participants); - private readonly _hoverOperation = this._register(new HoverOperation(this._editor, this._computer)); + private readonly _computer: ContentHoverComputer; + private readonly _hoverOperation: HoverOperation; private _messages: IHoverPart[]; private _messagesAreComplete: boolean; @@ -65,6 +52,16 @@ export class ContentHoverController extends Disposable { this._messages = []; this._messagesAreComplete = false; + // Instantiate participants and sort them by `hoverOrdinal` which is relevant for rendering order. + this._participants = []; + for (const participant of HoverParticipantRegistry.getAll()) { + this._participants.push(this._instantiationService.createInstance(participant, this._editor)); + } + this._participants.sort((p1, p2) => p1.hoverOrdinal - p2.hoverOrdinal); + + this._computer = new ContentHoverComputer(this._editor, this._participants); + this._hoverOperation = this._register(new HoverOperation(this._editor, this._computer)); + this._register(this._hoverOperation.onResult((result) => { this._withResult(result.value, result.isComplete, result.hasLoadingMessage); })); diff --git a/src/vs/editor/contrib/hover/browser/hover.ts b/src/vs/editor/contrib/hover/browser/hover.ts index 02a69b6a0b0..f227ef739d5 100644 --- a/src/vs/editor/contrib/hover/browser/hover.ts +++ b/src/vs/editor/contrib/hover/browser/hover.ts @@ -25,6 +25,9 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis import { IOpenerService } from 'vs/platform/opener/common/opener'; import { editorHoverBackground, editorHoverBorder, editorHoverForeground, editorHoverHighlight, editorHoverStatusBarBackground, textCodeBlockBackground, textLinkActiveForeground, textLinkForeground } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; +import { HoverParticipantRegistry } from 'vs/editor/contrib/hover/browser/hoverTypes'; +import { MarkdownHoverParticipant } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; +import { MarkerHoverParticipant } from 'vs/editor/contrib/hover/browser/markerHoverParticipant'; export class ModesHoverController implements IEditorContribution { @@ -298,6 +301,8 @@ class ShowDefinitionPreviewHoverAction extends EditorAction { registerEditorContribution(ModesHoverController.ID, ModesHoverController); registerEditorAction(ShowHoverAction); registerEditorAction(ShowDefinitionPreviewHoverAction); +HoverParticipantRegistry.register(MarkdownHoverParticipant); +HoverParticipantRegistry.register(MarkerHoverParticipant); // theming registerThemingParticipant((theme, collector) => { diff --git a/src/vs/editor/contrib/hover/browser/hoverTypes.ts b/src/vs/editor/contrib/hover/browser/hoverTypes.ts index 1f047e5c1c0..ef57b0f56d0 100644 --- a/src/vs/editor/contrib/hover/browser/hoverTypes.ts +++ b/src/vs/editor/contrib/hover/browser/hoverTypes.ts @@ -6,11 +6,12 @@ import { AsyncIterableObject } from 'vs/base/common/async'; import { CancellationToken } from 'vs/base/common/cancellation'; import { IDisposable } from 'vs/base/common/lifecycle'; -import { IEditorMouseEvent } from 'vs/editor/browser/editorBrowser'; +import { ICodeEditor, IEditorMouseEvent } from 'vs/editor/browser/editorBrowser'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { IModelDecoration } from 'vs/editor/common/model'; import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; +import { BrandedService, IConstructorSignature1 } from 'vs/platform/instantiation/common/instantiation'; export interface IHoverPart { /** @@ -103,9 +104,26 @@ export interface IEditorHoverRenderContext { } export interface IEditorHoverParticipant { + readonly hoverOrdinal: number; suggestHoverAnchor?(mouseEvent: IEditorMouseEvent): HoverAnchor | null; computeSync(anchor: HoverAnchor, lineDecorations: IModelDecoration[]): T[]; computeAsync?(anchor: HoverAnchor, lineDecorations: IModelDecoration[], token: CancellationToken): AsyncIterableObject; createLoadingMessage?(anchor: HoverAnchor): T | null; renderHoverParts(context: IEditorHoverRenderContext, hoverParts: T[]): IDisposable; } + +export type IEditorHoverParticipantCtor = IConstructorSignature1; + +export const HoverParticipantRegistry = (new class HoverParticipantRegistry { + + _participants: IEditorHoverParticipantCtor[] = []; + + public register(ctor: { new(editor: ICodeEditor, ...services: Services): IEditorHoverParticipant }): void { + this._participants.push(ctor as IEditorHoverParticipantCtor); + } + + public getAll(): IEditorHoverParticipantCtor[] { + return this._participants; + } + +}()); diff --git a/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts b/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts index 3e3c78fd58d..2b3e5170d82 100644 --- a/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts +++ b/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts @@ -44,6 +44,8 @@ export class MarkdownHover implements IHoverPart { export class MarkdownHoverParticipant implements IEditorHoverParticipant { + public readonly hoverOrdinal: number = 2; + constructor( protected readonly _editor: ICodeEditor, @ILanguageService private readonly _languageService: ILanguageService, diff --git a/src/vs/editor/contrib/hover/browser/markerHoverParticipant.ts b/src/vs/editor/contrib/hover/browser/markerHoverParticipant.ts index 3b498a78396..cc352ad58ae 100644 --- a/src/vs/editor/contrib/hover/browser/markerHoverParticipant.ts +++ b/src/vs/editor/contrib/hover/browser/markerHoverParticipant.ts @@ -54,6 +54,8 @@ const markerCodeActionTrigger: CodeActionTrigger = { export class MarkerHoverParticipant implements IEditorHoverParticipant { + public readonly hoverOrdinal: number = 5; + private recentMarkerCodeActionsInfo: { marker: IMarker, hasCodeActions: boolean } | undefined = undefined; constructor( @@ -256,4 +258,3 @@ registerThemingParticipant((theme, collector) => { collector.addRule(`.monaco-hover .hover-contents a.code-link span:hover { color: ${activeLinkFg}; }`); } }); - diff --git a/src/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.ts b/src/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.ts new file mode 100644 index 00000000000..17f44f00108 --- /dev/null +++ b/src/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.ts @@ -0,0 +1,12 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; +import { HoverParticipantRegistry } from 'vs/editor/contrib/hover/browser/hoverTypes'; +import { InlayHintsController } from 'vs/editor/contrib/inlayHints/browser/inlayHintsController'; +import { InlayHintsHover } from 'vs/editor/contrib/inlayHints/browser/inlayHintsHover'; + +registerEditorContribution(InlayHintsController.ID, InlayHintsController); +HoverParticipantRegistry.register(InlayHintsHover); diff --git a/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.ts b/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.ts index 2d880eb98b2..8c6039e5711 100644 --- a/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.ts +++ b/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.ts @@ -13,7 +13,6 @@ import { assertType } from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; import { IActiveCodeEditor, ICodeEditor, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { ClassNameReference, CssProperties, DynamicCssRules } from 'vs/editor/browser/editorDom'; -import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; import { EditorOption, EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/editorOptions'; import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; @@ -509,8 +508,6 @@ function fixSpace(str: string): string { return str.replace(/[ \t]/g, noBreakWhitespace); } -registerEditorContribution(InlayHintsController.ID, InlayHintsController); - CommandsRegistry.registerCommand('_executeInlayHintProvider', async (accessor, ...args: [URI, IRange]): Promise => { const [uri, range] = args; diff --git a/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts b/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts index 94b81327150..4db6c2f5175 100644 --- a/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts +++ b/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts @@ -28,6 +28,8 @@ class InlayHintsHoverAnchor extends HoverForeignElementAnchor { export class InlayHintsHover extends MarkdownHoverParticipant implements IEditorHoverParticipant { + public override readonly hoverOrdinal: number = 6; + constructor( editor: ICodeEditor, @ILanguageService languageService: ILanguageService, diff --git a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextController.ts b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextController.ts index 1e5f2eddd1a..761590068f0 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextController.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextController.ts @@ -7,7 +7,7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { Disposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { firstNonWhitespaceIndex } from 'vs/base/common/strings'; import { IActiveCodeEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser'; -import { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; +import { EditorAction, EditorCommand, registerEditorCommand, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; import { Range } from 'vs/editor/common/core/range'; @@ -282,8 +282,3 @@ export class TriggerInlineSuggestionAction extends EditorAction { } } } - -registerEditorContribution(GhostTextController.ID, GhostTextController); -registerEditorAction(TriggerInlineSuggestionAction); -registerEditorAction(ShowNextInlineSuggestionAction); -registerEditorAction(ShowPreviousInlineSuggestionAction); diff --git a/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsContribution.ts b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsContribution.ts new file mode 100644 index 00000000000..a455e09d4d8 --- /dev/null +++ b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsContribution.ts @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { registerEditorAction, registerEditorContribution } from 'vs/editor/browser/editorExtensions'; +import { HoverParticipantRegistry } from 'vs/editor/contrib/hover/browser/hoverTypes'; +import { GhostTextController, ShowNextInlineSuggestionAction, ShowPreviousInlineSuggestionAction, TriggerInlineSuggestionAction } from 'vs/editor/contrib/inlineCompletions/browser/ghostTextController'; +import { InlineCompletionsHoverParticipant } from 'vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant'; + +registerEditorContribution(GhostTextController.ID, GhostTextController); +registerEditorAction(TriggerInlineSuggestionAction); +registerEditorAction(ShowNextInlineSuggestionAction); +registerEditorAction(ShowPreviousInlineSuggestionAction); +HoverParticipantRegistry.register(InlineCompletionsHoverParticipant); diff --git a/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts index 08f5d22c977..228288d1bae 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts @@ -41,6 +41,9 @@ export class InlineCompletionsHover implements IHoverPart { } export class InlineCompletionsHoverParticipant implements IEditorHoverParticipant { + + public readonly hoverOrdinal: number = 3; + constructor( private readonly _editor: ICodeEditor, @ICommandService private readonly _commandService: ICommandService, diff --git a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts index 300a1f8b5ed..8ca68d62c87 100644 --- a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts +++ b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts @@ -22,7 +22,7 @@ import { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighter import { IEditorWorkerService, IUnicodeHighlightsResult } from 'vs/editor/common/services/editorWorker'; import { ILanguageService } from 'vs/editor/common/services/language'; import { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from 'vs/editor/common/viewModel/viewModelDecorations'; -import { HoverAnchor, HoverAnchorType, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; +import { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { MarkdownHover, renderMarkdownHovers } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; import { BannerController } from 'vs/editor/contrib/unicodeHighlighter/browser/bannerController'; import * as nls from 'vs/nls'; @@ -424,6 +424,8 @@ export class UnicodeHighlighterHover implements IHoverPart { export class UnicodeHighlighterHoverParticipant implements IEditorHoverParticipant { + public readonly hoverOrdinal: number = 4; + constructor( private readonly _editor: ICodeEditor, @ILanguageService private readonly _languageService: ILanguageService, @@ -819,3 +821,4 @@ registerEditorAction(DisableHighlightingOfInvisibleCharactersAction); registerEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction); registerEditorAction(ShowExcludeOptions); registerEditorContribution(UnicodeHighlighter.ID, UnicodeHighlighter); +HoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant); diff --git a/src/vs/editor/editor.all.ts b/src/vs/editor/editor.all.ts index 3467491007a..831f9cfe490 100644 --- a/src/vs/editor/editor.all.ts +++ b/src/vs/editor/editor.all.ts @@ -24,13 +24,13 @@ import 'vs/editor/contrib/folding/browser/folding'; import 'vs/editor/contrib/fontZoom/browser/fontZoom'; import 'vs/editor/contrib/format/browser/formatActions'; import 'vs/editor/contrib/documentSymbols/browser/documentSymbols'; -import 'vs/editor/contrib/inlineCompletions/browser/ghostTextController'; +import 'vs/editor/contrib/inlineCompletions/browser/inlineCompletionsContribution'; import 'vs/editor/contrib/gotoSymbol/browser/goToCommands'; import 'vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition'; import 'vs/editor/contrib/gotoError/browser/gotoError'; import 'vs/editor/contrib/hover/browser/hover'; import 'vs/editor/contrib/indentation/browser/indentation'; -import 'vs/editor/contrib/inlayHints/browser/inlayHintsController'; +import 'vs/editor/contrib/inlayHints/browser/inlayHintsContribution'; import 'vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace'; import 'vs/editor/contrib/lineSelection/browser/lineSelection'; import 'vs/editor/contrib/linesOperations/browser/linesOperations'; From d479e44e157dfd56a1465a6f27c09f10224c1865 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:17:58 +0100 Subject: [PATCH 81/96] Remove `/colorPicker/` imports --- .../colorPicker/browser/colorPickerWidget.ts | 3 ++- .../contrib/hover/browser/contentHover.ts | 18 +++++++----------- .../editor/contrib/hover/browser/hoverTypes.ts | 7 +++++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.ts b/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.ts index feefde07301..61442a9df18 100644 --- a/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.ts +++ b/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.ts @@ -12,6 +12,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import 'vs/css!./colorPicker'; import { ColorPickerModel } from 'vs/editor/contrib/colorPicker/browser/colorPickerModel'; +import { IEditorHoverColorPickerWidget } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { localize } from 'vs/nls'; import { editorHoverBackground } from 'vs/platform/theme/common/colorRegistry'; import { IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; @@ -336,7 +337,7 @@ class HueStrip extends Strip { } } -export class ColorPickerWidget extends Widget { +export class ColorPickerWidget extends Widget implements IEditorHoverColorPickerWidget { private static readonly ID = 'editor.contrib.colorPickerWidget'; diff --git a/src/vs/editor/contrib/hover/browser/contentHover.ts b/src/vs/editor/contrib/hover/browser/contentHover.ts index e96a2a58cad..f8aa2a1d124 100644 --- a/src/vs/editor/contrib/hover/browser/contentHover.ts +++ b/src/vs/editor/contrib/hover/browser/contentHover.ts @@ -17,9 +17,8 @@ import { Range } from 'vs/editor/common/core/range'; import { IModelDecoration, IModelDeltaDecoration } from 'vs/editor/common/model'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { TokenizationRegistry } from 'vs/editor/common/languages'; -import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; import { HoverOperation, HoverStartMode, IHoverComputer } from 'vs/editor/contrib/hover/browser/hoverOperation'; -import { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, HoverRangeAnchor, IEditorHoverAction, IEditorHoverParticipant, IEditorHoverRenderContext, IEditorHoverStatusBar, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; +import { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, HoverRangeAnchor, IEditorHoverColorPickerWidget, IEditorHoverAction, IEditorHoverParticipant, IEditorHoverRenderContext, IEditorHoverStatusBar, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; @@ -85,7 +84,7 @@ export class ContentHoverController extends Disposable { // we need to recompute the displayed text this._hoverOperation.cancel(); - if (!this._widget.colorPicker) { // TODO@Michel ensure that displayed text for other decorations is computed even if color picker is in place + if (!this._widget.isColorPickerVisible) { // TODO@Michel ensure that displayed text for other decorations is computed even if color picker is in place this._hoverOperation.start(HoverStartMode.Delayed); } } @@ -169,7 +168,7 @@ export class ContentHoverController extends Disposable { } public isColorPickerVisible(): boolean { - return !!this._widget.colorPicker; + return this._widget.isColorPickerVisible; } private _addLoadingMessage(result: IHoverPart[]): IHoverPart[] { @@ -214,7 +213,7 @@ export class ContentHoverController extends Disposable { const statusBar = disposables.add(new EditorHoverStatusBar(this._keybindingService)); const fragment = document.createDocumentFragment(); - let colorPicker: ColorPickerWidget | null = null; + let colorPicker: IEditorHoverColorPickerWidget | null = null; const context: IEditorHoverRenderContext = { fragment, statusBar, @@ -297,7 +296,7 @@ class EditorDecorationsChangerListener extends Disposable { class ContentHoverVisibleData { constructor( - public readonly colorPicker: ColorPickerWidget | null, + public readonly colorPicker: IEditorHoverColorPickerWidget | null, public readonly showAtPosition: Position, public readonly showAtRange: Range, public readonly preferAbove: boolean, @@ -324,11 +323,8 @@ export class ContentHoverWidget extends Disposable implements IContentWidget { return this._visibleData?.showAtPosition ?? null; } - /** - * Returns `null` if the color picker is not visible. - */ - public get colorPicker(): ColorPickerWidget | null { - return this._visibleData?.colorPicker ?? null; + public get isColorPickerVisible(): boolean { + return Boolean(this._visibleData?.colorPicker); } constructor( diff --git a/src/vs/editor/contrib/hover/browser/hoverTypes.ts b/src/vs/editor/contrib/hover/browser/hoverTypes.ts index ef57b0f56d0..56f81739daa 100644 --- a/src/vs/editor/contrib/hover/browser/hoverTypes.ts +++ b/src/vs/editor/contrib/hover/browser/hoverTypes.ts @@ -10,7 +10,6 @@ import { ICodeEditor, IEditorMouseEvent } from 'vs/editor/browser/editorBrowser' import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { IModelDecoration } from 'vs/editor/common/model'; -import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; import { BrandedService, IConstructorSignature1 } from 'vs/platform/instantiation/common/instantiation'; export interface IHoverPart { @@ -80,6 +79,10 @@ export interface IEditorHoverAction { setEnabled(enabled: boolean): void; } +export interface IEditorHoverColorPickerWidget { + layout(): void; +} + export interface IEditorHoverRenderContext { /** * The fragment where dom elements should be attached. @@ -92,7 +95,7 @@ export interface IEditorHoverRenderContext { /** * Set if the hover will render a color picker widget. */ - setColorPicker(widget: ColorPickerWidget): void; + setColorPicker(widget: IEditorHoverColorPickerWidget): void; /** * The contents rendered inside the fragment have been changed, which means that the hover should relayout. */ From 48417434d6595399dc1eddf56eb6d181b3d5e13a Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Mon, 31 Jan 2022 20:18:57 +0900 Subject: [PATCH 82/96] chore: allow running universal build via rosetta Fixes https://github.com/microsoft/vscode/issues/139319 --- build/darwin/create-universal-app.js | 8 -------- build/darwin/create-universal-app.ts | 9 --------- 2 files changed, 17 deletions(-) diff --git a/build/darwin/create-universal-app.js b/build/darwin/create-universal-app.js index 0690fba9957..1e37db5050a 100644 --- a/build/darwin/create-universal-app.js +++ b/build/darwin/create-universal-app.js @@ -8,7 +8,6 @@ const vscode_universal_bundler_1 = require("vscode-universal-bundler"); const cross_spawn_promise_1 = require("@malept/cross-spawn-promise"); const fs = require("fs-extra"); const path = require("path"); -const plist = require("plist"); const product = require("../../product.json"); async function main() { const buildDir = process.env['AGENT_BUILDDIRECTORY']; @@ -23,7 +22,6 @@ async function main() { const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar'); const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName); const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json'); - const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist'); await (0, vscode_universal_bundler_1.makeUniversalApp)({ x64AppPath, arm64AppPath, @@ -45,12 +43,6 @@ async function main() { darwinUniversalAssetId: 'darwin-universal' }); await fs.writeJson(productJsonPath, productJson); - let infoPlistString = await fs.readFile(infoPlistPath, 'utf8'); - let infoPlistJson = plist.parse(infoPlistString); - Object.assign(infoPlistJson, { - LSRequiresNativeExecution: true - }); - await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8'); // Verify if native module architecture is correct const findOutput = await (0, cross_spawn_promise_1.spawn)('find', [outAppPath, '-name', 'keytar.node']); const lipoOutput = await (0, cross_spawn_promise_1.spawn)('lipo', ['-archs', findOutput.replace(/\n$/, "")]); diff --git a/build/darwin/create-universal-app.ts b/build/darwin/create-universal-app.ts index ed042c56d82..e479a9760e3 100644 --- a/build/darwin/create-universal-app.ts +++ b/build/darwin/create-universal-app.ts @@ -9,7 +9,6 @@ import { makeUniversalApp } from 'vscode-universal-bundler'; import { spawn } from '@malept/cross-spawn-promise'; import * as fs from 'fs-extra'; import * as path from 'path'; -import * as plist from 'plist'; import * as product from '../../product.json'; async function main() { @@ -27,7 +26,6 @@ async function main() { const arm64AsarPath = path.join(arm64AppPath, 'Contents', 'Resources', 'app', 'node_modules.asar'); const outAppPath = path.join(buildDir, `VSCode-darwin-${arch}`, appName); const productJsonPath = path.resolve(outAppPath, 'Contents', 'Resources', 'app', 'product.json'); - const infoPlistPath = path.resolve(outAppPath, 'Contents', 'Info.plist'); await makeUniversalApp({ x64AppPath, @@ -52,13 +50,6 @@ async function main() { }); await fs.writeJson(productJsonPath, productJson); - let infoPlistString = await fs.readFile(infoPlistPath, 'utf8'); - let infoPlistJson = plist.parse(infoPlistString); - Object.assign(infoPlistJson, { - LSRequiresNativeExecution: true - }); - await fs.writeFile(infoPlistPath, plist.build(infoPlistJson), 'utf8'); - // Verify if native module architecture is correct const findOutput = await spawn('find', [outAppPath, '-name', 'keytar.node']) const lipoOutput = await spawn('lipo', ['-archs', findOutput.replace(/\n$/, "")]); From 0a1335f65acede7e2b60a4c67f6b66b6683db4d9 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:22:01 +0100 Subject: [PATCH 83/96] Extract `normalizeIndentation` to `/core/` (#141174) --- src/vs/editor/common/core/indentation.ts | 40 +++++++++++++++++++ src/vs/editor/common/cursorCommon.ts | 4 +- src/vs/editor/common/model/textModel.ts | 37 +---------------- .../indentation/browser/indentation.ts | 6 +-- 4 files changed, 47 insertions(+), 40 deletions(-) create mode 100644 src/vs/editor/common/core/indentation.ts diff --git a/src/vs/editor/common/core/indentation.ts b/src/vs/editor/common/core/indentation.ts new file mode 100644 index 00000000000..0134b97c376 --- /dev/null +++ b/src/vs/editor/common/core/indentation.ts @@ -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. + *--------------------------------------------------------------------------------------------*/ + +import * as strings from 'vs/base/common/strings'; + +function _normalizeIndentationFromWhitespace(str: string, indentSize: number, insertSpaces: boolean): string { + let spacesCnt = 0; + for (let i = 0; i < str.length; i++) { + if (str.charAt(i) === '\t') { + spacesCnt += indentSize; + } else { + spacesCnt++; + } + } + + let result = ''; + if (!insertSpaces) { + const tabsCnt = Math.floor(spacesCnt / indentSize); + spacesCnt = spacesCnt % indentSize; + for (let i = 0; i < tabsCnt; i++) { + result += '\t'; + } + } + + for (let i = 0; i < spacesCnt; i++) { + result += ' '; + } + + return result; +} + +export function normalizeIndentation(str: string, indentSize: number, insertSpaces: boolean): string { + let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str); + if (firstNonWhitespaceIndex === -1) { + firstNonWhitespaceIndex = str.length; + } + return _normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex); +} diff --git a/src/vs/editor/common/cursorCommon.ts b/src/vs/editor/common/cursorCommon.ts index f002f50e7a5..33b7d7c544a 100644 --- a/src/vs/editor/common/cursorCommon.ts +++ b/src/vs/editor/common/cursorCommon.ts @@ -11,13 +11,13 @@ import { ISelection, Selection } from 'vs/editor/common/core/selection'; import { ICommand } from 'vs/editor/common/editorCommon'; import { IEditorConfiguration } from 'vs/editor/common/config/editorConfiguration'; import { ITextModel, PositionAffinity, TextModelResolvedOptions } from 'vs/editor/common/model'; -import { TextModel } from 'vs/editor/common/model/textModel'; import { AutoClosingPairs } from 'vs/editor/common/languages/languageConfiguration'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { createScopedLineTokens } from 'vs/editor/common/languages/supports'; import { IElectricAction } from 'vs/editor/common/languages/supports/electricCharacter'; import { ICoordinatesConverter } from 'vs/editor/common/viewModel'; import { CursorColumns } from 'vs/editor/common/core/cursorColumns'; +import { normalizeIndentation } from 'vs/editor/common/core/indentation'; export interface IColumnSelectData { isReal: boolean; @@ -179,7 +179,7 @@ export class CursorConfiguration { } public normalizeIndentation(str: string): string { - return TextModel.normalizeIndentation(str, this.indentSize, this.insertSpaces); + return normalizeIndentation(str, this.indentSize, this.insertSpaces); } private _getShouldAutoClose(languageId: string, autoCloseConfig: EditorAutoClosingStrategy): (ch: string) => boolean { diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index 6d8f91c3bbb..7b602817913 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -47,6 +47,7 @@ import { ILanguageService } from 'vs/editor/common/services/language'; import { IColorTheme, ThemeColor } from 'vs/platform/theme/common/themeService'; import { IUndoRedoService, ResourceEditStackSnapshot } from 'vs/platform/undoRedo/common/undoRedo'; import { EDITOR_MODEL_DEFAULTS } from 'vs/editor/common/core/textModelDefaults'; +import { normalizeIndentation } from 'vs/editor/common/core/indentation'; function createTextBufferBuilder() { return new PieceTreeTextBufferBuilder(); @@ -694,43 +695,9 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati }); } - private static _normalizeIndentationFromWhitespace(str: string, indentSize: number, insertSpaces: boolean): string { - let spacesCnt = 0; - for (let i = 0; i < str.length; i++) { - if (str.charAt(i) === '\t') { - spacesCnt += indentSize; - } else { - spacesCnt++; - } - } - - let result = ''; - if (!insertSpaces) { - const tabsCnt = Math.floor(spacesCnt / indentSize); - spacesCnt = spacesCnt % indentSize; - for (let i = 0; i < tabsCnt; i++) { - result += '\t'; - } - } - - for (let i = 0; i < spacesCnt; i++) { - result += ' '; - } - - return result; - } - - public static normalizeIndentation(str: string, indentSize: number, insertSpaces: boolean): string { - let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str); - if (firstNonWhitespaceIndex === -1) { - firstNonWhitespaceIndex = str.length; - } - return TextModel._normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex); - } - public normalizeIndentation(str: string): string { this._assertNotDisposed(); - return TextModel.normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces); + return normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces); } //#endregion diff --git a/src/vs/editor/contrib/indentation/browser/indentation.ts b/src/vs/editor/contrib/indentation/browser/indentation.ts index 6bcf7e94188..dab26982844 100644 --- a/src/vs/editor/contrib/indentation/browser/indentation.ts +++ b/src/vs/editor/contrib/indentation/browser/indentation.ts @@ -15,7 +15,6 @@ import { Selection } from 'vs/editor/common/core/selection'; import { ICommand, ICursorStateComputerData, IEditOperationBuilder, IEditorContribution } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { EndOfLineSequence, IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; -import { TextModel } from 'vs/editor/common/model/textModel'; import { StandardTokenType, TextEdit } from 'vs/editor/common/languages'; import { ILanguageConfigurationService, LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { IndentConsts } from 'vs/editor/common/languages/supports/indentRules'; @@ -23,6 +22,7 @@ import { IModelService } from 'vs/editor/common/services/model'; import * as indentUtils from 'vs/editor/contrib/indentation/browser/indentUtils'; import * as nls from 'vs/nls'; import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; +import { normalizeIndentation } from 'vs/editor/common/core/indentation'; export function getReindentEditOperations(model: ITextModel, languageConfigurationService: ILanguageConfigurationService, startLineNumber: number, endLineNumber: number, inheritedIndent?: string): IIdentifiedSingleEditOperation[] { if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) { @@ -84,7 +84,7 @@ export function getReindentEditOperations(model: ITextModel, languageConfigurati } if (currentLineText !== adjustedLineContent) { - indentEdits.push(EditOperation.replaceMove(new Selection(startLineNumber, 1, startLineNumber, oldIndentation.length + 1), TextModel.normalizeIndentation(globalIndent, indentSize, insertSpaces))); + indentEdits.push(EditOperation.replaceMove(new Selection(startLineNumber, 1, startLineNumber, oldIndentation.length + 1), normalizeIndentation(globalIndent, indentSize, insertSpaces))); } } else { globalIndent = strings.getLeadingWhitespace(currentLineText); @@ -115,7 +115,7 @@ export function getReindentEditOperations(model: ITextModel, languageConfigurati } if (oldIndentation !== idealIndentForNextLine) { - indentEdits.push(EditOperation.replaceMove(new Selection(lineNumber, 1, lineNumber, oldIndentation.length + 1), TextModel.normalizeIndentation(idealIndentForNextLine, indentSize, insertSpaces))); + indentEdits.push(EditOperation.replaceMove(new Selection(lineNumber, 1, lineNumber, oldIndentation.length + 1), normalizeIndentation(idealIndentForNextLine, indentSize, insertSpaces))); } // calculate idealIndentForNextLine From 7c1c5300513617d79e1c66c8d2117a5b95259ffa Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:38:00 +0100 Subject: [PATCH 84/96] Move `ILanguageService` to `editor/languages` (#141174) --- src/vs/editor/browser/widget/diffReview.ts | 2 +- src/vs/editor/common/{services => languages}/language.ts | 0 src/vs/editor/common/languages/languageConfigurationRegistry.ts | 2 +- src/vs/editor/common/languages/modesRegistry.ts | 2 +- src/vs/editor/common/languages/textToHtmlTokenizer.ts | 2 +- src/vs/editor/common/model/textModel.ts | 2 +- src/vs/editor/common/services/getIconClasses.ts | 2 +- src/vs/editor/common/services/languageService.ts | 2 +- src/vs/editor/common/services/languagesRegistry.ts | 2 +- src/vs/editor/common/services/model.ts | 2 +- src/vs/editor/common/services/modelService.ts | 2 +- src/vs/editor/common/services/semanticTokensProviderStyling.ts | 2 +- .../editor/common/services/textResourceConfigurationService.ts | 2 +- .../contrib/comment/test/browser/lineCommentCommand.test.ts | 2 +- .../contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts | 2 +- .../editor/contrib/gotoSymbol/browser/peek/referencesWidget.ts | 2 +- src/vs/editor/contrib/hover/browser/hover.ts | 2 +- src/vs/editor/contrib/hover/browser/marginHover.ts | 2 +- src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts | 2 +- src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts | 2 +- .../editor/contrib/inlineCompletions/browser/ghostTextWidget.ts | 2 +- .../browser/inlineCompletionsHoverParticipant.ts | 2 +- .../editor/contrib/markdownRenderer/browser/markdownRenderer.ts | 2 +- .../contrib/parameterHints/browser/parameterHintsWidget.ts | 2 +- src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.ts | 2 +- src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts | 2 +- .../contrib/unicodeHighlighter/browser/unicodeHighlighter.ts | 2 +- src/vs/editor/standalone/browser/colorizer.ts | 2 +- src/vs/editor/standalone/browser/inspectTokens/inspectTokens.ts | 2 +- src/vs/editor/standalone/browser/standaloneCodeEditor.ts | 2 +- src/vs/editor/standalone/browser/standaloneEditor.ts | 2 +- src/vs/editor/standalone/browser/standaloneLanguages.ts | 2 +- src/vs/editor/standalone/browser/standaloneServices.ts | 2 +- src/vs/editor/standalone/common/monarch/monarchLexer.ts | 2 +- src/vs/editor/standalone/test/browser/monarch.test.ts | 2 +- src/vs/editor/test/browser/controller/cursor.test.ts | 2 +- src/vs/editor/test/browser/testCodeEditor.ts | 2 +- src/vs/editor/test/common/mocks/mockMode.ts | 2 +- .../test/common/model/bracketPairColorizer/tokenizer.test.ts | 2 +- src/vs/editor/test/common/model/model.test.ts | 2 +- src/vs/editor/test/common/model/textModelWithTokens.test.ts | 2 +- src/vs/editor/test/common/services/modelService.test.ts | 2 +- .../common/services/textResourceConfigurationService.test.ts | 2 +- src/vs/editor/test/common/testTextModel.ts | 2 +- .../workbench/api/browser/mainThreadDocumentContentProviders.ts | 2 +- src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts | 2 +- src/vs/workbench/api/browser/mainThreadLanguages.ts | 2 +- src/vs/workbench/api/browser/mainThreadNotebookKernels.ts | 2 +- src/vs/workbench/browser/actions/windowActions.ts | 2 +- src/vs/workbench/browser/actions/workspaceCommands.ts | 2 +- src/vs/workbench/browser/labels.ts | 2 +- src/vs/workbench/browser/parts/editor/editorQuickAccess.ts | 2 +- src/vs/workbench/browser/parts/editor/editorStatus.ts | 2 +- src/vs/workbench/browser/parts/editor/textResourceEditor.ts | 2 +- src/vs/workbench/common/contextkeys.ts | 2 +- src/vs/workbench/common/editor/textEditorModel.ts | 2 +- src/vs/workbench/common/editor/textResourceEditorModel.ts | 2 +- .../contrib/bulkEdit/browser/preview/bulkEditPreview.ts | 2 +- .../workbench/contrib/bulkEdit/browser/preview/bulkEditTree.ts | 2 +- .../browser/inspectEditorTokens/inspectEditorTokens.ts | 2 +- .../codeEditor/browser/languageConfigurationExtensionPoint.ts | 2 +- src/vs/workbench/contrib/comments/browser/commentNode.ts | 2 +- .../workbench/contrib/comments/browser/commentThreadWidget.ts | 2 +- src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts | 2 +- src/vs/workbench/contrib/debug/common/debugContentProvider.ts | 2 +- src/vs/workbench/contrib/extensions/browser/extensionEditor.ts | 2 +- .../contrib/extensions/browser/extensionsWorkbenchService.ts | 2 +- .../contrib/extensions/browser/fileBasedRecommendations.ts | 2 +- src/vs/workbench/contrib/files/browser/fileActions.ts | 2 +- src/vs/workbench/contrib/files/common/files.ts | 2 +- .../workbench/contrib/format/browser/formatActionsMultiple.ts | 2 +- .../workbench/contrib/interactive/browser/interactiveEditor.ts | 2 +- .../contrib/markdown/browser/markdownDocumentRenderer.ts | 2 +- .../browser/contrib/cellStatusBar/statusBarProviders.ts | 2 +- .../notebook/browser/contrib/codeRenderer/codeRenderer.ts | 2 +- .../contrib/notebook/browser/controller/cellOperations.ts | 2 +- .../contrib/notebook/browser/controller/editActions.ts | 2 +- .../contrib/notebook/browser/controller/executeActions.ts | 2 +- .../contrib/notebook/browser/controller/insertCellActions.ts | 2 +- .../workbench/contrib/notebook/browser/diff/diffComponents.ts | 2 +- .../workbench/contrib/notebook/browser/notebook.contribution.ts | 2 +- .../contrib/notebook/browser/view/cellParts/codeCell.ts | 2 +- .../contrib/notebook/browser/view/cellParts/markdownCell.ts | 2 +- .../contrib/notebook/browser/view/renderers/backLayerWebView.ts | 2 +- .../contrib/notebook/common/model/notebookCellTextModel.ts | 2 +- .../contrib/notebook/common/model/notebookTextModel.ts | 2 +- .../contrib/notebook/test/browser/contrib/find.test.ts | 2 +- .../notebook/test/browser/contrib/notebookUndoRedo.test.ts | 2 +- .../contrib/notebook/test/browser/notebookCommon.test.ts | 2 +- .../contrib/notebook/test/browser/notebookSelection.test.ts | 2 +- .../contrib/notebook/test/browser/notebookTextModel.test.ts | 2 +- .../contrib/notebook/test/browser/notebookViewModel.test.ts | 2 +- .../contrib/notebook/test/browser/testNotebookEditor.ts | 2 +- src/vs/workbench/contrib/output/common/outputChannelModel.ts | 2 +- src/vs/workbench/contrib/performance/browser/perfviewEditor.ts | 2 +- .../workbench/contrib/preferences/browser/preferencesActions.ts | 2 +- .../contrib/preferences/common/preferencesContribution.ts | 2 +- src/vs/workbench/contrib/scm/browser/scmViewPane.ts | 2 +- src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts | 2 +- src/vs/workbench/contrib/search/browser/replaceService.ts | 2 +- .../workbench/contrib/searchEditor/browser/searchEditorModel.ts | 2 +- src/vs/workbench/contrib/snippets/browser/configureSnippets.ts | 2 +- src/vs/workbench/contrib/snippets/browser/insertSnippet.ts | 2 +- .../contrib/snippets/browser/snippetCompletionProvider.ts | 2 +- src/vs/workbench/contrib/snippets/browser/snippetsService.ts | 2 +- .../contrib/surveys/browser/languageSurveys.contribution.ts | 2 +- .../workbench/contrib/testing/common/testingContentProvider.ts | 2 +- .../contrib/themes/browser/themes.test.contribution.ts | 2 +- src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts | 2 +- src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts | 2 +- .../contrib/welcomeGettingStarted/browser/gettingStarted.ts | 2 +- .../welcomeWalkthrough/common/walkThroughContentProvider.ts | 2 +- src/vs/workbench/electron-sandbox/actions/windowActions.ts | 2 +- .../services/dialogs/browser/abstractFileDialogService.ts | 2 +- src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts | 2 +- .../services/dialogs/electron-sandbox/fileDialogService.ts | 2 +- .../dialogs/test/electron-sandbox/fileDialogService.test.ts | 2 +- .../common/workspaceExtensionsConfig.ts | 2 +- .../services/keybinding/test/browser/keybindingEditing.test.ts | 2 +- src/vs/workbench/services/language/common/languageService.ts | 2 +- .../browser/languageDetectionWorkerServiceImpl.ts | 2 +- src/vs/workbench/services/model/common/modelService.ts | 2 +- .../services/preferences/browser/preferencesService.ts | 2 +- .../services/textMate/browser/abstractTextMateService.ts | 2 +- .../services/textMate/browser/nativeTextMateService.ts | 2 +- .../services/textfile/browser/browserTextFileService.ts | 2 +- src/vs/workbench/services/textfile/browser/textFileService.ts | 2 +- .../workbench/services/textfile/common/textFileEditorModel.ts | 2 +- .../services/textfile/electron-sandbox/nativeTextFileService.ts | 2 +- src/vs/workbench/services/themes/browser/fileIconThemeData.ts | 2 +- .../workbench/services/themes/browser/workbenchThemeService.ts | 2 +- .../services/untitled/common/untitledTextEditorModel.ts | 2 +- src/vs/workbench/test/browser/codeeditor.test.ts | 2 +- src/vs/workbench/test/browser/parts/editor/editorModel.test.ts | 2 +- src/vs/workbench/test/browser/workbenchTestServices.ts | 2 +- src/vs/workbench/test/electron-browser/workbenchTestServices.ts | 2 +- 136 files changed, 135 insertions(+), 135 deletions(-) rename src/vs/editor/common/{services => languages}/language.ts (100%) diff --git a/src/vs/editor/browser/widget/diffReview.ts b/src/vs/editor/browser/widget/diffReview.ts index 6df41826c91..38ae5e81a32 100644 --- a/src/vs/editor/browser/widget/diffReview.ts +++ b/src/vs/editor/browser/widget/diffReview.ts @@ -33,7 +33,7 @@ import { Constants } from 'vs/base/common/uint'; import { Codicon } from 'vs/base/common/codicons'; import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; import { ILanguageIdCodec } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILineChange } from 'vs/editor/common/diff/diffComputer'; const DIFF_LINES_PADDING = 3; diff --git a/src/vs/editor/common/services/language.ts b/src/vs/editor/common/languages/language.ts similarity index 100% rename from src/vs/editor/common/services/language.ts rename to src/vs/editor/common/languages/language.ts diff --git a/src/vs/editor/common/languages/languageConfigurationRegistry.ts b/src/vs/editor/common/languages/languageConfigurationRegistry.ts index 010c0bf8d81..f085095871a 100644 --- a/src/vs/editor/common/languages/languageConfigurationRegistry.ts +++ b/src/vs/editor/common/languages/languageConfigurationRegistry.ts @@ -20,7 +20,7 @@ import { RichEditBrackets } from 'vs/editor/common/languages/supports/richEditBr import { EditorAutoIndentStrategy } from 'vs/editor/common/config/editorOptions'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; /** diff --git a/src/vs/editor/common/languages/modesRegistry.ts b/src/vs/editor/common/languages/modesRegistry.ts index 380574fcc0b..4af8ae52311 100644 --- a/src/vs/editor/common/languages/modesRegistry.ts +++ b/src/vs/editor/common/languages/modesRegistry.ts @@ -6,7 +6,7 @@ import * as nls from 'vs/nls'; import { Emitter, Event } from 'vs/base/common/event'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageExtensionPoint } from 'vs/editor/common/services/language'; +import { ILanguageExtensionPoint } from 'vs/editor/common/languages/language'; import { Registry } from 'vs/platform/registry/common/platform'; import { IDisposable } from 'vs/base/common/lifecycle'; import { Mimes } from 'vs/base/common/mime'; diff --git a/src/vs/editor/common/languages/textToHtmlTokenizer.ts b/src/vs/editor/common/languages/textToHtmlTokenizer.ts index 6afe4c4ed94..d2c8ee1c0e2 100644 --- a/src/vs/editor/common/languages/textToHtmlTokenizer.ts +++ b/src/vs/editor/common/languages/textToHtmlTokenizer.ts @@ -8,7 +8,7 @@ import * as strings from 'vs/base/common/strings'; import { IViewLineTokens, LineTokens } from 'vs/editor/common/tokens/lineTokens'; import { ILanguageIdCodec, IState, ITokenizationSupport, LanguageId, TokenizationRegistry } from 'vs/editor/common/languages'; import { NullState, nullTokenizeEncoded } from 'vs/editor/common/languages/nullMode'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; export type IReducedTokenizationSupport = Omit; diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index 7b602817913..c8ea068cb81 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -43,7 +43,7 @@ import { SparseTokensStore } from 'vs/editor/common/tokens/sparseTokensStore'; import { getWordAtText, IWordAtPosition } from 'vs/editor/common/core/wordHelper'; import { FormattingOptions, StandardTokenType } from 'vs/editor/common/languages'; import { ILanguageConfigurationService, ResolvedLanguageConfiguration } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IColorTheme, ThemeColor } from 'vs/platform/theme/common/themeService'; import { IUndoRedoService, ResourceEditStackSnapshot } from 'vs/platform/undoRedo/common/undoRedo'; import { EDITOR_MODEL_DEFAULTS } from 'vs/editor/common/core/textModelDefaults'; diff --git a/src/vs/editor/common/services/getIconClasses.ts b/src/vs/editor/common/services/getIconClasses.ts index 38acfb27967..fab05c61a97 100644 --- a/src/vs/editor/common/services/getIconClasses.ts +++ b/src/vs/editor/common/services/getIconClasses.ts @@ -7,7 +7,7 @@ import { Schemas } from 'vs/base/common/network'; import { DataUri, basenameOrAuthority } from 'vs/base/common/resources'; import { URI as uri } from 'vs/base/common/uri'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { FileKind } from 'vs/platform/files/common/files'; diff --git a/src/vs/editor/common/services/languageService.ts b/src/vs/editor/common/services/languageService.ts index 9906483bee7..1ca2505b7c2 100644 --- a/src/vs/editor/common/services/languageService.ts +++ b/src/vs/editor/common/services/languageService.ts @@ -7,7 +7,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { LanguagesRegistry } from 'vs/editor/common/services/languagesRegistry'; -import { ILanguageNameIdPair, ILanguageSelection, ILanguageService, ILanguageIcon } from 'vs/editor/common/services/language'; +import { ILanguageNameIdPair, ILanguageSelection, ILanguageService, ILanguageIcon } from 'vs/editor/common/languages/language'; import { firstOrDefault } from 'vs/base/common/arrays'; import { ILanguageIdCodec, TokenizationRegistry } from 'vs/editor/common/languages'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; diff --git a/src/vs/editor/common/services/languagesRegistry.ts b/src/vs/editor/common/services/languagesRegistry.ts index d592ffe0099..39d0167439a 100644 --- a/src/vs/editor/common/services/languagesRegistry.ts +++ b/src/vs/editor/common/services/languagesRegistry.ts @@ -12,7 +12,7 @@ import { clearLanguageAssociations, getMimeTypes, registerLanguageAssociation } import { URI } from 'vs/base/common/uri'; import { ILanguageIdCodec, LanguageId } from 'vs/editor/common/languages'; import { ModesRegistry, PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageExtensionPoint, ILanguageNameIdPair, ILanguageIcon } from 'vs/editor/common/services/language'; +import { ILanguageExtensionPoint, ILanguageNameIdPair, ILanguageIcon } from 'vs/editor/common/languages/language'; import { Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { Registry } from 'vs/platform/registry/common/platform'; diff --git a/src/vs/editor/common/services/model.ts b/src/vs/editor/common/services/model.ts index ff27b22d197..32a63a9bbac 100644 --- a/src/vs/editor/common/services/model.ts +++ b/src/vs/editor/common/services/model.ts @@ -6,7 +6,7 @@ import { Event } from 'vs/base/common/event'; import { URI } from 'vs/base/common/uri'; import { ITextBufferFactory, ITextModel, ITextModelCreationOptions } from 'vs/editor/common/model'; -import { ILanguageSelection } from 'vs/editor/common/services/language'; +import { ILanguageSelection } from 'vs/editor/common/languages/language'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { DocumentSemanticTokensProvider, DocumentRangeSemanticTokensProvider } from 'vs/editor/common/languages'; import { SemanticTokensProviderStyling } from 'vs/editor/common/services/semanticTokensProviderStyling'; diff --git a/src/vs/editor/common/services/modelService.ts b/src/vs/editor/common/services/modelService.ts index 4b96565c68a..1033a08b852 100644 --- a/src/vs/editor/common/services/modelService.ts +++ b/src/vs/editor/common/services/modelService.ts @@ -16,7 +16,7 @@ import { EDITOR_MODEL_DEFAULTS } from 'vs/editor/common/core/textModelDefaults'; import { IModelLanguageChangedEvent, IModelContentChangedEvent } from 'vs/editor/common/textModelEvents'; import { DocumentSemanticTokensProviderRegistry, DocumentSemanticTokensProvider, SemanticTokens, SemanticTokensEdits } from 'vs/editor/common/languages'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageSelection, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageSelection, ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService, DocumentTokensProvider } from 'vs/editor/common/services/model'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfiguration'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/editor/common/services/semanticTokensProviderStyling.ts b/src/vs/editor/common/services/semanticTokensProviderStyling.ts index 3bccd7be485..1dfa88f7c15 100644 --- a/src/vs/editor/common/services/semanticTokensProviderStyling.ts +++ b/src/vs/editor/common/services/semanticTokensProviderStyling.ts @@ -7,7 +7,7 @@ import { SemanticTokensLegend, TokenMetadata, FontStyle, MetadataConsts, Semanti import { IThemeService } from 'vs/platform/theme/common/themeService'; import { ILogService, LogLevel } from 'vs/platform/log/common/log'; import { SparseMultilineTokens } from 'vs/editor/common/tokens/sparseMultilineTokens'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; export const enum SemanticTokensProviderStylingConstants { NO_STYLING = 0b01111111111111111111111111111111 diff --git a/src/vs/editor/common/services/textResourceConfigurationService.ts b/src/vs/editor/common/services/textResourceConfigurationService.ts index 6d1c05ad0a7..41008567552 100644 --- a/src/vs/editor/common/services/textResourceConfigurationService.ts +++ b/src/vs/editor/common/services/textResourceConfigurationService.ts @@ -7,7 +7,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { IPosition, Position } from 'vs/editor/common/core/position'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { ITextResourceConfigurationService, ITextResourceConfigurationChangeEvent } from 'vs/editor/common/services/textResourceConfiguration'; import { IConfigurationService, ConfigurationTarget, IConfigurationValue, IConfigurationChangeEvent } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/editor/contrib/comment/test/browser/lineCommentCommand.test.ts b/src/vs/editor/contrib/comment/test/browser/lineCommentCommand.test.ts index 50f65cbae1f..493e93d042a 100644 --- a/src/vs/editor/contrib/comment/test/browser/lineCommentCommand.test.ts +++ b/src/vs/editor/contrib/comment/test/browser/lineCommentCommand.test.ts @@ -11,7 +11,7 @@ import { EncodedTokenizationResult, ColorId, IState, MetadataConsts, Tokenizatio import { CommentRule } from 'vs/editor/common/languages/languageConfiguration'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { NullState } from 'vs/editor/common/languages/nullMode'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILinePreflightData, IPreflightData, ISimpleModel, LineCommentCommand, Type } from 'vs/editor/contrib/comment/browser/lineCommentCommand'; import { testCommand } from 'vs/editor/test/browser/testCommand'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts b/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts index 1a54a5d8349..e65b8493a11 100644 --- a/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts +++ b/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts @@ -21,7 +21,7 @@ import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { IModelDeltaDecoration, ITextModel } from 'vs/editor/common/model'; import { IFoundBracket } from 'vs/editor/common/textModelBracketPairs'; import { DefinitionProviderRegistry, LocationLink } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { ClickLinkGesture, ClickLinkKeyboardEvent, ClickLinkMouseEvent } from 'vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture'; import { PeekContext } from 'vs/editor/contrib/peekView/browser/peekView'; diff --git a/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.ts b/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.ts index 411101b380a..baee24e0c7b 100644 --- a/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.ts +++ b/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.ts @@ -25,7 +25,7 @@ import { ModelDecorationOptions, TextModel } from 'vs/editor/common/model/textMo import { Location } from 'vs/editor/common/languages'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextEditorModel, ITextModelService } from 'vs/editor/common/services/resolverService'; import { AccessibilityProvider, DataSource, Delegate, FileReferencesRenderer, IdentityProvider, OneReferenceRenderer, StringRepresentationProvider, TreeElement } from 'vs/editor/contrib/gotoSymbol/browser/peek/referencesTree'; import * as peekView from 'vs/editor/contrib/peekView/browser/peekView'; diff --git a/src/vs/editor/contrib/hover/browser/hover.ts b/src/vs/editor/contrib/hover/browser/hover.ts index f227ef739d5..1e7d769259b 100644 --- a/src/vs/editor/contrib/hover/browser/hover.ts +++ b/src/vs/editor/contrib/hover/browser/hover.ts @@ -12,7 +12,7 @@ import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution, IScrollEvent } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { GotoDefinitionAtPositionEditorContribution } from 'vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition'; import { HoverStartMode } from 'vs/editor/contrib/hover/browser/hoverOperation'; import { ContentHoverWidget, ContentHoverController } from 'vs/editor/contrib/hover/browser/contentHover'; diff --git a/src/vs/editor/contrib/hover/browser/marginHover.ts b/src/vs/editor/contrib/hover/browser/marginHover.ts index bdda1af777d..848ecb9bba5 100644 --- a/src/vs/editor/contrib/hover/browser/marginHover.ts +++ b/src/vs/editor/contrib/hover/browser/marginHover.ts @@ -10,7 +10,7 @@ import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/markdownRenderer'; import { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition } from 'vs/editor/browser/editorBrowser'; import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { HoverOperation, HoverStartMode, IHoverComputer } from 'vs/editor/contrib/hover/browser/hoverOperation'; import { IOpenerService, NullOpenerService } from 'vs/platform/opener/common/opener'; import { HoverWidget } from 'vs/base/browser/ui/hover/hoverWidget'; diff --git a/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts b/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts index 2b3e5170d82..73a0f88d126 100644 --- a/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts +++ b/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.ts @@ -15,7 +15,7 @@ import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { IModelDecoration } from 'vs/editor/common/model'; import { HoverProviderRegistry } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { getHover } from 'vs/editor/contrib/hover/browser/getHover'; import { HoverAnchor, HoverAnchorType, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import * as nls from 'vs/nls'; diff --git a/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts b/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts index 4db6c2f5175..c6358a217bf 100644 --- a/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts +++ b/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.ts @@ -12,7 +12,7 @@ import { HoverProviderRegistry } from 'vs/editor/common/languages'; import { IModelDecoration } from 'vs/editor/common/model'; import { ModelDecorationInjectedTextOptions } from 'vs/editor/common/model/textModel'; import { HoverAnchor, HoverForeignElementAnchor, IEditorHoverParticipant } from 'vs/editor/contrib/hover/browser/hoverTypes'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { getHover } from 'vs/editor/contrib/hover/browser/getHover'; import { MarkdownHover, MarkdownHoverParticipant } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; diff --git a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts index 91dc63c7f10..95bb7165588 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.ts @@ -16,7 +16,7 @@ import { Range } from 'vs/editor/common/core/range'; import { createStringBuilder } from 'vs/editor/common/core/stringBuilder'; import { IModelDeltaDecoration, PositionAffinity } from 'vs/editor/common/model'; import { ILanguageIdCodec } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ghostTextBackground, ghostTextBorder, ghostTextForeground } from 'vs/editor/common/core/editorColorRegistry'; import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations'; import { RenderLineInput, renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; diff --git a/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts index 228288d1bae..1a4fe99af7c 100644 --- a/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts +++ b/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHoverParticipant.ts @@ -10,7 +10,7 @@ import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/mar import { ICodeEditor, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { Range } from 'vs/editor/common/core/range'; import { IModelDecoration } from 'vs/editor/common/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { HoverAnchor, HoverAnchorType, HoverForeignElementAnchor, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { commitInlineSuggestionAction, GhostTextController, ShowNextInlineSuggestionAction, ShowPreviousInlineSuggestionAction } from 'vs/editor/contrib/inlineCompletions/browser/ghostTextController'; import * as nls from 'vs/nls'; diff --git a/src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts b/src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts index 2b9eb3ec8b0..9dd6c57c2d7 100644 --- a/src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts +++ b/src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts @@ -6,7 +6,7 @@ import { IMarkdownString } from 'vs/base/common/htmlContent'; import { renderMarkdown, MarkdownRenderOptions, MarkedOptions } from 'vs/base/browser/markdownRenderer'; import { IOpenerService } from 'vs/platform/opener/common/opener'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { onUnexpectedError } from 'vs/base/common/errors'; import { tokenizeToString } from 'vs/editor/common/languages/textToHtmlTokenizer'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts index d8d35a11118..13568021d62 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts @@ -17,7 +17,7 @@ import { IMarkdownRenderResult, MarkdownRenderer } from 'vs/editor/contrib/markd import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser'; import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions'; import * as modes from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ParameterHintsModel, TriggerContext } from 'vs/editor/contrib/parameterHints/browser/parameterHintsModel'; import { Context } from 'vs/editor/contrib/parameterHints/browser/provideSignatureHelp'; import * as nls from 'vs/nls'; diff --git a/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.ts b/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.ts index ecc1d8446b5..9823da21955 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.ts @@ -18,7 +18,7 @@ import { EditorOption, EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/edit import { CompletionItemKind, CompletionItemKinds, CompletionItemTag } from 'vs/editor/common/languages'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as nls from 'vs/nls'; import { FileKind } from 'vs/platform/files/common/files'; import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; diff --git a/src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts b/src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts index 4013d5a051a..1fb6cbc2675 100644 --- a/src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/browser/suggestModel.test.ts @@ -19,7 +19,7 @@ import { CompletionItemKind, CompletionItemProvider, CompletionList, CompletionP import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { NullState } from 'vs/editor/common/languages/nullMode'; import { IEditorWorkerService } from 'vs/editor/common/services/editorWorker'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2'; import { SuggestController } from 'vs/editor/contrib/suggest/browser/suggestController'; import { ISuggestMemoryService } from 'vs/editor/contrib/suggest/browser/suggestMemory'; diff --git a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts index 8ca68d62c87..d7d50ff3c34 100644 --- a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts +++ b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts @@ -20,7 +20,7 @@ import { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeSticki import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from 'vs/editor/common/languages/unicodeTextModelHighlighter'; import { IEditorWorkerService, IUnicodeHighlightsResult } from 'vs/editor/common/services/editorWorker'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from 'vs/editor/common/viewModel/viewModelDecorations'; import { HoverAnchor, HoverAnchorType, HoverParticipantRegistry, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { MarkdownHover, renderMarkdownHovers } from 'vs/editor/contrib/hover/browser/markdownHoverParticipant'; diff --git a/src/vs/editor/standalone/browser/colorizer.ts b/src/vs/editor/standalone/browser/colorizer.ts index 1f4b81ddf4b..e30d28fbebb 100644 --- a/src/vs/editor/standalone/browser/colorizer.ts +++ b/src/vs/editor/standalone/browser/colorizer.ts @@ -7,7 +7,7 @@ import * as strings from 'vs/base/common/strings'; import { IViewLineTokens, LineTokens } from 'vs/editor/common/tokens/lineTokens'; import { ITextModel } from 'vs/editor/common/model'; import { ColorId, FontStyle, ILanguageIdCodec, ITokenizationSupport, MetadataConsts, TokenizationRegistry } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { RenderLineInput, renderViewLine2 as renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer'; import { ViewLineRenderingData } from 'vs/editor/common/viewModel'; import { IStandaloneThemeService } from 'vs/editor/standalone/common/standaloneTheme'; diff --git a/src/vs/editor/standalone/browser/inspectTokens/inspectTokens.ts b/src/vs/editor/standalone/browser/inspectTokens/inspectTokens.ts index 98df23c9a96..7847e0f9d80 100644 --- a/src/vs/editor/standalone/browser/inspectTokens/inspectTokens.ts +++ b/src/vs/editor/standalone/browser/inspectTokens/inspectTokens.ts @@ -16,7 +16,7 @@ import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { ITextModel } from 'vs/editor/common/model'; import { FontStyle, IState, ITokenizationSupport, StandardTokenType, TokenMetadata, TokenizationRegistry, ILanguageIdCodec, Token } from 'vs/editor/common/languages'; import { NullState, nullTokenize, nullTokenizeEncoded } from 'vs/editor/common/languages/nullMode'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IStandaloneThemeService } from 'vs/editor/standalone/common/standaloneTheme'; import { editorHoverBackground, editorHoverBorder, editorHoverForeground } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; diff --git a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts index 639a097e58a..5f74dd02351 100644 --- a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts @@ -31,7 +31,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService import { IEditorProgressService } from 'vs/platform/progress/common/progress'; import { StandaloneThemeService } from 'vs/editor/standalone/browser/standaloneThemeService'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageSelection, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageSelection, ILanguageService } from 'vs/editor/common/languages/language'; import { URI } from 'vs/base/common/uri'; import { StandaloneCodeEditorService } from 'vs/editor/standalone/browser/standaloneCodeEditorService'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; diff --git a/src/vs/editor/standalone/browser/standaloneEditor.ts b/src/vs/editor/standalone/browser/standaloneEditor.ts index c0dc5a84c9a..e3255c793b0 100644 --- a/src/vs/editor/standalone/browser/standaloneEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneEditor.ts @@ -18,7 +18,7 @@ import { FindMatch, ITextModel, TextModelResolvedOptions } from 'vs/editor/commo import * as languages from 'vs/editor/common/languages'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { NullState, nullTokenize } from 'vs/editor/common/languages/nullMode'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { createWebWorker as actualCreateWebWorker, IWebWorkerOptions, MonacoWebWorker } from 'vs/editor/browser/services/webWorker'; import * as standaloneEnums from 'vs/editor/common/standalone/standaloneEnums'; diff --git a/src/vs/editor/standalone/browser/standaloneLanguages.ts b/src/vs/editor/standalone/browser/standaloneLanguages.ts index 87132aa8d6f..3bfaf6201fd 100644 --- a/src/vs/editor/standalone/browser/standaloneLanguages.ts +++ b/src/vs/editor/standalone/browser/standaloneLanguages.ts @@ -13,7 +13,7 @@ import * as languages from 'vs/editor/common/languages'; import { LanguageConfiguration } from 'vs/editor/common/languages/languageConfiguration'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageExtensionPoint, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageExtensionPoint, ILanguageService } from 'vs/editor/common/languages/language'; import * as standaloneEnums from 'vs/editor/common/standalone/standaloneEnums'; import { StandaloneServices } from 'vs/editor/standalone/browser/standaloneServices'; import { compile } from 'vs/editor/standalone/common/monarch/monarchCompile'; diff --git a/src/vs/editor/standalone/browser/standaloneServices.ts b/src/vs/editor/standalone/browser/standaloneServices.ts index 0b658f5b130..0e072adbf3c 100644 --- a/src/vs/editor/standalone/browser/standaloneServices.ts +++ b/src/vs/editor/standalone/browser/standaloneServices.ts @@ -62,7 +62,7 @@ import { getSingletonServiceDescriptors, registerSingleton } from 'vs/platform/i import { OpenerService } from 'vs/editor/browser/services/openerService'; import { IEditorWorkerService } from 'vs/editor/common/services/editorWorker'; import { EditorWorkerService } from 'vs/editor/browser/services/editorWorkerService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { MarkerDecorationsService } from 'vs/editor/common/services/markerDecorationsService'; import { IMarkerDecorationsService } from 'vs/editor/common/services/markerDecorations'; import { ModelService } from 'vs/editor/common/services/modelService'; diff --git a/src/vs/editor/standalone/common/monarch/monarchLexer.ts b/src/vs/editor/standalone/common/monarch/monarchLexer.ts index 29950e19515..b04a2a98d22 100644 --- a/src/vs/editor/standalone/common/monarch/monarchLexer.ts +++ b/src/vs/editor/standalone/common/monarch/monarchLexer.ts @@ -12,7 +12,7 @@ import { IDisposable } from 'vs/base/common/lifecycle'; import * as languages from 'vs/editor/common/languages'; import { NullState } from 'vs/editor/common/languages/nullMode'; import { TokenTheme } from 'vs/editor/common/languages/supports/tokenization'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as monarchCommon from 'vs/editor/standalone/common/monarch/monarchCommon'; import { IStandaloneThemeService } from 'vs/editor/standalone/common/standaloneTheme'; diff --git a/src/vs/editor/standalone/test/browser/monarch.test.ts b/src/vs/editor/standalone/test/browser/monarch.test.ts index 130a6b19a6e..4e7c94577ee 100644 --- a/src/vs/editor/standalone/test/browser/monarch.test.ts +++ b/src/vs/editor/standalone/test/browser/monarch.test.ts @@ -5,7 +5,7 @@ import * as assert from 'assert'; import { LanguageService } from 'vs/editor/common/services/languageService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { MonarchTokenizer } from 'vs/editor/standalone/common/monarch/monarchLexer'; import { compile } from 'vs/editor/standalone/common/monarch/monarchCompile'; import { Token, TokenizationRegistry } from 'vs/editor/common/languages'; diff --git a/src/vs/editor/test/browser/controller/cursor.test.ts b/src/vs/editor/test/browser/controller/cursor.test.ts index f2f17534764..080843c105a 100644 --- a/src/vs/editor/test/browser/controller/cursor.test.ts +++ b/src/vs/editor/test/browser/controller/cursor.test.ts @@ -23,7 +23,7 @@ import { MockMode } from 'vs/editor/test/common/mocks/mockMode'; import { javascriptOnEnterRules } from 'vs/editor/test/common/modes/supports/javascriptOnEnterRules'; import { ViewModel } from 'vs/editor/common/viewModel/viewModelImpl'; import { OutgoingViewModelEventKind } from 'vs/editor/common/viewModelEventDispatcher'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; diff --git a/src/vs/editor/test/browser/testCodeEditor.ts b/src/vs/editor/test/browser/testCodeEditor.ts index 1848878362b..9380b1326f7 100644 --- a/src/vs/editor/test/browser/testCodeEditor.ts +++ b/src/vs/editor/test/browser/testCodeEditor.ts @@ -15,7 +15,7 @@ import { ITextBufferFactory, ITextModel } from 'vs/editor/common/model'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { IModelService } from 'vs/editor/common/services/model'; import { ModelService } from 'vs/editor/common/services/modelService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfiguration'; import { ViewModel } from 'vs/editor/common/viewModel/viewModelImpl'; diff --git a/src/vs/editor/test/common/mocks/mockMode.ts b/src/vs/editor/test/common/mocks/mockMode.ts index a8ed2b3549c..4ad2a686fbb 100644 --- a/src/vs/editor/test/common/mocks/mockMode.ts +++ b/src/vs/editor/test/common/mocks/mockMode.ts @@ -6,7 +6,7 @@ import { Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageSelection } from 'vs/editor/common/services/language'; +import { ILanguageSelection } from 'vs/editor/common/languages/language'; export class MockMode extends Disposable { constructor( diff --git a/src/vs/editor/test/common/model/bracketPairColorizer/tokenizer.test.ts b/src/vs/editor/test/common/model/bracketPairColorizer/tokenizer.test.ts index be0d3c455ca..f465597af2f 100644 --- a/src/vs/editor/test/common/model/bracketPairColorizer/tokenizer.test.ts +++ b/src/vs/editor/test/common/model/bracketPairColorizer/tokenizer.test.ts @@ -13,7 +13,7 @@ import { TextModel } from 'vs/editor/common/model/textModel'; import { EncodedTokenizationResult, IState, ITokenizationSupport, LanguageId, MetadataConsts, StandardTokenType, TokenizationRegistry } from 'vs/editor/common/languages'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { createModelServices, instantiateTextModel } from 'vs/editor/test/common/testTextModel'; import { TestLanguageConfigurationService } from 'vs/editor/test/common/modes/testLanguageConfigurationService'; diff --git a/src/vs/editor/test/common/model/model.test.ts b/src/vs/editor/test/common/model/model.test.ts index 2cab056f82a..cd18915c9af 100644 --- a/src/vs/editor/test/common/model/model.test.ts +++ b/src/vs/editor/test/common/model/model.test.ts @@ -15,7 +15,7 @@ import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/langua import { NullState } from 'vs/editor/common/languages/nullMode'; import { MockMode } from 'vs/editor/test/common/mocks/mockMode'; import { createModelServices, createTextModel, instantiateTextModel } from 'vs/editor/test/common/testTextModel'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; // --------- utils diff --git a/src/vs/editor/test/common/model/textModelWithTokens.test.ts b/src/vs/editor/test/common/model/textModelWithTokens.test.ts index b97539d1252..9b28640e053 100644 --- a/src/vs/editor/test/common/model/textModelWithTokens.test.ts +++ b/src/vs/editor/test/common/model/textModelWithTokens.test.ts @@ -14,7 +14,7 @@ import { CharacterPair } from 'vs/editor/common/languages/languageConfiguration' import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; import { NullState } from 'vs/editor/common/languages/nullMode'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TestLineToken } from 'vs/editor/test/common/core/testLineToken'; import { createModelServices, createTextModel, instantiateTextModel } from 'vs/editor/test/common/testTextModel'; diff --git a/src/vs/editor/test/common/services/modelService.test.ts b/src/vs/editor/test/common/services/modelService.test.ts index b29147d662d..8cd75096693 100644 --- a/src/vs/editor/test/common/services/modelService.test.ts +++ b/src/vs/editor/test/common/services/modelService.test.ts @@ -29,7 +29,7 @@ import { LanguageService } from 'vs/editor/common/services/languageService'; import { ColorScheme } from 'vs/platform/theme/common/theme'; import { ModesRegistry } from 'vs/editor/common/languages/modesRegistry'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/testTextResourcePropertiesService'; import { TestLanguageConfigurationService } from 'vs/editor/test/common/modes/testLanguageConfigurationService'; import { getDocumentSemanticTokens, isSemanticTokens } from 'vs/editor/common/services/getSemanticTokens'; diff --git a/src/vs/editor/test/common/services/textResourceConfigurationService.test.ts b/src/vs/editor/test/common/services/textResourceConfigurationService.test.ts index 0ed29121aec..0e96cff2069 100644 --- a/src/vs/editor/test/common/services/textResourceConfigurationService.test.ts +++ b/src/vs/editor/test/common/services/textResourceConfigurationService.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IConfigurationValue, IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; import { TextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfigurationService'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/editor/test/common/testTextModel.ts b/src/vs/editor/test/common/testTextModel.ts index 6051714b703..3be6c15f0da 100644 --- a/src/vs/editor/test/common/testTextModel.ts +++ b/src/vs/editor/test/common/testTextModel.ts @@ -8,7 +8,7 @@ import { URI } from 'vs/base/common/uri'; import { BracketPairColorizationOptions, DefaultEndOfLine, ITextBufferFactory, ITextModelCreationOptions } from 'vs/editor/common/model'; import { TextModel } from 'vs/editor/common/model/textModel'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfiguration'; import { TestLanguageConfigurationService } from 'vs/editor/test/common/modes/testLanguageConfigurationService'; diff --git a/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.ts b/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.ts index 5e5bf14dff5..e7724751f1a 100644 --- a/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.ts +++ b/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.ts @@ -11,7 +11,7 @@ import { Range } from 'vs/editor/common/core/range'; import { ITextModel } from 'vs/editor/common/model'; import { IEditorWorkerService } from 'vs/editor/common/services/editorWorker'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { ExtHostContext, ExtHostDocumentContentProvidersShape, IExtHostContext, MainContext, MainThreadDocumentContentProvidersShape } from '../common/extHost.protocol'; diff --git a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts index e098e7a951b..786c46c509c 100644 --- a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts +++ b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts @@ -15,7 +15,7 @@ import { Range as EditorRange, IRange } from 'vs/editor/common/core/range'; import { ExtHostContext, MainThreadLanguageFeaturesShape, ExtHostLanguageFeaturesShape, MainContext, IExtHostContext, ILanguageConfigurationDto, IRegExpDto, IIndentationRuleDto, IOnEnterRuleDto, ILocationDto, IWorkspaceSymbolDto, reviveWorkspaceEditDto, IDocumentFilterDto, ILocationLinkDto, ISignatureHelpProviderMetadataDto, ILinkDto, ICallHierarchyItemDto, ISuggestDataDto, ICodeActionDto, ISuggestDataDtoField, ISuggestResultDtoField, ICodeActionProviderMetadataDto, ILanguageWordDefinitionDto, IdentifiableInlineCompletions, IdentifiableInlineCompletion, ITypeHierarchyItemDto, IInlayHintDto } from '../common/extHost.protocol'; import { ILanguageConfigurationService, LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { LanguageConfiguration, IndentationRule, OnEnterRule } from 'vs/editor/common/languages/languageConfiguration'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { URI } from 'vs/base/common/uri'; import { Selection } from 'vs/editor/common/core/selection'; diff --git a/src/vs/workbench/api/browser/mainThreadLanguages.ts b/src/vs/workbench/api/browser/mainThreadLanguages.ts index dba97cef040..d7636570a93 100644 --- a/src/vs/workbench/api/browser/mainThreadLanguages.ts +++ b/src/vs/workbench/api/browser/mainThreadLanguages.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { URI, UriComponents } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { MainThreadLanguagesShape, MainContext, IExtHostContext, ExtHostContext, ExtHostLanguagesShape } from '../common/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; diff --git a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts index a12d5dcbc51..ee648342779 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts @@ -8,7 +8,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import { Emitter, Event } from 'vs/base/common/event'; import { combinedDisposable, DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { NotebookDto } from 'vs/workbench/api/browser/mainThreadNotebookDto'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; diff --git a/src/vs/workbench/browser/actions/windowActions.ts b/src/vs/workbench/browser/actions/windowActions.ts index 00c4a393a3e..8d94a73d1e8 100644 --- a/src/vs/workbench/browser/actions/windowActions.ts +++ b/src/vs/workbench/browser/actions/windowActions.ts @@ -17,7 +17,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { ILabelService } from 'vs/platform/label/common/label'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IRecent, isRecentFolder, isRecentWorkspace, IWorkspacesService, IWorkspaceIdentifier, isFolderBackupInfo, isWorkspaceBackupInfo } from 'vs/platform/workspaces/common/workspaces'; import { URI } from 'vs/base/common/uri'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; diff --git a/src/vs/workbench/browser/actions/workspaceCommands.ts b/src/vs/workbench/browser/actions/workspaceCommands.ts index be9a6ff6c0b..61f034e1e57 100644 --- a/src/vs/workbench/browser/actions/workspaceCommands.ts +++ b/src/vs/workbench/browser/actions/workspaceCommands.ts @@ -16,7 +16,7 @@ import { ILabelService } from 'vs/platform/label/common/label'; import { IQuickInputService, IPickOptions, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IFileDialogService, IPickAndOpenOptions } from 'vs/platform/dialogs/common/dialogs'; import { URI } from 'vs/base/common/uri'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/browser/labels.ts b/src/vs/workbench/browser/labels.ts index d8b42c1c39b..b29e3f3c8ff 100644 --- a/src/vs/workbench/browser/labels.ts +++ b/src/vs/workbench/browser/labels.ts @@ -6,7 +6,7 @@ import { URI } from 'vs/base/common/uri'; import { dirname, isEqual, basenameOrAuthority } from 'vs/base/common/resources'; import { IconLabel, IIconLabelValueOptions, IIconLabelCreationOptions } from 'vs/base/browser/ui/iconLabel/iconLabel'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IModelService } from 'vs/editor/common/services/model'; diff --git a/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts b/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts index 38ae51a2dd2..5b6bbdd10a1 100644 --- a/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts +++ b/src/vs/workbench/browser/parts/editor/editorQuickAccess.ts @@ -11,7 +11,7 @@ import { IEditorGroupsService, GroupsOrder } from 'vs/workbench/services/editor/ import { EditorsOrder, IEditorIdentifier, EditorResourceAccessor, SideBySideEditor, GroupIdentifier } from 'vs/workbench/common/editor'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { prepareQuery, scoreItemFuzzy, compareItemsByFuzzyScore, FuzzyScorerCache } from 'vs/base/common/fuzzyScorer'; import { CancellationToken } from 'vs/base/common/cancellation'; diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 7fdbf1c2d4e..c5021bac9be 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -25,7 +25,7 @@ import { BinaryResourceDiffEditor } from 'vs/workbench/browser/parts/editor/bina import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IFileService, FILES_ASSOCIATIONS_CONFIG } from 'vs/platform/files/common/files'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { ILanguageService, ILanguageSelection } from 'vs/editor/common/services/language'; +import { ILanguageService, ILanguageSelection } from 'vs/editor/common/languages/language'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; import { TabFocus } from 'vs/editor/browser/config/tabFocus'; diff --git a/src/vs/workbench/browser/parts/editor/textResourceEditor.ts b/src/vs/workbench/browser/parts/editor/textResourceEditor.ts index 9b09dd9faca..9dfdeab2369 100644 --- a/src/vs/workbench/browser/parts/editor/textResourceEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textResourceEditor.ts @@ -23,7 +23,7 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor import { CancellationToken } from 'vs/base/common/cancellation'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; import { EditorOption, IEditorOptions as ICodeEditorOptions } from 'vs/editor/common/config/editorOptions'; import { ModelConstants } from 'vs/editor/common/model'; diff --git a/src/vs/workbench/common/contextkeys.ts b/src/vs/workbench/common/contextkeys.ts index 404c8aba0f5..3b3a86f2627 100644 --- a/src/vs/workbench/common/contextkeys.ts +++ b/src/vs/workbench/common/contextkeys.ts @@ -8,7 +8,7 @@ import { URI } from 'vs/base/common/uri'; import { localize } from 'vs/nls'; import { IContextKeyService, IContextKey, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { basename, dirname, extname, isEqual } from 'vs/base/common/resources'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IFileService } from 'vs/platform/files/common/files'; import { IModelService } from 'vs/editor/common/services/model'; diff --git a/src/vs/workbench/common/editor/textEditorModel.ts b/src/vs/workbench/common/editor/textEditorModel.ts index 81ac7335e67..4fe469247c9 100644 --- a/src/vs/workbench/common/editor/textEditorModel.ts +++ b/src/vs/workbench/common/editor/textEditorModel.ts @@ -8,7 +8,7 @@ import { EditorModel } from 'vs/workbench/common/editor/editorModel'; import { ILanguageSupport } from 'vs/workbench/services/textfile/common/textfiles'; import { URI } from 'vs/base/common/uri'; import { ITextEditorModel, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService'; -import { ILanguageService, ILanguageSelection } from 'vs/editor/common/services/language'; +import { ILanguageService, ILanguageSelection } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { MutableDisposable } from 'vs/base/common/lifecycle'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; diff --git a/src/vs/workbench/common/editor/textResourceEditorModel.ts b/src/vs/workbench/common/editor/textResourceEditorModel.ts index da90779d2f7..c9ec05a73dc 100644 --- a/src/vs/workbench/common/editor/textResourceEditorModel.ts +++ b/src/vs/workbench/common/editor/textResourceEditorModel.ts @@ -5,7 +5,7 @@ import { BaseTextEditorModel } from 'vs/workbench/common/editor/textEditorModel'; import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { ILanguageDetectionService } from 'vs/workbench/services/languageDetection/common/languageDetectionWorkerService'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; diff --git a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts index 2f039a462ca..c43f62a42fe 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts @@ -5,7 +5,7 @@ import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { createTextBufferFactoryFromSnapshot } from 'vs/editor/common/model/textModel'; import { WorkspaceEditMetadata } from 'vs/editor/common/languages'; diff --git a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.ts b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.ts index 695b272d0ae..f5030f491e4 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditTree.ts @@ -28,7 +28,7 @@ import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo'; import { Iterable } from 'vs/base/common/iterator'; import { ResourceFileEdit } from 'vs/editor/browser/services/bulkEditService'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; // --- VIEW MODEL diff --git a/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.ts b/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.ts index 6b7df05dd5f..78dc30ac740 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/inspectEditorTokens/inspectEditorTokens.ts @@ -17,7 +17,7 @@ import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { ITextModel } from 'vs/editor/common/model'; import { FontStyle, StandardTokenType, TokenMetadata, DocumentSemanticTokensProviderRegistry, SemanticTokensLegend, SemanticTokens, ColorId, DocumentRangeSemanticTokensProviderRegistry } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { editorHoverBackground, editorHoverBorder } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; diff --git a/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts b/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts index eb107933048..54435f773cf 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts @@ -10,7 +10,7 @@ import * as types from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; import { CharacterPair, CommentRule, EnterAction, ExplicitLanguageConfiguration, FoldingRules, IAutoClosingPair, IAutoClosingPairConditional, IndentAction, IndentationRule, OnEnterRule } from 'vs/editor/common/languages/languageConfiguration'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { Registry } from 'vs/platform/registry/common/platform'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; diff --git a/src/vs/workbench/contrib/comments/browser/commentNode.ts b/src/vs/workbench/contrib/comments/browser/commentNode.ts index c9d40dd3502..d58bfc8405b 100644 --- a/src/vs/workbench/contrib/comments/browser/commentNode.ts +++ b/src/vs/workbench/contrib/comments/browser/commentNode.ts @@ -12,7 +12,7 @@ import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/markdownRenderer'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IThemeService } from 'vs/platform/theme/common/themeService'; diff --git a/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts b/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts index b0d27307314..59de9279abb 100644 --- a/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts +++ b/src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts @@ -19,7 +19,7 @@ import { IRange, Range } from 'vs/editor/common/core/range'; import { ITextModel } from 'vs/editor/common/model'; import * as modes from 'vs/editor/common/languages'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { MarkdownRenderer } from 'vs/editor/contrib/markdownRenderer/browser/markdownRenderer'; import { peekViewBorder } from 'vs/editor/contrib/peekView/browser/peekView'; import { ZoneWidget } from 'vs/editor/contrib/zoneWidget/browser/zoneWidget'; diff --git a/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts b/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts index 9111e615692..3ebbddc0f23 100644 --- a/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts +++ b/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts @@ -11,7 +11,7 @@ import * as strings from 'vs/base/common/strings'; import { isCodeEditor } from 'vs/editor/browser/editorBrowser'; import { IEditorModel } from 'vs/editor/common/editorCommon'; import { ITextModel } from 'vs/editor/common/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as nls from 'vs/nls'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/workbench/contrib/debug/common/debugContentProvider.ts b/src/vs/workbench/contrib/debug/common/debugContentProvider.ts index 0ddee28e990..772193c7f16 100644 --- a/src/vs/workbench/contrib/debug/common/debugContentProvider.ts +++ b/src/vs/workbench/contrib/debug/common/debugContentProvider.ts @@ -8,7 +8,7 @@ import { localize } from 'vs/nls'; import { getMimeTypes } from 'vs/editor/common/services/languagesAssociations'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { DEBUG_SCHEME, IDebugService, IDebugSession } from 'vs/workbench/contrib/debug/common/debug'; diff --git a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts index 40998bb0418..6bc9c16f233 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionEditor.ts @@ -55,7 +55,7 @@ import { platform } from 'vs/base/common/process'; import { URI } from 'vs/base/common/uri'; import { Schemas } from 'vs/base/common/network'; import { DEFAULT_MARKDOWN_STYLES, renderMarkdownDocument } from 'vs/workbench/contrib/markdown/browser/markdownDocumentRenderer'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TokenizationRegistry } from 'vs/editor/common/languages'; import { generateTokensCSSForColorMap } from 'vs/editor/common/languages/supports/tokenization'; import { buttonForeground, buttonHoverBackground, editorBackground, textLinkActiveForeground, textLinkForeground } from 'vs/platform/theme/common/colorRegistry'; diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts index 78aff5e7fd9..d71605d0764 100644 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts @@ -35,7 +35,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { IFileService } from 'vs/platform/files/common/files'; import { IExtensionManifest, ExtensionType, IExtension as IPlatformExtension } from 'vs/platform/extensions/common/extensions'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IProductService } from 'vs/platform/product/common/productService'; import { FileAccess } from 'vs/base/common/network'; import { IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; diff --git a/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.ts b/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.ts index cb69e494470..f9eb8c240f2 100644 --- a/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.ts +++ b/src/vs/workbench/contrib/extensions/browser/fileBasedRecommendations.ts @@ -24,7 +24,7 @@ import { Mimes } from 'vs/base/common/mime'; import { getMimeTypes } from 'vs/editor/common/services/languagesAssociations'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IExtensionRecommendationNotificationService, RecommendationsNotificationResult, RecommendationSource } from 'vs/platform/extensionRecommendations/common/extensionRecommendations'; import { IWorkbenchAssignmentService } from 'vs/workbench/services/assignment/common/assignmentService'; import { distinct } from 'vs/base/common/arrays'; diff --git a/src/vs/workbench/contrib/files/browser/fileActions.ts b/src/vs/workbench/contrib/files/browser/fileActions.ts index 6ac2dd010fb..3e336a2aa73 100644 --- a/src/vs/workbench/contrib/files/browser/fileActions.ts +++ b/src/vs/workbench/contrib/files/browser/fileActions.ts @@ -22,7 +22,7 @@ import { REVEAL_IN_EXPLORER_COMMAND_ID, SAVE_ALL_IN_GROUP_COMMAND_ID, NEW_UNTITL import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { ICommandService, CommandsRegistry } from 'vs/platform/commands/common/commands'; import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/files/common/files.ts b/src/vs/workbench/contrib/files/common/files.ts index 1dc0604f0a2..f8010d20ccc 100644 --- a/src/vs/workbench/contrib/files/common/files.ts +++ b/src/vs/workbench/contrib/files/common/files.ts @@ -13,7 +13,7 @@ import { ITextModelContentProvider } from 'vs/editor/common/services/resolverSer import { Disposable, MutableDisposable } from 'vs/base/common/lifecycle'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService, ILanguageSelection } from 'vs/editor/common/services/language'; +import { ILanguageService, ILanguageSelection } from 'vs/editor/common/languages/language'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { InputFocusedContextKey } from 'vs/platform/contextkey/common/contextkeys'; import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService'; diff --git a/src/vs/workbench/contrib/format/browser/formatActionsMultiple.ts b/src/vs/workbench/contrib/format/browser/formatActionsMultiple.ts index 0e4df8b308f..508975bb4fc 100644 --- a/src/vs/workbench/contrib/format/browser/formatActionsMultiple.ts +++ b/src/vs/workbench/contrib/format/browser/formatActionsMultiple.ts @@ -25,7 +25,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ITextModel } from 'vs/editor/common/model'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkbenchExtensionEnablementService } from 'vs/workbench/services/extensionManagement/common/extensionManagement'; import { editorConfigurationBaseNode } from 'vs/editor/common/config/editorConfigurationSchema'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; diff --git a/src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts b/src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts index 9e85f72c292..d95413eb75c 100644 --- a/src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts +++ b/src/vs/workbench/contrib/interactive/browser/interactiveEditor.ts @@ -30,7 +30,7 @@ import { GroupsOrder, IEditorGroup, IEditorGroupsService } from 'vs/workbench/se import { ExecutionStateCellStatusBarContrib, TimerCellStatusBarContrib } from 'vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/executionStatusBarItemController'; import { INotebookKernelService } from 'vs/workbench/contrib/notebook/common/notebookKernelService'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IMenuService, MenuId } from 'vs/platform/actions/common/actions'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { INTERACTIVE_INPUT_CURSOR_BOUNDARY } from 'vs/workbench/contrib/interactive/browser/interactiveCommon'; diff --git a/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.ts b/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.ts index 8c66d240a3c..04ff2c6834c 100644 --- a/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.ts +++ b/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.ts @@ -7,7 +7,7 @@ import * as dompurify from 'vs/base/browser/dompurify/dompurify'; import { marked } from 'vs/base/common/marked/marked'; import { Schemas } from 'vs/base/common/network'; import { tokenizeToString } from 'vs/editor/common/languages/textToHtmlTokenizer'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; export const DEFAULT_MARKDOWN_STYLES = ` diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.ts b/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.ts index 9ed1ba58292..f1834e4ee96 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/cellStatusBar/statusBarProviders.ts @@ -6,7 +6,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { Disposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Registry } from 'vs/platform/registry/common/platform'; diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/codeRenderer/codeRenderer.ts b/src/vs/workbench/contrib/notebook/browser/contrib/codeRenderer/codeRenderer.ts index 3d8301bf7dd..f30736a0051 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/codeRenderer/codeRenderer.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/codeRenderer/codeRenderer.ts @@ -6,7 +6,7 @@ import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import { IEditorConstructionOptions } from 'vs/editor/browser/config/editorConfiguration'; import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Registry } from 'vs/platform/registry/common/platform'; diff --git a/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.ts b/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.ts index fd9406b7da5..e3355f006fa 100644 --- a/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.ts +++ b/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.ts @@ -8,7 +8,7 @@ import { IPosition, Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { EndOfLinePreference, IReadonlyTextBuffer } from 'vs/editor/common/model'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ResourceNotebookCellEdit } from 'vs/workbench/contrib/bulkEdit/browser/bulkCellEdits'; import { INotebookActionContext, INotebookCellActionContext } from 'vs/workbench/contrib/notebook/browser/controller/coreActions'; import { CellEditState, CellFocusMode, expandCellRangesWithHiddenCells, IActiveNotebookEditor, ICellViewModel } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; diff --git a/src/vs/workbench/contrib/notebook/browser/controller/editActions.ts b/src/vs/workbench/contrib/notebook/browser/controller/editActions.ts index a99242a3cc6..dec1acd7471 100644 --- a/src/vs/workbench/contrib/notebook/browser/controller/editActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/controller/editActions.ts @@ -9,7 +9,7 @@ import { URI } from 'vs/base/common/uri'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { MenuId, MenuItemAction, registerAction2 } from 'vs/platform/actions/common/actions'; import { ICommandService } from 'vs/platform/commands/common/commands'; diff --git a/src/vs/workbench/contrib/notebook/browser/controller/executeActions.ts b/src/vs/workbench/contrib/notebook/browser/controller/executeActions.ts index 13b9bb5fed9..535a271ba22 100644 --- a/src/vs/workbench/contrib/notebook/browser/controller/executeActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/controller/executeActions.ts @@ -6,7 +6,7 @@ import { Iterable } from 'vs/base/common/iterator'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.ts b/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.ts index f122345df39..79d40142457 100644 --- a/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.ts @@ -5,7 +5,7 @@ import { Codicon } from 'vs/base/common/codicons'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { IAction2Options, MenuId, MenuRegistry, registerAction2 } from 'vs/platform/actions/common/actions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts b/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts index e5d6250caef..5067e9bc087 100644 --- a/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts +++ b/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts @@ -13,7 +13,7 @@ import { CellDiffSideBySideRenderTemplate, CellDiffSingleSideRenderTemplate, Dif import { CodeEditorWidget, ICodeEditorWidgetOptions } from 'vs/editor/browser/widget/codeEditorWidget'; import { DiffEditorWidget } from 'vs/editor/browser/widget/diffEditorWidget'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { CellEditType, CellUri, NotebookCellMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { ToolBar } from 'vs/base/browser/ui/toolbar/toolbar'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; diff --git a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts index c57e0911a20..86e63e9362e 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts @@ -12,7 +12,7 @@ import { URI } from 'vs/base/common/uri'; import { toFormattedString } from 'vs/base/common/jsonFormatter'; import { ITextModel, ITextBufferFactory, DefaultEndOfLine, ITextBuffer } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageSelection, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageSelection, ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; import * as nls from 'vs/nls'; import { Extensions, IConfigurationPropertySchema, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; diff --git a/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.ts b/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.ts index c76ec7ddfff..8120f862e4e 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.ts @@ -13,7 +13,7 @@ import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { IDimension } from 'vs/editor/common/core/dimension'; import { IReadonlyTextBuffer } from 'vs/editor/common/model'; import { tokenizeToStringSync } from 'vs/editor/common/languages/textToHtmlTokenizer'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/vs/workbench/contrib/notebook/browser/view/cellParts/markdownCell.ts b/src/vs/workbench/contrib/notebook/browser/view/cellParts/markdownCell.ts index 193b07d0ff2..a9d03c735b3 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/cellParts/markdownCell.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/cellParts/markdownCell.ts @@ -14,7 +14,7 @@ import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { tokenizeToStringSync } from 'vs/editor/common/languages/textToHtmlTokenizer'; import { IReadonlyTextBuffer } from 'vs/editor/common/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts b/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts index 4aa423cc39f..cae01832fe6 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.ts @@ -18,7 +18,7 @@ import * as UUID from 'vs/base/common/uuid'; import { TokenizationRegistry } from 'vs/editor/common/languages'; import { generateTokensCSSForColorMap } from 'vs/editor/common/languages/supports/tokenization'; import { tokenizeToString } from 'vs/editor/common/languages/textToHtmlTokenizer'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as nls from 'vs/nls'; import { createAndFillInContextMenuActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { IMenuService, MenuId } from 'vs/platform/actions/common/actions'; diff --git a/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts b/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts index bc1715e388c..8a0c01930f3 100644 --- a/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts +++ b/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts @@ -14,7 +14,7 @@ import { PieceTreeTextBuffer } from 'vs/editor/common/model/pieceTreeTextBuffer/ import { PieceTreeTextBufferBuilder } from 'vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder'; import { TextModel } from 'vs/editor/common/model/textModel'; import { PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { NotebookCellOutputTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookCellOutputTextModel'; import { CellInternalMetadataChangedEvent, CellKind, ICell, ICellOutput, IOutputDto, IOutputItemDto, NotebookCellCollapseState, NotebookCellInternalMetadata, NotebookCellMetadata, NotebookCellOutputsSplice, TransientOptions } from 'vs/workbench/contrib/notebook/common/notebookCommon'; diff --git a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts index 859c23ae7b4..ed57d528699 100644 --- a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts +++ b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts @@ -17,7 +17,7 @@ import { NotebookCellOutputTextModel } from 'vs/workbench/contrib/notebook/commo import { IModelService } from 'vs/editor/common/services/model'; import { Schemas } from 'vs/base/common/network'; import { isEqual } from 'vs/base/common/resources'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModel } from 'vs/editor/common/model'; import { TextModel } from 'vs/editor/common/model/textModel'; import { isDefined } from 'vs/base/common/types'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/contrib/find.test.ts b/src/vs/workbench/contrib/notebook/test/browser/contrib/find.test.ts index 419d157f7b0..b9822f87393 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/contrib/find.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/contrib/find.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { Range } from 'vs/editor/common/core/range'; import { ITextBuffer, ValidAnnotatedEditOperation } from 'vs/editor/common/model'; import { USUAL_WORD_SEPARATORS } from 'vs/editor/common/core/wordHelper'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { FindReplaceState } from 'vs/editor/contrib/find/browser/findState'; import { IConfigurationService, IConfigurationValue } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/contrib/notebookUndoRedo.test.ts b/src/vs/workbench/contrib/notebook/test/browser/contrib/notebookUndoRedo.test.ts index 2026f65714b..00397f1f1e3 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/contrib/notebookUndoRedo.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/contrib/notebookUndoRedo.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { CellEditType, CellKind } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { TestCell, withTestNotebook } from 'vs/workbench/contrib/notebook/test/browser/testNotebookEditor'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/notebookCommon.test.ts b/src/vs/workbench/contrib/notebook/test/browser/notebookCommon.test.ts index 05875d1a2fd..7f762509d5b 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/notebookCommon.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/notebookCommon.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { Mimes } from 'vs/base/common/mime'; import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { CellKind, CellUri, diff, MimeTypeDisplayOrder, NotebookWorkingCopyTypeIdentifier } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { cellIndexesToRanges, cellRangesToIndexes, reduceCellRanges } from 'vs/workbench/contrib/notebook/common/notebookRange'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/notebookSelection.test.ts b/src/vs/workbench/contrib/notebook/test/browser/notebookSelection.test.ts index 13e290d2095..c7700fe4fb9 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/notebookSelection.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/notebookSelection.test.ts @@ -5,7 +5,7 @@ import * as assert from 'assert'; import { DisposableStore } from 'vs/base/common/lifecycle'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { FoldingModel, updateFoldingStateAtIndex } from 'vs/workbench/contrib/notebook/browser/viewModel/foldingModel'; import { runDeleteAction } from 'vs/workbench/contrib/notebook/browser/controller/cellOperations'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts b/src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts index 3554599ea2c..42a2b1c6d2b 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/notebookTextModel.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { VSBuffer } from 'vs/base/common/buffer'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { Mimes } from 'vs/base/common/mime'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo'; import { CellEditType, CellKind, ICellEditOperation, NotebookTextModelChangedEvent, NotebookTextModelWillAddRemoveEvent, SelectionStateType } from 'vs/workbench/contrib/notebook/common/notebookCommon'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/notebookViewModel.test.ts b/src/vs/workbench/contrib/notebook/test/browser/notebookViewModel.test.ts index c50eec66ee8..ebc4e1f9cc6 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/notebookViewModel.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/notebookViewModel.test.ts @@ -9,7 +9,7 @@ import { URI } from 'vs/base/common/uri'; import { IBulkEditService } from 'vs/editor/browser/services/bulkEditService'; import { TrackedRangeStickiness } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; diff --git a/src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts b/src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts index 1ad67175613..86848e2664b 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts @@ -15,7 +15,7 @@ import { mock } from 'vs/base/test/common/mock'; import { EditorFontLigatures } from 'vs/editor/common/config/editorOptions'; import { FontInfo } from 'vs/editor/common/config/fontInfo'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { IModelService } from 'vs/editor/common/services/model'; import { ModelService } from 'vs/editor/common/services/modelService'; diff --git a/src/vs/workbench/contrib/output/common/outputChannelModel.ts b/src/vs/workbench/contrib/output/common/outputChannelModel.ts index 0b51f32b176..7d9a00eec42 100644 --- a/src/vs/workbench/contrib/output/common/outputChannelModel.ts +++ b/src/vs/workbench/contrib/output/common/outputChannelModel.ts @@ -12,7 +12,7 @@ import { URI } from 'vs/base/common/uri'; import { Promises, ThrottledDelayer } from 'vs/base/common/async'; import { IFileService } from 'vs/platform/files/common/files'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { Disposable, toDisposable, IDisposable, dispose, MutableDisposable } from 'vs/base/common/lifecycle'; import { isNumber } from 'vs/base/common/types'; import { EditOperation } from 'vs/editor/common/core/editOperation'; diff --git a/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts b/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts index 334a58bed50..5999b650d62 100644 --- a/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts +++ b/src/vs/workbench/contrib/performance/browser/perfviewEditor.ts @@ -9,7 +9,7 @@ import { TextResourceEditorInput } from 'vs/workbench/common/editor/textResource import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; import { ITextModel } from 'vs/editor/common/model'; import { ILifecycleService, LifecyclePhase, StartupKindToString } from 'vs/workbench/services/lifecycle/common/lifecycle'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IModelService } from 'vs/editor/common/services/model'; import { ITimerService } from 'vs/workbench/services/timer/browser/timerService'; diff --git a/src/vs/workbench/contrib/preferences/browser/preferencesActions.ts b/src/vs/workbench/contrib/preferences/browser/preferencesActions.ts index ced183068f8..8037852103f 100644 --- a/src/vs/workbench/contrib/preferences/browser/preferencesActions.ts +++ b/src/vs/workbench/contrib/preferences/browser/preferencesActions.ts @@ -7,7 +7,7 @@ import { Action } from 'vs/base/common/actions'; import { URI } from 'vs/base/common/uri'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as nls from 'vs/nls'; import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; diff --git a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts index 0bfd8de7611..0a210e04734 100644 --- a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts +++ b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts @@ -8,7 +8,7 @@ import { isEqual } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import * as nls from 'vs/nls'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts index 838c35eb82e..e325909b30b 100644 --- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts +++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts @@ -67,7 +67,7 @@ import { LinkDetector } from 'vs/editor/contrib/links/browser/links'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILabelService } from 'vs/platform/label/common/label'; import { KeyCode } from 'vs/base/common/keyCodes'; import { DEFAULT_FONT_FAMILY } from 'vs/workbench/browser/style'; diff --git a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts index 289975ac72c..ea4f141d52e 100644 --- a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts +++ b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts @@ -23,7 +23,7 @@ import { DisposableStore, IDisposable, toDisposable, MutableDisposable, Disposab import { ILabelService } from 'vs/platform/label/common/label'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/workbench/contrib/search/browser/replaceService.ts b/src/vs/workbench/contrib/search/browser/replaceService.ts index 2e4170f9add..f2b25728474 100644 --- a/src/vs/workbench/contrib/search/browser/replaceService.ts +++ b/src/vs/workbench/contrib/search/browser/replaceService.ts @@ -10,7 +10,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { IReplaceService } from 'vs/workbench/contrib/search/common/replace'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { Match, FileMatch, FileMatchOrMatch, ISearchWorkbenchService } from 'vs/workbench/contrib/search/common/searchModel'; import { IProgress, IProgressStep } from 'vs/platform/progress/common/progress'; import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.ts index 162ea29bfbe..7e47427d013 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditorModel.ts @@ -6,7 +6,7 @@ import { URI } from 'vs/base/common/uri'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { parseSavedSearchEditor, parseSerializedSearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditorSerialization'; import { IWorkingCopyBackupService } from 'vs/workbench/services/workingCopy/common/workingCopyBackup'; diff --git a/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts b/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts index 22b7a6642c0..bbee0e94ef5 100644 --- a/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts +++ b/src/vs/workbench/contrib/snippets/browser/configureSnippets.ts @@ -6,7 +6,7 @@ import * as nls from 'vs/nls'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { extname } from 'vs/base/common/path'; import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { IOpenerService } from 'vs/platform/opener/common/opener'; diff --git a/src/vs/workbench/contrib/snippets/browser/insertSnippet.ts b/src/vs/workbench/contrib/snippets/browser/insertSnippet.ts index 794cdf01a8f..67d500ac750 100644 --- a/src/vs/workbench/contrib/snippets/browser/insertSnippet.ts +++ b/src/vs/workbench/contrib/snippets/browser/insertSnippet.ts @@ -5,7 +5,7 @@ import * as nls from 'vs/nls'; import { registerEditorAction, ServicesAccessor, EditorAction } from 'vs/editor/browser/editorExtensions'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ICommandService, CommandsRegistry } from 'vs/platform/commands/common/commands'; import { ISnippetsService } from 'vs/workbench/contrib/snippets/browser/snippets.contribution'; import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2'; diff --git a/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts b/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts index e1ce9c2a20b..2220a8df7c6 100644 --- a/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts +++ b/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.ts @@ -9,7 +9,7 @@ import { Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { ITextModel } from 'vs/editor/common/model'; import { CompletionItem, CompletionItemKind, CompletionItemProvider, CompletionList, CompletionItemInsertTextRule, CompletionContext, CompletionTriggerKind, CompletionItemLabel } from 'vs/editor/common/languages'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { SnippetParser } from 'vs/editor/contrib/snippet/browser/snippetParser'; import { localize } from 'vs/nls'; import { ISnippetsService } from 'vs/workbench/contrib/snippets/browser/snippets.contribution'; diff --git a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts index e4921a12cdb..26e453f1b1e 100644 --- a/src/vs/workbench/contrib/snippets/browser/snippetsService.ts +++ b/src/vs/workbench/contrib/snippets/browser/snippetsService.ts @@ -9,7 +9,7 @@ import * as resources from 'vs/base/common/resources'; import { isFalsyOrWhitespace } from 'vs/base/common/strings'; import { URI } from 'vs/base/common/uri'; import { Position } from 'vs/editor/common/core/position'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { setSnippetSuggestSupport } from 'vs/editor/contrib/suggest/browser/suggest'; import { localize } from 'vs/nls'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; diff --git a/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts b/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts index bbcc6e62d26..75d75f97b34 100644 --- a/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts +++ b/src/vs/workbench/contrib/surveys/browser/languageSurveys.contribution.ts @@ -5,7 +5,7 @@ import { localize } from 'vs/nls'; import { language } from 'vs/base/common/platform'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkbenchContributionsRegistry, IWorkbenchContribution, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; import { Registry } from 'vs/platform/registry/common/platform'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; diff --git a/src/vs/workbench/contrib/testing/common/testingContentProvider.ts b/src/vs/workbench/contrib/testing/common/testingContentProvider.ts index 8997aa22c58..2f64387a111 100644 --- a/src/vs/workbench/contrib/testing/common/testingContentProvider.ts +++ b/src/vs/workbench/contrib/testing/common/testingContentProvider.ts @@ -6,7 +6,7 @@ import { URI } from 'vs/base/common/uri'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageSelection, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageSelection, ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { TestMessageType } from 'vs/workbench/contrib/testing/common/testCollection'; diff --git a/src/vs/workbench/contrib/themes/browser/themes.test.contribution.ts b/src/vs/workbench/contrib/themes/browser/themes.test.contribution.ts index daa6f698e52..91c825ec22c 100644 --- a/src/vs/workbench/contrib/themes/browser/themes.test.contribution.ts +++ b/src/vs/workbench/contrib/themes/browser/themes.test.contribution.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IWorkbenchThemeService, IWorkbenchColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService'; diff --git a/src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts b/src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts index 54657bd6f38..f7379a4d721 100644 --- a/src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts +++ b/src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts @@ -14,7 +14,7 @@ import { URI } from 'vs/base/common/uri'; import { generateUuid } from 'vs/base/common/uuid'; import { TokenizationRegistry } from 'vs/editor/common/languages'; import { generateTokensCSSForColorMap } from 'vs/editor/common/languages/supports/tokenization'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import * as nls from 'vs/nls'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index 721d4dcb8c7..210308864eb 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -14,7 +14,7 @@ import { registerEditorContribution, ServicesAccessor } from 'vs/editor/browser/ import type { IEditorContribution } from 'vs/editor/common/editorCommon'; import type { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; import { localize } from 'vs/nls'; import { MenuId, MenuRegistry, registerAction2, Action2 } from 'vs/platform/actions/common/actions'; diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts index 7c90960a1e8..f75c2e7558e 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts @@ -46,7 +46,7 @@ import { Link } from 'vs/platform/opener/browser/link'; import { renderFormattedText } from 'vs/base/browser/formattedTextRenderer'; import { IWebviewService } from 'vs/workbench/contrib/webview/browser/webview'; import { DEFAULT_MARKDOWN_STYLES, renderMarkdownDocument } from 'vs/workbench/contrib/markdown/browser/markdownDocumentRenderer'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { generateUuid } from 'vs/base/common/uuid'; import { TokenizationRegistry } from 'vs/editor/common/languages'; diff --git a/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts b/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts index ac99b8669ae..94a4879c2f9 100644 --- a/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts +++ b/src/vs/workbench/contrib/welcomeWalkthrough/common/walkThroughContentProvider.ts @@ -7,7 +7,7 @@ import { URI } from 'vs/base/common/uri'; import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; import { IModelService } from 'vs/editor/common/services/model'; import { ITextModel, DefaultEndOfLine, EndOfLinePreference, ITextBufferFactory } from 'vs/editor/common/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { marked } from 'vs/base/common/marked/marked'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/electron-sandbox/actions/windowActions.ts b/src/vs/workbench/electron-sandbox/actions/windowActions.ts index 23d4b0a40b5..e705c0282e6 100644 --- a/src/vs/workbench/electron-sandbox/actions/windowActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/windowActions.ts @@ -11,7 +11,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { getZoomLevel } from 'vs/base/browser/browser'; import { FileKind } from 'vs/platform/files/common/files'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IQuickInputService, IQuickInputButton } from 'vs/platform/quickinput/common/quickInput'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { ICommandHandler } from 'vs/platform/commands/common/commands'; diff --git a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts index a6f1d4e80fe..72527195529 100644 --- a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts +++ b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts @@ -21,7 +21,7 @@ import { IHostService } from 'vs/workbench/services/host/browser/host'; import Severity from 'vs/base/common/severity'; import { coalesce, distinct } from 'vs/base/common/arrays'; import { trim } from 'vs/base/common/strings'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILabelService } from 'vs/platform/label/common/label'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts b/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts index c51f5d99a44..5aceba041df 100644 --- a/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts +++ b/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts @@ -15,7 +15,7 @@ import { ILabelService } from 'vs/platform/label/common/label'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { getIconClasses } from 'vs/editor/common/services/getIconClasses'; import { Schemas } from 'vs/base/common/network'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; diff --git a/src/vs/workbench/services/dialogs/electron-sandbox/fileDialogService.ts b/src/vs/workbench/services/dialogs/electron-sandbox/fileDialogService.ts index 0d7ec2d3be6..34581dbc54f 100644 --- a/src/vs/workbench/services/dialogs/electron-sandbox/fileDialogService.ts +++ b/src/vs/workbench/services/dialogs/electron-sandbox/fileDialogService.ts @@ -18,7 +18,7 @@ import { IOpenerService } from 'vs/platform/opener/common/opener'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { AbstractFileDialogService } from 'vs/workbench/services/dialogs/browser/abstractFileDialogService'; import { Schemas } from 'vs/base/common/network'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkspacesService } from 'vs/platform/workspaces/common/workspaces'; import { ILabelService } from 'vs/platform/label/common/label'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; diff --git a/src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts b/src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts index 80367a6b832..fbe3a518f48 100644 --- a/src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts +++ b/src/vs/workbench/services/dialogs/test/electron-sandbox/fileDialogService.test.ts @@ -18,7 +18,7 @@ import { FileDialogService } from 'vs/workbench/services/dialogs/electron-sandbo import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { mock } from 'vs/base/test/common/mock'; import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IFileService } from 'vs/platform/files/common/files'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ILabelService } from 'vs/platform/label/common/label'; diff --git a/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.ts b/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.ts index 2011bdee47c..9dc232e8ab2 100644 --- a/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.ts +++ b/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.ts @@ -14,7 +14,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { isWorkspace, IWorkspace, IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { localize } from 'vs/nls'; import { URI } from 'vs/base/common/uri'; import { IJSONEditingService, IJSONValue } from 'vs/workbench/services/configuration/common/jsonEditing'; diff --git a/src/vs/workbench/services/keybinding/test/browser/keybindingEditing.test.ts b/src/vs/workbench/services/keybinding/test/browser/keybindingEditing.test.ts index ff9ab3eb841..baa889291ae 100644 --- a/src/vs/workbench/services/keybinding/test/browser/keybindingEditing.test.ts +++ b/src/vs/workbench/services/keybinding/test/browser/keybindingEditing.test.ts @@ -8,7 +8,7 @@ import * as json from 'vs/base/common/json'; import { KeyCode } from 'vs/base/common/keyCodes'; import { ChordKeybinding, SimpleKeybinding } from 'vs/base/common/keybindings'; import { OS } from 'vs/base/common/platform'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { IModelService } from 'vs/editor/common/services/model'; import { ModelService } from 'vs/editor/common/services/modelService'; diff --git a/src/vs/workbench/services/language/common/languageService.ts b/src/vs/workbench/services/language/common/languageService.ts index a78841aac44..f859c8d8ad7 100644 --- a/src/vs/workbench/services/language/common/languageService.ts +++ b/src/vs/workbench/services/language/common/languageService.ts @@ -7,7 +7,7 @@ import { localize } from 'vs/nls'; import { registerLanguageAssociation, clearLanguageAssociations } from 'vs/editor/common/services/languagesAssociations'; import { joinPath } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; -import { ILanguageExtensionPoint, ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageExtensionPoint, ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; diff --git a/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.ts b/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.ts index fa2e75f1ab0..95d0865f361 100644 --- a/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.ts +++ b/src/vs/workbench/services/languageDetection/browser/languageDetectionWorkerServiceImpl.ts @@ -8,7 +8,7 @@ import { ILanguageDetectionService, ILanguageDetectionStats, LanguageDetectionSt import { FileAccess } from 'vs/base/common/network'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { URI } from 'vs/base/common/uri'; import { isWeb } from 'vs/base/common/platform'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/model/common/modelService.ts b/src/vs/workbench/services/model/common/modelService.ts index 6f99dd8ac86..765860491cb 100644 --- a/src/vs/workbench/services/model/common/modelService.ts +++ b/src/vs/workbench/services/model/common/modelService.ts @@ -7,7 +7,7 @@ import { URI } from 'vs/base/common/uri'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { IModelService } from 'vs/editor/common/services/model'; import { ModelService } from 'vs/editor/common/services/modelService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfiguration'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/preferences/browser/preferencesService.ts b/src/vs/workbench/services/preferences/browser/preferencesService.ts index 822a3501276..704718c5cda 100644 --- a/src/vs/workbench/services/preferences/browser/preferencesService.ts +++ b/src/vs/workbench/services/preferences/browser/preferencesService.ts @@ -14,7 +14,7 @@ import { getCodeEditor, ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { IPosition } from 'vs/editor/common/core/position'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import * as nls from 'vs/nls'; import { ICommandService } from 'vs/platform/commands/common/commands'; diff --git a/src/vs/workbench/services/textMate/browser/abstractTextMateService.ts b/src/vs/workbench/services/textMate/browser/abstractTextMateService.ts index 25eecc009ad..57dcba6afd9 100644 --- a/src/vs/workbench/services/textMate/browser/abstractTextMateService.ts +++ b/src/vs/workbench/services/textMate/browser/abstractTextMateService.ts @@ -15,7 +15,7 @@ import { URI } from 'vs/base/common/uri'; import { IState, ITokenizationSupport, LanguageId, TokenizationRegistry, StandardTokenType, ITokenizationSupportFactory, TokenizationResult, EncodedTokenizationResult } from 'vs/editor/common/languages'; import { nullTokenizeEncoded } from 'vs/editor/common/languages/nullMode'; import { generateTokensCSSForColorMap } from 'vs/editor/common/languages/supports/tokenization'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILogService } from 'vs/platform/log/common/log'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { ExtensionMessageCollector } from 'vs/workbench/services/extensions/common/extensionsRegistry'; diff --git a/src/vs/workbench/services/textMate/browser/nativeTextMateService.ts b/src/vs/workbench/services/textMate/browser/nativeTextMateService.ts index 05ac5adbbdf..e57085a055a 100644 --- a/src/vs/workbench/services/textMate/browser/nativeTextMateService.ts +++ b/src/vs/workbench/services/textMate/browser/nativeTextMateService.ts @@ -6,7 +6,7 @@ import { ITextMateService } from 'vs/workbench/services/textMate/browser/textMate'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { AbstractTextMateService } from 'vs/workbench/services/textMate/browser/abstractTextMateService'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { ILogService } from 'vs/platform/log/common/log'; diff --git a/src/vs/workbench/services/textfile/browser/browserTextFileService.ts b/src/vs/workbench/services/textfile/browser/browserTextFileService.ts index 4b193208e5e..1ca17a7e39e 100644 --- a/src/vs/workbench/services/textfile/browser/browserTextFileService.ts +++ b/src/vs/workbench/services/textfile/browser/browserTextFileService.ts @@ -9,7 +9,7 @@ import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { IDialogService, IFileDialogService } from 'vs/platform/dialogs/common/dialogs'; diff --git a/src/vs/workbench/services/textfile/browser/textFileService.ts b/src/vs/workbench/services/textfile/browser/textFileService.ts index 980704ac843..a995c94b0aa 100644 --- a/src/vs/workbench/services/textfile/browser/textFileService.ts +++ b/src/vs/workbench/services/textfile/browser/textFileService.ts @@ -35,7 +35,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { WORKSPACE_EXTENSION } from 'vs/platform/workspaces/common/workspaces'; import { UTF8, UTF8_with_bom, UTF16be, UTF16le, encodingExists, toEncodeReadable, toDecodeStream, IDecodeStreamResult, DecodeStreamError, DecodeStreamErrorKind } from 'vs/workbench/services/textfile/common/encoding'; import { consumeStream, ReadableStream } from 'vs/base/common/stream'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILogService } from 'vs/platform/log/common/log'; import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import { IElevatedFileService } from 'vs/workbench/services/files/common/elevatedFileService'; diff --git a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts index dc9a506f17d..bb79219e7d7 100644 --- a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts +++ b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts @@ -11,7 +11,7 @@ import { IRevertOptions, SaveReason } from 'vs/workbench/common/editor'; import { BaseTextEditorModel } from 'vs/workbench/common/editor/textEditorModel'; import { IWorkingCopyBackupService, IResolvedWorkingCopyBackup } from 'vs/workbench/services/workingCopy/common/workingCopyBackup'; import { IFileService, FileOperationError, FileOperationResult, FileChangesEvent, FileChangeType, IFileStatWithMetadata, ETAG_DISABLED, FileSystemProviderCapabilities, NotModifiedSinceFileOperationError } from 'vs/platform/files/common/files'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { timeout, TaskSequentializer } from 'vs/base/common/async'; import { ITextBufferFactory, ITextModel } from 'vs/editor/common/model'; diff --git a/src/vs/workbench/services/textfile/electron-sandbox/nativeTextFileService.ts b/src/vs/workbench/services/textfile/electron-sandbox/nativeTextFileService.ts index 40f2ae9a602..a984f2484b8 100644 --- a/src/vs/workbench/services/textfile/electron-sandbox/nativeTextFileService.ts +++ b/src/vs/workbench/services/textfile/electron-sandbox/nativeTextFileService.ts @@ -22,7 +22,7 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { IWorkingCopyFileService } from 'vs/workbench/services/workingCopy/common/workingCopyFileService'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IElevatedFileService } from 'vs/workbench/services/files/common/elevatedFileService'; import { ILogService } from 'vs/platform/log/common/log'; import { Promises } from 'vs/base/common/async'; diff --git a/src/vs/workbench/services/themes/browser/fileIconThemeData.ts b/src/vs/workbench/services/themes/browser/fileIconThemeData.ts index 7c22e8459a2..36cfef71301 100644 --- a/src/vs/workbench/services/themes/browser/fileIconThemeData.ts +++ b/src/vs/workbench/services/themes/browser/fileIconThemeData.ts @@ -13,7 +13,7 @@ import { getParseErrorMessage } from 'vs/base/common/jsonErrorMessages'; import { asCSSUrl } from 'vs/base/browser/dom'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; export class FileIconThemeData implements IWorkbenchFileIconTheme { diff --git a/src/vs/workbench/services/themes/browser/workbenchThemeService.ts b/src/vs/workbench/services/themes/browser/workbenchThemeService.ts index 9ea293a1ad5..93ea6af4ebb 100644 --- a/src/vs/workbench/services/themes/browser/workbenchThemeService.ts +++ b/src/vs/workbench/services/themes/browser/workbenchThemeService.ts @@ -40,7 +40,7 @@ import { RunOnceScheduler, Sequencer } from 'vs/base/common/async'; import { IUserDataInitializationService } from 'vs/workbench/services/userData/browser/userDataInit'; import { getIconsStyleSheet } from 'vs/platform/theme/browser/iconsStyleSheet'; import { asCssVariableName, getColorRegistry } from 'vs/platform/theme/common/colorRegistry'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; // implementation diff --git a/src/vs/workbench/services/untitled/common/untitledTextEditorModel.ts b/src/vs/workbench/services/untitled/common/untitledTextEditorModel.ts index 082caaffceb..b399f395d18 100644 --- a/src/vs/workbench/services/untitled/common/untitledTextEditorModel.ts +++ b/src/vs/workbench/services/untitled/common/untitledTextEditorModel.ts @@ -6,7 +6,7 @@ import { ISaveOptions } from 'vs/workbench/common/editor'; import { BaseTextEditorModel } from 'vs/workbench/common/editor/textEditorModel'; import { URI } from 'vs/base/common/uri'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IModelService } from 'vs/editor/common/services/model'; import { Event, Emitter } from 'vs/base/common/event'; import { IWorkingCopyBackupService } from 'vs/workbench/services/workingCopy/common/workingCopyBackup'; diff --git a/src/vs/workbench/test/browser/codeeditor.test.ts b/src/vs/workbench/test/browser/codeeditor.test.ts index 7c1bda2dec1..4099410b44d 100644 --- a/src/vs/workbench/test/browser/codeeditor.test.ts +++ b/src/vs/workbench/test/browser/codeeditor.test.ts @@ -8,7 +8,7 @@ import { TestInstantiationService } from 'vs/platform/instantiation/test/common/ import { URI } from 'vs/base/common/uri'; import { workbenchInstantiationService, TestEditorService } from 'vs/workbench/test/browser/workbenchTestServices'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { RangeHighlightDecorations } from 'vs/workbench/browser/codeeditor'; import { TextModel } from 'vs/editor/common/model/textModel'; diff --git a/src/vs/workbench/test/browser/parts/editor/editorModel.test.ts b/src/vs/workbench/test/browser/parts/editor/editorModel.test.ts index d53ffe69b30..466bce2aa80 100644 --- a/src/vs/workbench/test/browser/parts/editor/editorModel.test.ts +++ b/src/vs/workbench/test/browser/parts/editor/editorModel.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { BaseTextEditorModel } from 'vs/workbench/common/editor/textEditorModel'; import { IModelService } from 'vs/editor/common/services/model'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index 733bf64f861..a1e20154e2a 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -28,7 +28,7 @@ import { IModelService } from 'vs/editor/common/services/model'; import { LanguageService } from 'vs/editor/common/services/languageService'; import { ModelService } from 'vs/editor/common/services/modelService'; import { IResourceEncoding, ITextFileService, IReadTextFileOptions, ITextFileStreamContent, IWriteTextFileOptions, ITextFileEditorModel } from 'vs/workbench/services/textfile/common/textfiles'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IHistoryService } from 'vs/workbench/services/history/common/history'; import { IInstantiationService, ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 33ffd4f1b50..aaa328478ee 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -37,7 +37,7 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; import { MouseInputEvent } from 'vs/base/parts/sandbox/common/electronTypes'; -import { ILanguageService } from 'vs/editor/common/services/language'; +import { ILanguageService } from 'vs/editor/common/languages/language'; import { IOSProperties, IOSStatistics } from 'vs/platform/native/common/native'; import { homedir, release, tmpdir, hostname } from 'os'; import { IEnvironmentService, INativeEnvironmentService } from 'vs/platform/environment/common/environment'; From 7254371c382e057fa780159b4908f714fbe270db Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:39:48 +0100 Subject: [PATCH 85/96] Move `unicodeTextModelHighlighter.ts` to `/services/` (#141174) --- src/vs/editor/browser/services/editorWorkerService.ts | 2 +- src/vs/editor/common/services/editorSimpleWorker.ts | 2 +- src/vs/editor/common/services/editorWorker.ts | 2 +- .../{languages => services}/unicodeTextModelHighlighter.ts | 0 .../contrib/unicodeHighlighter/browser/unicodeHighlighter.ts | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename src/vs/editor/common/{languages => services}/unicodeTextModelHighlighter.ts (100%) diff --git a/src/vs/editor/browser/services/editorWorkerService.ts b/src/vs/editor/browser/services/editorWorkerService.ts index 5b5c366d397..f1ac787f8ab 100644 --- a/src/vs/editor/browser/services/editorWorkerService.ts +++ b/src/vs/editor/browser/services/editorWorkerService.ts @@ -23,7 +23,7 @@ import { isNonEmptyArray } from 'vs/base/common/arrays'; import { ILogService } from 'vs/platform/log/common/log'; import { StopWatch } from 'vs/base/common/stopwatch'; import { canceled } from 'vs/base/common/errors'; -import { UnicodeHighlighterOptions } from 'vs/editor/common/languages/unicodeTextModelHighlighter'; +import { UnicodeHighlighterOptions } from 'vs/editor/common/services/unicodeTextModelHighlighter'; import { IEditorWorkerHost } from 'vs/editor/common/services/editorWorkerHost'; /** diff --git a/src/vs/editor/common/services/editorSimpleWorker.ts b/src/vs/editor/common/services/editorSimpleWorker.ts index 59cb472ee52..f02fe56bcef 100644 --- a/src/vs/editor/common/services/editorSimpleWorker.ts +++ b/src/vs/editor/common/services/editorSimpleWorker.ts @@ -22,7 +22,7 @@ import { createMonacoBaseAPI } from 'vs/editor/common/services/editorBaseApi'; import * as types from 'vs/base/common/types'; import { IEditorWorkerHost } from 'vs/editor/common/services/editorWorkerHost'; import { StopWatch } from 'vs/base/common/stopwatch'; -import { UnicodeTextModelHighlighter, UnicodeHighlighterOptions } from 'vs/editor/common/languages/unicodeTextModelHighlighter'; +import { UnicodeTextModelHighlighter, UnicodeHighlighterOptions } from 'vs/editor/common/services/unicodeTextModelHighlighter'; export interface IMirrorModel extends IMirrorTextModel { readonly uri: URI; diff --git a/src/vs/editor/common/services/editorWorker.ts b/src/vs/editor/common/services/editorWorker.ts index ea7685a1685..b2c50be5ae8 100644 --- a/src/vs/editor/common/services/editorWorker.ts +++ b/src/vs/editor/common/services/editorWorker.ts @@ -7,7 +7,7 @@ import { URI } from 'vs/base/common/uri'; import { IRange } from 'vs/editor/common/core/range'; import { IChange, IDiffComputationResult } from 'vs/editor/common/diff/diffComputer'; import { IInplaceReplaceSupportResult, TextEdit } from 'vs/editor/common/languages'; -import { UnicodeHighlighterOptions } from 'vs/editor/common/languages/unicodeTextModelHighlighter'; +import { UnicodeHighlighterOptions } from 'vs/editor/common/services/unicodeTextModelHighlighter'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; export const ID_EDITOR_WORKER_SERVICE = 'editorWorkerService'; diff --git a/src/vs/editor/common/languages/unicodeTextModelHighlighter.ts b/src/vs/editor/common/services/unicodeTextModelHighlighter.ts similarity index 100% rename from src/vs/editor/common/languages/unicodeTextModelHighlighter.ts rename to src/vs/editor/common/services/unicodeTextModelHighlighter.ts diff --git a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts index d7d50ff3c34..eb21f65f984 100644 --- a/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts +++ b/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.ts @@ -18,7 +18,7 @@ import { Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { IModelDecoration, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from 'vs/editor/common/model'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; -import { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from 'vs/editor/common/languages/unicodeTextModelHighlighter'; +import { UnicodeHighlighterOptions, UnicodeHighlighterReason, UnicodeHighlighterReasonKind, UnicodeTextModelHighlighter } from 'vs/editor/common/services/unicodeTextModelHighlighter'; import { IEditorWorkerService, IUnicodeHighlightsResult } from 'vs/editor/common/services/editorWorker'; import { ILanguageService } from 'vs/editor/common/languages/language'; import { isModelDecorationInComment, isModelDecorationInString, isModelDecorationVisible } from 'vs/editor/common/viewModel/viewModelDecorations'; From 67f1f74cd2dacd713925c76a5f5114f7f8b4c10e Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 12:40:35 +0100 Subject: [PATCH 86/96] Fix `monaco.d.ts.recipe` --- build/monaco/monaco.d.ts.recipe | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/monaco/monaco.d.ts.recipe b/build/monaco/monaco.d.ts.recipe index 4c43340eee3..bf4008cce71 100644 --- a/build/monaco/monaco.d.ts.recipe +++ b/build/monaco/monaco.d.ts.recipe @@ -93,7 +93,7 @@ declare namespace monaco.languages { #includeAll(vs/editor/standalone/browser/standaloneLanguages;languages.=>;editorCommon.=>editor.;model.=>editor.;IMarkerData=>editor.IMarkerData): #includeAll(vs/editor/common/languages/languageConfiguration): #includeAll(vs/editor/common/languages;IMarkerData=>editor.IMarkerData;ISingleEditOperation=>editor.ISingleEditOperation;model.=>editor.): Token -#include(vs/editor/common/services/language): ILanguageExtensionPoint +#include(vs/editor/common/languages/language): ILanguageExtensionPoint #includeAll(vs/editor/standalone/common/monarch/monarchTypes): } From cd9defca8a6c7108676215443ac68756e4cb63f6 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 15:28:36 +0100 Subject: [PATCH 87/96] Reduce usage of `IIdentifiedSingleEditOperation` --- .../commands/trimTrailingWhitespaceCommand.ts | 8 ++++---- src/vs/editor/common/model.ts | 16 ++-------------- src/vs/editor/common/model/editStack.ts | 5 +++-- src/vs/editor/common/model/textModel.ts | 7 ++++--- src/vs/editor/common/services/modelService.ts | 6 +++--- .../colorPicker/browser/colorHoverParticipant.ts | 11 ++++++----- .../comment/browser/blockCommentCommand.ts | 14 +++++++------- .../comment/browser/lineCommentCommand.ts | 16 ++++++++-------- .../contrib/indentation/browser/indentation.ts | 10 +++++----- .../linesOperations/browser/linesOperations.ts | 14 +++++++------- .../linesOperations/browser/sortLinesCommand.ts | 6 +++--- .../linkedEditing/browser/linkedEditing.ts | 5 +++-- .../contrib/snippet/browser/snippetSession.ts | 4 ++-- .../standalone/browser/standaloneServices.ts | 6 +++--- .../test/browser/commands/shiftCommand.test.ts | 8 ++++---- .../test/browser/commands/sideEditing.test.ts | 5 ++--- .../trimTrailingWhitespaceCommand.test.ts | 10 +++++----- src/vs/editor/test/browser/testCommand.ts | 7 ++++--- .../test/common/model/editableTextModel.test.ts | 16 ++++++++-------- .../common/model/editableTextModelAuto.test.ts | 7 +++---- .../common/model/editableTextModelTestUtils.ts | 11 +++++------ .../test/common/model/modelEditOperation.test.ts | 13 +++++-------- .../editor/test/common/model/tokensStore.test.ts | 4 ++-- src/vs/monaco.d.ts | 15 +-------------- src/vs/workbench/api/browser/mainThreadEditor.ts | 4 ++-- .../contrib/bulkEdit/browser/bulkTextEdits.ts | 6 +++--- .../bulkEdit/browser/preview/bulkEditPreview.ts | 9 ++++----- .../contrib/output/common/outputChannelModel.ts | 8 ++++---- .../contrib/search/browser/replaceService.ts | 6 +++--- .../preferences/common/preferencesModels.ts | 8 ++++---- .../test/browser/untitledTextEditor.test.ts | 5 ++--- 31 files changed, 121 insertions(+), 149 deletions(-) diff --git a/src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts b/src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts index c6731682052..ebceaddc032 100644 --- a/src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts +++ b/src/vs/editor/common/commands/trimTrailingWhitespaceCommand.ts @@ -4,12 +4,12 @@ *--------------------------------------------------------------------------------------------*/ import * as strings from 'vs/base/common/strings'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; import { ICommand, ICursorStateComputerData, IEditOperationBuilder } from 'vs/editor/common/editorCommon'; -import { IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; export class TrimTrailingWhitespaceCommand implements ICommand { @@ -42,7 +42,7 @@ export class TrimTrailingWhitespaceCommand implements ICommand { /** * Generate commands for trimming trailing whitespace on a model and ignore lines on which cursors are sitting. */ -export function trimTrailingWhitespace(model: ITextModel, cursors: Position[]): IIdentifiedSingleEditOperation[] { +export function trimTrailingWhitespace(model: ITextModel, cursors: Position[]): ISingleEditOperation[] { // Sort cursors ascending cursors.sort((a, b) => { if (a.lineNumber === b.lineNumber) { @@ -59,7 +59,7 @@ export function trimTrailingWhitespace(model: ITextModel, cursors: Position[]): } } - const r: IIdentifiedSingleEditOperation[] = []; + const r: ISingleEditOperation[] = []; let rLen = 0; let cursorIndex = 0; const cursorLen = cursors.length; diff --git a/src/vs/editor/common/model.ts b/src/vs/editor/common/model.ts index d151f2caf8b..47d8d70f565 100644 --- a/src/vs/editor/common/model.ts +++ b/src/vs/editor/common/model.ts @@ -22,6 +22,7 @@ import { equals } from 'vs/base/common/objects'; import { IBracketPairsTextModelPart } from 'vs/editor/common/textModelBracketPairs'; import { IGuidesTextModelPart } from 'vs/editor/common/textModelGuides'; import { IWordAtPosition } from 'vs/editor/common/core/wordHelper'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; /** * Vertical Lane in the overview ruler of the editor. @@ -365,25 +366,12 @@ export interface ISingleEditOperationIdentifier { /** * A single edit operation, that has an identifier. */ -export interface IIdentifiedSingleEditOperation { +export interface IIdentifiedSingleEditOperation extends ISingleEditOperation { /** * An identifier associated with this single edit operation. * @internal */ identifier?: ISingleEditOperationIdentifier | null; - /** - * The range to replace. This can be empty to emulate a simple insert. - */ - range: IRange; - /** - * The text to replace with. This can be null to emulate a simple delete. - */ - text: string | null; - /** - * This indicates that this operation has "insert" semantics. - * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. - */ - forceMoveMarkers?: boolean; /** * This indicates that this operation is inserting automatic whitespace * that can be removed on next model edit operation if `config.trimAutoWhitespace` is true. diff --git a/src/vs/editor/common/model/editStack.ts b/src/vs/editor/common/model/editStack.ts index 5875306a59f..bb67566ac5a 100644 --- a/src/vs/editor/common/model/editStack.ts +++ b/src/vs/editor/common/model/editStack.ts @@ -6,7 +6,7 @@ import * as nls from 'vs/nls'; import { onUnexpectedError } from 'vs/base/common/errors'; import { Selection } from 'vs/editor/common/core/selection'; -import { EndOfLineSequence, ICursorStateComputer, IIdentifiedSingleEditOperation, IValidEditOperation, ITextModel } from 'vs/editor/common/model'; +import { EndOfLineSequence, ICursorStateComputer, IValidEditOperation, ITextModel } from 'vs/editor/common/model'; import { TextModel } from 'vs/editor/common/model/textModel'; import { IUndoRedoService, IResourceUndoRedoElement, UndoRedoElementType, IWorkspaceUndoRedoElement } from 'vs/platform/undoRedo/common/undoRedo'; import { URI } from 'vs/base/common/uri'; @@ -14,6 +14,7 @@ import { TextChange, compressConsecutiveTextChanges } from 'vs/editor/common/cor import * as buffer from 'vs/base/common/buffer'; import { IDisposable } from 'vs/base/common/lifecycle'; import { basename } from 'vs/base/common/resources'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; function uriGetComparisonKey(resource: URI): string { return resource.toString(); @@ -423,7 +424,7 @@ export class EditStack { editStackElement.append(this._model, [], getModelEOL(this._model), this._model.getAlternativeVersionId(), null); } - public pushEditOperation(beforeCursorState: Selection[] | null, editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer | null): Selection[] | null { + public pushEditOperation(beforeCursorState: Selection[] | null, editOperations: ISingleEditOperation[], cursorStateComputer: ICursorStateComputer | null): Selection[] | null { const editStackElement = this._getOrCreateEditStackElement(beforeCursorState); const inverseEditOperations = this._model.applyEdits(editOperations, true); const afterCursorState = EditStack._computeCursorState(cursorStateComputer, inverseEditOperations); diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index c8ea068cb81..9e944ddc125 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -48,6 +48,7 @@ import { IColorTheme, ThemeColor } from 'vs/platform/theme/common/themeService'; import { IUndoRedoService, ResourceEditStackSnapshot } from 'vs/platform/undoRedo/common/undoRedo'; import { EDITOR_MODEL_DEFAULTS } from 'vs/editor/common/core/textModelDefaults'; import { normalizeIndentation } from 'vs/editor/common/core/indentation'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; function createTextBufferBuilder() { return new PieceTreeTextBufferBuilder(); @@ -1374,7 +1375,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati } _applyUndo(changes: TextChange[], eol: model.EndOfLineSequence, resultingAlternativeVersionId: number, resultingSelection: Selection[] | null): void { - const edits = changes.map((change) => { + const edits = changes.map((change) => { const rangeStart = this.getPositionAt(change.newPosition); const rangeEnd = this.getPositionAt(change.newEnd); return { @@ -1386,7 +1387,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati } _applyRedo(changes: TextChange[], eol: model.EndOfLineSequence, resultingAlternativeVersionId: number, resultingSelection: Selection[] | null): void { - const edits = changes.map((change) => { + const edits = changes.map((change) => { const rangeStart = this.getPositionAt(change.oldPosition); const rangeEnd = this.getPositionAt(change.oldEnd); return { @@ -1397,7 +1398,7 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati this._applyUndoRedoEdits(edits, eol, false, true, resultingAlternativeVersionId, resultingSelection); } - private _applyUndoRedoEdits(edits: model.IIdentifiedSingleEditOperation[], eol: model.EndOfLineSequence, isUndoing: boolean, isRedoing: boolean, resultingAlternativeVersionId: number, resultingSelection: Selection[] | null): void { + private _applyUndoRedoEdits(edits: ISingleEditOperation[], eol: model.EndOfLineSequence, isUndoing: boolean, isRedoing: boolean, resultingAlternativeVersionId: number, resultingSelection: Selection[] | null): void { try { this._onDidChangeDecorations.beginDeferredEmit(); this._eventEmitter.beginDeferredEmit(); diff --git a/src/vs/editor/common/services/modelService.ts b/src/vs/editor/common/services/modelService.ts index 1033a08b852..b1eef9c5362 100644 --- a/src/vs/editor/common/services/modelService.ts +++ b/src/vs/editor/common/services/modelService.ts @@ -8,9 +8,9 @@ import { Disposable, IDisposable, DisposableStore, dispose } from 'vs/base/commo import * as platform from 'vs/base/common/platform'; import * as errors from 'vs/base/common/errors'; import { URI } from 'vs/base/common/uri'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; -import { DefaultEndOfLine, EndOfLinePreference, EndOfLineSequence, IIdentifiedSingleEditOperation, ITextBuffer, ITextBufferFactory, ITextModel, ITextModelCreationOptions } from 'vs/editor/common/model'; +import { DefaultEndOfLine, EndOfLinePreference, EndOfLineSequence, ITextBuffer, ITextBufferFactory, ITextModel, ITextModelCreationOptions } from 'vs/editor/common/model'; import { TextModel, createTextBuffer } from 'vs/editor/common/model/textModel'; import { EDITOR_MODEL_DEFAULTS } from 'vs/editor/common/core/textModelDefaults'; import { IModelLanguageChangedEvent, IModelContentChangedEvent } from 'vs/editor/common/textModelEvents'; @@ -469,7 +469,7 @@ export class ModelService extends Disposable implements IModelService { /** * Compute edits to bring `model` to the state of `textSource`. */ - public static _computeEdits(model: ITextModel, textBuffer: ITextBuffer): IIdentifiedSingleEditOperation[] { + public static _computeEdits(model: ITextModel, textBuffer: ITextBuffer): ISingleEditOperation[] { const modelLineCount = model.getLineCount(); const textBufferLineCount = textBuffer.getLineCount(); const commonPrefix = this._commonPrefix(model, modelLineCount, 1, textBuffer, textBufferLineCount, 1); diff --git a/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts b/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts index cbe2a4fc711..406407f5fd4 100644 --- a/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts +++ b/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.ts @@ -10,7 +10,7 @@ import { Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecyc import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; import { Range } from 'vs/editor/common/core/range'; -import { IIdentifiedSingleEditOperation, IModelDecoration, ITextModel, TrackedRangeStickiness } from 'vs/editor/common/model'; +import { IModelDecoration, ITextModel, TrackedRangeStickiness } from 'vs/editor/common/model'; import { DocumentColorProvider, IColorInformation } from 'vs/editor/common/languages'; import { getColorPresentations } from 'vs/editor/contrib/colorPicker/browser/color'; import { ColorDetector } from 'vs/editor/contrib/colorPicker/browser/colorDetector'; @@ -18,6 +18,7 @@ import { ColorPickerModel } from 'vs/editor/contrib/colorPicker/browser/colorPic import { ColorPickerWidget } from 'vs/editor/contrib/colorPicker/browser/colorPickerWidget'; import { HoverAnchor, HoverAnchorType, IEditorHoverParticipant, IEditorHoverRenderContext, IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; import { IThemeService } from 'vs/platform/theme/common/themeService'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; export class ColorHover implements IHoverPart { @@ -112,10 +113,10 @@ export class ColorHoverParticipant implements IEditorHoverParticipant { - let textEdits: IIdentifiedSingleEditOperation[]; + let textEdits: ISingleEditOperation[]; let newRange: Range; if (model.presentation.textEdit) { - textEdits = [model.presentation.textEdit as IIdentifiedSingleEditOperation]; + textEdits = [model.presentation.textEdit]; newRange = new Range( model.presentation.textEdit.range.startLineNumber, model.presentation.textEdit.range.startColumn, @@ -127,14 +128,14 @@ export class ColorHoverParticipant implements IEditorHoverParticipant { + let edits: ISingleEditOperation[] = effectiveRanges.map(range => { return EditOperation.replace(range, ''); }); @@ -849,7 +849,7 @@ export class JoinLinesAction extends EditorAction { return; } - let edits: IIdentifiedSingleEditOperation[] = []; + let edits: ISingleEditOperation[] = []; let endCursorState: Selection[] = []; let endPrimaryCursor = primaryCursor; let lineOffset = 0; @@ -1018,7 +1018,7 @@ export abstract class AbstractCaseAction extends EditorAction { } const wordSeparators = editor.getOption(EditorOption.wordSeparators); - const textEdits: IIdentifiedSingleEditOperation[] = []; + const textEdits: ISingleEditOperation[] = []; for (const selection of selections) { if (selection.isEmpty()) { diff --git a/src/vs/editor/contrib/linesOperations/browser/sortLinesCommand.ts b/src/vs/editor/contrib/linesOperations/browser/sortLinesCommand.ts index f3d3ccc6332..6b84299974a 100644 --- a/src/vs/editor/contrib/linesOperations/browser/sortLinesCommand.ts +++ b/src/vs/editor/contrib/linesOperations/browser/sortLinesCommand.ts @@ -3,11 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; import { ICommand, ICursorStateComputerData, IEditOperationBuilder } from 'vs/editor/common/editorCommon'; -import { IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; export class SortLinesCommand implements ICommand { @@ -102,7 +102,7 @@ function getSortData(model: ITextModel, selection: Selection, descending: boolea /** * Generate commands for sorting lines on a model. */ -function sortLines(model: ITextModel, selection: Selection, descending: boolean): IIdentifiedSingleEditOperation | null { +function sortLines(model: ITextModel, selection: Selection, descending: boolean): ISingleEditOperation | null { let data = getSortData(model, selection, descending); if (!data) { diff --git a/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.ts b/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.ts index fee0bd887ee..8db839daeb3 100644 --- a/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.ts +++ b/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.ts @@ -21,7 +21,7 @@ import { IPosition, Position } from 'vs/editor/common/core/position'; import { IRange, Range } from 'vs/editor/common/core/range'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; -import { IIdentifiedSingleEditOperation, IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from 'vs/editor/common/model'; +import { IModelDeltaDecoration, ITextModel, TrackedRangeStickiness } from 'vs/editor/common/model'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { LinkedEditingRangeProviderRegistry, LinkedEditingRanges } from 'vs/editor/common/languages'; import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry'; @@ -30,6 +30,7 @@ import { ContextKeyExpr, IContextKey, IContextKeyService, RawContextKey } from ' import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { registerColor } from 'vs/platform/theme/common/colorRegistry'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; export const CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE = new RawContextKey('LinkedEditingInputVisible', false); @@ -186,7 +187,7 @@ export class LinkedEditingContribution extends Disposable implements IEditorCont } } - let edits: IIdentifiedSingleEditOperation[] = []; + let edits: ISingleEditOperation[] = []; for (let i = 1, len = decorations.length; i < len; i++) { const mirrorRange = model.getDecorationRange(decorations[i]); if (!mirrorRange) { diff --git a/src/vs/editor/contrib/snippet/browser/snippetSession.ts b/src/vs/editor/contrib/snippet/browser/snippetSession.ts index 5c9c7bbdbcb..307fbe4c88f 100644 --- a/src/vs/editor/contrib/snippet/browser/snippetSession.ts +++ b/src/vs/editor/contrib/snippet/browser/snippetSession.ts @@ -11,7 +11,7 @@ import { withNullAsUndefined } from 'vs/base/common/types'; import 'vs/css!./snippetSession'; import { IActiveCodeEditor } from 'vs/editor/browser/editorBrowser'; import { EditorOption } from 'vs/editor/common/config/editorOptions'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { IPosition } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; @@ -87,7 +87,7 @@ export class OneSnippet { // Transform placeholder text if necessary if (this._placeholderGroupsIdx >= 0) { - let operations: IIdentifiedSingleEditOperation[] = []; + let operations: ISingleEditOperation[] = []; for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) { // Check if the placeholder has a transformation diff --git a/src/vs/editor/standalone/browser/standaloneServices.ts b/src/vs/editor/standalone/browser/standaloneServices.ts index 0e072adbf3c..1aee84871e2 100644 --- a/src/vs/editor/standalone/browser/standaloneServices.ts +++ b/src/vs/editor/standalone/browser/standaloneServices.ts @@ -19,10 +19,10 @@ import Severity from 'vs/base/common/severity'; import { URI } from 'vs/base/common/uri'; import { IBulkEditOptions, IBulkEditResult, IBulkEditService, ResourceEdit, ResourceTextEdit } from 'vs/editor/browser/services/bulkEditService'; import { isDiffEditorConfigurationKey, isEditorConfigurationKey } from 'vs/editor/common/config/editorConfigurationSchema'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { IPosition, Position as Pos } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; -import { IIdentifiedSingleEditOperation, ITextModel, ITextSnapshot } from 'vs/editor/common/model'; +import { ITextModel, ITextSnapshot } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; import { IResolvedTextEditorModel, ITextModelContentProvider, ITextModelService } from 'vs/editor/common/services/resolverService'; import { ITextResourceConfigurationService, ITextResourcePropertiesService, ITextResourceConfigurationChangeEvent } from 'vs/editor/common/services/textResourceConfiguration'; @@ -764,7 +764,7 @@ class StandaloneBulkEditService implements IBulkEditService { async apply(edits: ResourceEdit[], _options?: IBulkEditOptions): Promise { - const textEdits = new Map(); + const textEdits = new Map(); for (let edit of edits) { if (!(edit instanceof ResourceTextEdit)) { diff --git a/src/vs/editor/test/browser/commands/shiftCommand.test.ts b/src/vs/editor/test/browser/commands/shiftCommand.test.ts index 0cf6c975ec7..fe5b6186816 100644 --- a/src/vs/editor/test/browser/commands/shiftCommand.test.ts +++ b/src/vs/editor/test/browser/commands/shiftCommand.test.ts @@ -7,18 +7,18 @@ import * as assert from 'assert'; import { ShiftCommand } from 'vs/editor/common/commands/shiftCommand'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { getEditOperation, testCommand } from 'vs/editor/test/browser/testCommand'; import { withEditorModel } from 'vs/editor/test/common/testTextModel'; import { MockMode } from 'vs/editor/test/common/mocks/mockMode'; import { javascriptOnEnterRules } from 'vs/editor/test/common/modes/supports/javascriptOnEnterRules'; import { EditorAutoIndentStrategy } from 'vs/editor/common/config/editorOptions'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; /** * Create single edit operation */ -export function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): IIdentifiedSingleEditOperation { +export function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): ISingleEditOperation { return { range: new Range(selectionLineNumber, selectionColumn, positionLineNumber, positionColumn), text: text, @@ -952,7 +952,7 @@ suite('Editor Commands - ShiftCommand', () => { // 3 => 2 testIndentation(4, 4, ' ', 2, 3); - function _assertUnshiftCommand(tabSize: number, indentSize: number, insertSpaces: boolean, text: string[], expected: IIdentifiedSingleEditOperation[]): void { + function _assertUnshiftCommand(tabSize: number, indentSize: number, insertSpaces: boolean, text: string[], expected: ISingleEditOperation[]): void { return withEditorModel(text, (model) => { let op = new ShiftCommand(new Selection(1, 1, text.length + 1, 1), { isUnshift: true, @@ -967,7 +967,7 @@ suite('Editor Commands - ShiftCommand', () => { }); } - function _assertShiftCommand(tabSize: number, indentSize: number, insertSpaces: boolean, text: string[], expected: IIdentifiedSingleEditOperation[]): void { + function _assertShiftCommand(tabSize: number, indentSize: number, insertSpaces: boolean, text: string[], expected: ISingleEditOperation[]): void { return withEditorModel(text, (model) => { let op = new ShiftCommand(new Selection(1, 1, text.length + 1, 1), { isUnshift: false, diff --git a/src/vs/editor/test/browser/commands/sideEditing.test.ts b/src/vs/editor/test/browser/commands/sideEditing.test.ts index f8a8bbae532..ff6ddbb8217 100644 --- a/src/vs/editor/test/browser/commands/sideEditing.test.ts +++ b/src/vs/editor/test/browser/commands/sideEditing.test.ts @@ -4,14 +4,13 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { withTestCodeEditor } from 'vs/editor/test/browser/testCodeEditor'; -function testCommand(lines: string[], selections: Selection[], edits: IIdentifiedSingleEditOperation[], expectedLines: string[], expectedSelections: Selection[]): void { +function testCommand(lines: string[], selections: Selection[], edits: ISingleEditOperation[], expectedLines: string[], expectedSelections: Selection[]): void { withTestCodeEditor(lines, {}, (editor, viewModel) => { const model = editor.getModel()!; diff --git a/src/vs/editor/test/browser/commands/trimTrailingWhitespaceCommand.test.ts b/src/vs/editor/test/browser/commands/trimTrailingWhitespaceCommand.test.ts index 035ff1852a6..e72e03ccea3 100644 --- a/src/vs/editor/test/browser/commands/trimTrailingWhitespaceCommand.test.ts +++ b/src/vs/editor/test/browser/commands/trimTrailingWhitespaceCommand.test.ts @@ -5,17 +5,17 @@ import * as assert from 'assert'; import { TrimTrailingWhitespaceCommand, trimTrailingWhitespace } from 'vs/editor/common/commands/trimTrailingWhitespaceCommand'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { getEditOperation } from 'vs/editor/test/browser/testCommand'; import { withEditorModel } from 'vs/editor/test/common/testTextModel'; /** * Create single edit operation */ -function createInsertDeleteSingleEditOp(text: string | null, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): IIdentifiedSingleEditOperation { +function createInsertDeleteSingleEditOp(text: string | null, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): ISingleEditOperation { return { range: new Range(selectionLineNumber, selectionColumn, positionLineNumber, positionColumn), text: text @@ -25,7 +25,7 @@ function createInsertDeleteSingleEditOp(text: string | null, positionLineNumber: /** * Create single edit operation */ -export function createSingleEditOp(text: string | null, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): IIdentifiedSingleEditOperation { +export function createSingleEditOp(text: string | null, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): ISingleEditOperation { return { range: new Range(selectionLineNumber, selectionColumn, positionLineNumber, positionColumn), text: text, @@ -33,7 +33,7 @@ export function createSingleEditOp(text: string | null, positionLineNumber: numb }; } -function assertTrimTrailingWhitespaceCommand(text: string[], expected: IIdentifiedSingleEditOperation[]): void { +function assertTrimTrailingWhitespaceCommand(text: string[], expected: ISingleEditOperation[]): void { return withEditorModel(text, (model) => { let op = new TrimTrailingWhitespaceCommand(new Selection(1, 1, 1, 1), []); let actual = getEditOperation(model, op); @@ -41,7 +41,7 @@ function assertTrimTrailingWhitespaceCommand(text: string[], expected: IIdentifi }); } -function assertTrimTrailingWhitespace(text: string[], cursors: Position[], expected: IIdentifiedSingleEditOperation[]): void { +function assertTrimTrailingWhitespace(text: string[], cursors: Position[], expected: ISingleEditOperation[]): void { return withEditorModel(text, (model) => { let actual = trimTrailingWhitespace(model, cursors); assert.deepStrictEqual(actual, expected); diff --git a/src/vs/editor/test/browser/testCommand.ts b/src/vs/editor/test/browser/testCommand.ts index 578886db2f8..bb397f60135 100644 --- a/src/vs/editor/test/browser/testCommand.ts +++ b/src/vs/editor/test/browser/testCommand.ts @@ -7,11 +7,12 @@ import * as assert from 'assert'; import { IRange } from 'vs/editor/common/core/range'; import { Selection, ISelection } from 'vs/editor/common/core/selection'; import { ICommand, IEditOperationBuilder } from 'vs/editor/common/editorCommon'; -import { IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; import { instantiateTestCodeEditor, createCodeEditorServices } from 'vs/editor/test/browser/testCodeEditor'; import { instantiateTextModel } from 'vs/editor/test/common/testTextModel'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { DisposableStore } from 'vs/base/common/lifecycle'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; export function testCommand( lines: string[], @@ -51,8 +52,8 @@ export function testCommand( /** * Extract edit operations if command `command` were to execute on model `model` */ -export function getEditOperation(model: ITextModel, command: ICommand): IIdentifiedSingleEditOperation[] { - let operations: IIdentifiedSingleEditOperation[] = []; +export function getEditOperation(model: ITextModel, command: ICommand): ISingleEditOperation[] { + let operations: ISingleEditOperation[] = []; let editOperationBuilder: IEditOperationBuilder = { addEditOperation: (range: IRange, text: string, forceMoveMarkers: boolean = false) => { operations.push({ diff --git a/src/vs/editor/test/common/model/editableTextModel.test.ts b/src/vs/editor/test/common/model/editableTextModel.test.ts index 52550a65010..7ddfde1434f 100644 --- a/src/vs/editor/test/common/model/editableTextModel.test.ts +++ b/src/vs/editor/test/common/model/editableTextModel.test.ts @@ -4,8 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; -import { EndOfLinePreference, EndOfLineSequence, IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; +import { EndOfLinePreference, EndOfLineSequence } from 'vs/editor/common/model'; import { MirrorTextModel } from 'vs/editor/common/model/mirrorTextModel'; import { IModelContentChangedEvent } from 'vs/editor/common/textModelEvents'; import { assertSyncedModels, testApplyEditsWithSyncedModels } from 'vs/editor/test/common/model/editableTextModelTestUtils'; @@ -13,7 +14,7 @@ import { createTextModel } from 'vs/editor/test/common/testTextModel'; suite('EditorModel - EditableTextModel.applyEdits updates mightContainRTL', () => { - function testApplyEdits(original: string[], edits: IIdentifiedSingleEditOperation[], before: boolean, after: boolean): void { + function testApplyEdits(original: string[], edits: ISingleEditOperation[], before: boolean, after: boolean): void { let model = createTextModel(original.join('\n')); model.setEOL(EndOfLineSequence.LF); @@ -24,7 +25,7 @@ suite('EditorModel - EditableTextModel.applyEdits updates mightContainRTL', () = model.dispose(); } - function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): IIdentifiedSingleEditOperation { + function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): ISingleEditOperation { return { range: new Range(startLineNumber, startColumn, endLineNumber, endColumn), text: text.join('\n') @@ -59,7 +60,7 @@ suite('EditorModel - EditableTextModel.applyEdits updates mightContainRTL', () = suite('EditorModel - EditableTextModel.applyEdits updates mightContainNonBasicASCII', () => { - function testApplyEdits(original: string[], edits: IIdentifiedSingleEditOperation[], before: boolean, after: boolean): void { + function testApplyEdits(original: string[], edits: ISingleEditOperation[], before: boolean, after: boolean): void { let model = createTextModel(original.join('\n')); model.setEOL(EndOfLineSequence.LF); @@ -70,7 +71,7 @@ suite('EditorModel - EditableTextModel.applyEdits updates mightContainNonBasicAS model.dispose(); } - function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): IIdentifiedSingleEditOperation { + function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): ISingleEditOperation { return { range: new Range(startLineNumber, startColumn, endLineNumber, endColumn), text: text.join('\n') @@ -101,9 +102,8 @@ suite('EditorModel - EditableTextModel.applyEdits updates mightContainNonBasicAS suite('EditorModel - EditableTextModel.applyEdits', () => { - function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): IIdentifiedSingleEditOperation { + function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): ISingleEditOperation { return { - identifier: null, range: new Range(startLineNumber, startColumn, endLineNumber, endColumn), text: text.join('\n'), forceMoveMarkers: false @@ -852,7 +852,7 @@ suite('EditorModel - EditableTextModel.applyEdits', () => { ); }); - function testApplyEditsFails(original: string[], edits: IIdentifiedSingleEditOperation[]): void { + function testApplyEditsFails(original: string[], edits: ISingleEditOperation[]): void { let model = createTextModel(original.join('\n')); let hasThrown = false; diff --git a/src/vs/editor/test/common/model/editableTextModelAuto.test.ts b/src/vs/editor/test/common/model/editableTextModelAuto.test.ts index 5b3ab479ab9..2510299594c 100644 --- a/src/vs/editor/test/common/model/editableTextModelAuto.test.ts +++ b/src/vs/editor/test/common/model/editableTextModelAuto.test.ts @@ -4,17 +4,16 @@ *--------------------------------------------------------------------------------------------*/ import { CharCode } from 'vs/base/common/charCode'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { testApplyEditsWithSyncedModels } from 'vs/editor/test/common/model/editableTextModelTestUtils'; const GENERATE_TESTS = false; suite('EditorModel Auto Tests', () => { - function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): IIdentifiedSingleEditOperation { + function editOp(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, text: string[]): ISingleEditOperation { return { - identifier: null, range: new Range(startLineNumber, startColumn, endLineNumber, endColumn), text: text.join('\n'), forceMoveMarkers: false @@ -194,7 +193,7 @@ class TestModel { public initialContent: string; public resultingContent: string; - public edits: IIdentifiedSingleEditOperation[]; + public edits: ISingleEditOperation[]; private static _generateOffsetToPosition(content: string): Position[] { let result: Position[] = []; diff --git a/src/vs/editor/test/common/model/editableTextModelTestUtils.ts b/src/vs/editor/test/common/model/editableTextModelTestUtils.ts index 1621994eafa..b65925da973 100644 --- a/src/vs/editor/test/common/model/editableTextModelTestUtils.ts +++ b/src/vs/editor/test/common/model/editableTextModelTestUtils.ts @@ -4,14 +4,15 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; -import { EndOfLinePreference, EndOfLineSequence, IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; +import { EndOfLinePreference, EndOfLineSequence } from 'vs/editor/common/model'; import { MirrorTextModel } from 'vs/editor/common/model/mirrorTextModel'; import { TextModel } from 'vs/editor/common/model/textModel'; import { IModelContentChangedEvent } from 'vs/editor/common/textModelEvents'; import { createTextModel } from 'vs/editor/test/common/testTextModel'; -export function testApplyEditsWithSyncedModels(original: string[], edits: IIdentifiedSingleEditOperation[], expected: string[], inputEditsAreInvalid: boolean = false): void { +export function testApplyEditsWithSyncedModels(original: string[], edits: ISingleEditOperation[], expected: string[], inputEditsAreInvalid: boolean = false): void { let originalStr = original.join('\n'); let expectedStr = expected.join('\n'); @@ -31,13 +32,11 @@ export function testApplyEditsWithSyncedModels(original: string[], edits: IIdent assert.deepStrictEqual(model.getValue(EndOfLinePreference.LF), originalStr); if (!inputEditsAreInvalid) { - const simplifyEdit = (edit: IIdentifiedSingleEditOperation) => { + const simplifyEdit = (edit: ISingleEditOperation) => { return { - identifier: edit.identifier, range: edit.range, text: edit.text, - forceMoveMarkers: edit.forceMoveMarkers || false, - isAutoWhitespaceEdit: edit.isAutoWhitespaceEdit || false + forceMoveMarkers: edit.forceMoveMarkers || false }; }; // Assert the inverse of the inverse edits are the original edits diff --git a/src/vs/editor/test/common/model/modelEditOperation.test.ts b/src/vs/editor/test/common/model/modelEditOperation.test.ts index 1d05bdb75ed..b8115c3e416 100644 --- a/src/vs/editor/test/common/model/modelEditOperation.test.ts +++ b/src/vs/editor/test/common/model/modelEditOperation.test.ts @@ -3,8 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { TextModel } from 'vs/editor/common/model/textModel'; import { createTextModel } from 'vs/editor/test/common/testTextModel'; @@ -31,7 +31,7 @@ suite('Editor Model - Model Edit Operation', () => { model.dispose(); }); - function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): IIdentifiedSingleEditOperation { + function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): ISingleEditOperation { let range = new Range( selectionLineNumber, selectionColumn, @@ -40,14 +40,13 @@ suite('Editor Model - Model Edit Operation', () => { ); return { - identifier: null, range: range, text: text, forceMoveMarkers: false }; } - function assertSingleEditOp(singleEditOp: IIdentifiedSingleEditOperation, editedLines: string[]) { + function assertSingleEditOp(singleEditOp: ISingleEditOperation, editedLines: string[]) { let editOp = [singleEditOp]; let inverseEditOp = model.applyEdits(editOp, true); @@ -66,13 +65,11 @@ suite('Editor Model - Model Edit Operation', () => { assert.strictEqual(model.getLineContent(4), LINE4); assert.strictEqual(model.getLineContent(5), LINE5); - const simplifyEdit = (edit: IIdentifiedSingleEditOperation) => { + const simplifyEdit = (edit: ISingleEditOperation) => { return { - identifier: edit.identifier, range: edit.range, text: edit.text, - forceMoveMarkers: edit.forceMoveMarkers || false, - isAutoWhitespaceEdit: edit.isAutoWhitespaceEdit || false + forceMoveMarkers: edit.forceMoveMarkers || false }; }; assert.deepStrictEqual(originalOp.map(simplifyEdit), editOp.map(simplifyEdit)); diff --git a/src/vs/editor/test/common/model/tokensStore.test.ts b/src/vs/editor/test/common/model/tokensStore.test.ts index bfbee71f6e3..a895e530ddd 100644 --- a/src/vs/editor/test/common/model/tokensStore.test.ts +++ b/src/vs/editor/test/common/model/tokensStore.test.ts @@ -8,11 +8,11 @@ import { SparseMultilineTokens } from 'vs/editor/common/tokens/sparseMultilineTo import { SparseTokensStore } from 'vs/editor/common/tokens/sparseTokensStore'; import { Range } from 'vs/editor/common/core/range'; import { TextModel } from 'vs/editor/common/model/textModel'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { MetadataConsts, TokenMetadata, FontStyle, ColorId } from 'vs/editor/common/languages'; import { createTextModel } from 'vs/editor/test/common/testTextModel'; import { LineTokens } from 'vs/editor/common/tokens/lineTokens'; import { LanguageIdCodec } from 'vs/editor/common/services/languagesRegistry'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; suite('TokensStore', () => { @@ -98,7 +98,7 @@ suite('TokensStore', () => { // function extractState - function testTokensAdjustment(rawInitialState: string[], edits: IIdentifiedSingleEditOperation[], rawFinalState: string[]) { + function testTokensAdjustment(rawInitialState: string[], edits: ISingleEditOperation[], rawFinalState: string[]) { const initialState = parseTokensState(rawInitialState); const model = createTextModel(initialState.text); model.setSemanticTokens([initialState.tokens], true); diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 52e322597ad..f87ff593f85 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1643,20 +1643,7 @@ declare namespace monaco.editor { /** * A single edit operation, that has an identifier. */ - export interface IIdentifiedSingleEditOperation { - /** - * The range to replace. This can be empty to emulate a simple insert. - */ - range: IRange; - /** - * The text to replace with. This can be null to emulate a simple delete. - */ - text: string | null; - /** - * This indicates that this operation has "insert" semantics. - * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. - */ - forceMoveMarkers?: boolean; + export interface IIdentifiedSingleEditOperation extends ISingleEditOperation { } export interface IValidEditOperation { diff --git a/src/vs/workbench/api/browser/mainThreadEditor.ts b/src/vs/workbench/api/browser/mainThreadEditor.ts index 8e65b20b5b0..5fa8444c837 100644 --- a/src/vs/workbench/api/browser/mainThreadEditor.ts +++ b/src/vs/workbench/api/browser/mainThreadEditor.ts @@ -10,7 +10,7 @@ import { RenderLineNumbersType, TextEditorCursorStyle, cursorStyleToString, Edit import { IRange, Range } from 'vs/editor/common/core/range'; import { ISelection, Selection } from 'vs/editor/common/core/selection'; import { IDecorationOptions, ScrollType } from 'vs/editor/common/editorCommon'; -import { ITextModel, ITextModelUpdateOptions, IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; +import { ITextModel, ITextModelUpdateOptions } from 'vs/editor/common/model'; import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { IModelService } from 'vs/editor/common/services/model'; import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2'; @@ -482,7 +482,7 @@ export class MainThreadTextEditor { this._model.pushEOL(opts.setEndOfLine); } - const transformedEdits = edits.map((edit): IIdentifiedSingleEditOperation => { + const transformedEdits = edits.map((edit): ISingleEditOperation => { return { range: Range.lift(edit.range), text: edit.text, diff --git a/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.ts b/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.ts index e71acf2ad3d..2f80a8a5cec 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.ts @@ -6,10 +6,10 @@ import { dispose, IDisposable, IReference } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { EndOfLineSequence, IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { EndOfLineSequence, ITextModel } from 'vs/editor/common/model'; import { ITextModelService, IResolvedTextEditorModel } from 'vs/editor/common/services/resolverService'; import { IProgress } from 'vs/platform/progress/common/progress'; import { IEditorWorkerService } from 'vs/editor/common/services/editorWorker'; @@ -27,7 +27,7 @@ class ModelEditTask implements IDisposable { readonly model: ITextModel; private _expectedModelVersionId: number | undefined; - protected _edits: IIdentifiedSingleEditOperation[]; + protected _edits: ISingleEditOperation[]; protected _newEol: EndOfLineSequence | undefined; constructor(private readonly _modelReference: IReference) { diff --git a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts index c43f62a42fe..e562290513f 100644 --- a/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts +++ b/src/vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview.ts @@ -12,11 +12,10 @@ import { WorkspaceEditMetadata } from 'vs/editor/common/languages'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { coalesceInPlace } from 'vs/base/common/arrays'; import { Range } from 'vs/editor/common/core/range'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { ServicesAccessor, IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IFileService } from 'vs/platform/files/common/files'; import { Emitter, Event } from 'vs/base/common/event'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; import { ConflictDetector } from 'vs/workbench/contrib/bulkEdit/browser/conflicts'; import { ResourceMap } from 'vs/base/common/map'; import { localize } from 'vs/nls'; @@ -306,12 +305,12 @@ export class BulkFileOperations { return result; } - getFileEdits(uri: URI): IIdentifiedSingleEditOperation[] { + getFileEdits(uri: URI): ISingleEditOperation[] { for (let file of this.fileOperations) { if (file.uri.toString() === uri.toString()) { - const result: IIdentifiedSingleEditOperation[] = []; + const result: ISingleEditOperation[] = []; let ignoreAll = false; for (const edit of file.originalEdits.values()) { @@ -361,7 +360,7 @@ export class BulkEditPreviewProvider implements ITextModelContentProvider { private readonly _disposables = new DisposableStore(); private readonly _ready: Promise; - private readonly _modelPreviewEdits = new Map(); + private readonly _modelPreviewEdits = new Map(); private readonly _instanceId = generateUuid(); constructor( diff --git a/src/vs/workbench/contrib/output/common/outputChannelModel.ts b/src/vs/workbench/contrib/output/common/outputChannelModel.ts index 7d9a00eec42..13220e676f1 100644 --- a/src/vs/workbench/contrib/output/common/outputChannelModel.ts +++ b/src/vs/workbench/contrib/output/common/outputChannelModel.ts @@ -5,7 +5,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import * as resources from 'vs/base/common/resources'; -import { IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; import { IEditorWorkerService } from 'vs/editor/common/services/editorWorker'; import { Emitter, Event } from 'vs/base/common/event'; import { URI } from 'vs/base/common/uri'; @@ -15,7 +15,7 @@ import { IModelService } from 'vs/editor/common/services/model'; import { ILanguageService } from 'vs/editor/common/languages/language'; import { Disposable, toDisposable, IDisposable, dispose, MutableDisposable } from 'vs/base/common/lifecycle'; import { isNumber } from 'vs/base/common/types'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { VSBuffer } from 'vs/base/common/buffer'; @@ -257,7 +257,7 @@ export class FileOutputChannelModel extends Disposable implements IOutputChannel this.doUpdateModel(model, edits, contentToReplace); } - private async getReplaceEdits(model: ITextModel, contentToReplace: string): Promise { + private async getReplaceEdits(model: ITextModel, contentToReplace: string): Promise { if (!contentToReplace) { return [EditOperation.delete(model.getFullModelRange())]; } @@ -270,7 +270,7 @@ export class FileOutputChannelModel extends Disposable implements IOutputChannel return []; } - private doUpdateModel(model: ITextModel, edits: IIdentifiedSingleEditOperation[], content: VSBuffer): void { + private doUpdateModel(model: ITextModel, edits: ISingleEditOperation[], content: VSBuffer): void { if (edits.length) { model.applyEdits(edits); } diff --git a/src/vs/workbench/contrib/search/browser/replaceService.ts b/src/vs/workbench/contrib/search/browser/replaceService.ts index f2b25728474..b1fc4bd1e18 100644 --- a/src/vs/workbench/contrib/search/browser/replaceService.ts +++ b/src/vs/workbench/contrib/search/browser/replaceService.ts @@ -16,13 +16,13 @@ import { IProgress, IProgressStep } from 'vs/platform/progress/common/progress'; import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { ScrollType } from 'vs/editor/common/editorCommon'; -import { ITextModel, IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { createTextBufferFactoryFromSnapshot } from 'vs/editor/common/model/textModel'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { IBulkEditService, ResourceTextEdit } from 'vs/editor/browser/services/bulkEditService'; import { Range } from 'vs/editor/common/core/range'; -import { EditOperation } from 'vs/editor/common/core/editOperation'; +import { EditOperation, ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { ILabelService } from 'vs/platform/label/common/label'; import { dirname } from 'vs/base/common/resources'; import { Promises } from 'vs/base/common/async'; @@ -162,7 +162,7 @@ export class ReplaceService implements IReplaceService { private applyEditsToPreview(fileMatch: FileMatch, replaceModel: ITextModel): void { const resourceEdits = this.createEdits(fileMatch, replaceModel.uri); - const modelEdits: IIdentifiedSingleEditOperation[] = []; + const modelEdits: ISingleEditOperation[] = []; for (const resourceEdit of resourceEdits) { modelEdits.push(EditOperation.replaceMove( Range.lift(resourceEdit.textEdit.range), diff --git a/src/vs/workbench/services/preferences/common/preferencesModels.ts b/src/vs/workbench/services/preferences/common/preferencesModels.ts index 87b75e27e1f..c958362b042 100644 --- a/src/vs/workbench/services/preferences/common/preferencesModels.ts +++ b/src/vs/workbench/services/preferences/common/preferencesModels.ts @@ -11,7 +11,8 @@ import { Disposable, IReference } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { IRange, Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; -import { IIdentifiedSingleEditOperation, ITextModel } from 'vs/editor/common/model'; +import { ITextModel } from 'vs/editor/common/model'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { ITextEditorModel } from 'vs/editor/common/services/resolverService'; import * as nls from 'vs/nls'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -847,11 +848,10 @@ export class DefaultSettingsEditorModel extends AbstractSettingsModel implements const groupContent = builder.getContent() + '\n'; const groupEndLine = this._model.getLineCount(); const cursorPosition = new Selection(startLine, 1, startLine, 1); - const edit: IIdentifiedSingleEditOperation = { + const edit: ISingleEditOperation = { text: groupContent, forceMoveMarkers: true, - range: new Range(startLine, 1, groupEndLine, 1), - identifier: { major: 1, minor: 0 } + range: new Range(startLine, 1, groupEndLine, 1) }; this._model.pushEditOperations([cursorPosition], [edit], () => [cursorPosition]); diff --git a/src/vs/workbench/services/untitled/test/browser/untitledTextEditor.test.ts b/src/vs/workbench/services/untitled/test/browser/untitledTextEditor.test.ts index b021307bf99..19d50a2e6f1 100644 --- a/src/vs/workbench/services/untitled/test/browser/untitledTextEditor.test.ts +++ b/src/vs/workbench/services/untitled/test/browser/untitledTextEditor.test.ts @@ -11,7 +11,7 @@ import { IUntitledTextEditorService, UntitledTextEditorService } from 'vs/workbe import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices'; import { snapshotToString } from 'vs/workbench/services/textfile/common/textfiles'; import { ModesRegistry, PLAINTEXT_LANGUAGE_ID } from 'vs/editor/common/languages/modesRegistry'; -import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model'; +import { ISingleEditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput'; import { IUntitledTextEditorModel } from 'vs/workbench/services/untitled/common/untitledTextEditorModel'; @@ -479,7 +479,7 @@ suite('Untitled text editors', () => { model.textEditorModel?.setValue('Hello\nWorld'); assert.strictEqual(counter, 7); - function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): IIdentifiedSingleEditOperation { + function createSingleEditOp(text: string, positionLineNumber: number, positionColumn: number, selectionLineNumber: number = positionLineNumber, selectionColumn: number = positionColumn): ISingleEditOperation { let range = new Range( selectionLineNumber, selectionColumn, @@ -488,7 +488,6 @@ suite('Untitled text editors', () => { ); return { - identifier: null, range, text, forceMoveMarkers: false From 24081690c29d4983a89f3f5084b48e2d0d217f29 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 15:44:06 +0100 Subject: [PATCH 88/96] Use interface instead of implementation for the proxy identifier --- src/vs/workbench/api/common/extHost.protocol.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 1f8a3c52ada..f758453b74f 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -43,7 +43,6 @@ import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage'; import { WorkspaceTrustRequestOptions } from 'vs/platform/workspace/common/workspaceTrust'; import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; -import { ExtHostInteractive } from 'vs/workbench/api/common/extHostInteractive'; import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService'; import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/api/common/extHostTypes'; import * as tasks from 'vs/workbench/api/common/shared/tasks'; @@ -2299,7 +2298,7 @@ export const ExtHostContext = { ExtHostNotebookEditors: createProxyIdentifier('ExtHostNotebookEditors'), ExtHostNotebookKernels: createProxyIdentifier('ExtHostNotebookKernels'), ExtHostNotebookRenderers: createProxyIdentifier('ExtHostNotebookRenderers'), - ExtHostInteractive: createProxyIdentifier('ExtHostInteractive'), + ExtHostInteractive: createProxyIdentifier('ExtHostInteractive'), ExtHostTheming: createProxyIdentifier('ExtHostTheming'), ExtHostTunnelService: createProxyIdentifier('ExtHostTunnelService'), ExtHostAuthentication: createProxyIdentifier('ExtHostAuthentication'), From 87140b9f95c50f15ee315dd22dc9e8b7dea747eb Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 15:58:39 +0100 Subject: [PATCH 89/96] Move `extensionHostProcess.ts` to `/workbench/api/` (#141003) --- build/gulpfile.reh.js | 2 +- build/gulpfile.vscode.js | 2 +- src/vs/server/node/extensionHostConnection.ts | 2 +- .../{services/extensions => api}/node/extensionHostProcess.ts | 0 src/vs/workbench/buildfile.desktop.js | 2 +- .../extensions/electron-browser/localProcessExtensionHost.ts | 2 +- 6 files changed, 5 insertions(+), 5 deletions(-) rename src/vs/workbench/{services/extensions => api}/node/extensionHostProcess.ts (100%) diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js index 26f3015efb2..663ee3d6f81 100644 --- a/build/gulpfile.reh.js +++ b/build/gulpfile.reh.js @@ -99,7 +99,7 @@ const serverEntryPoints = [ exclude: ['vs/css', 'vs/nls'] }, { - name: 'vs/workbench/services/extensions/node/extensionHostProcess', + name: 'vs/workbench/api/node/extensionHostProcess', exclude: ['vs/css', 'vs/nls'] }, { diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 8a69232956e..890707d3f6c 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -164,7 +164,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op 'vs/base/parts/sandbox/electron-browser/preload.js', 'vs/workbench/workbench.desktop.main.js', 'vs/workbench/workbench.desktop.main.css', - 'vs/workbench/services/extensions/node/extensionHostProcess.js', + 'vs/workbench/api/node/extensionHostProcess.js', 'vs/code/electron-browser/workbench/workbench.html', 'vs/code/electron-browser/workbench/workbench.js' ]); diff --git a/src/vs/server/node/extensionHostConnection.ts b/src/vs/server/node/extensionHostConnection.ts index deb7cc25ee6..407ade2d4d4 100644 --- a/src/vs/server/node/extensionHostConnection.ts +++ b/src/vs/server/node/extensionHostConnection.ts @@ -48,7 +48,7 @@ export async function buildUserEnvironment(startParamsEnv: { [key: string]: stri ...userShellEnv, ...{ VSCODE_LOG_NATIVE: String(isDebug), - VSCODE_AMD_ENTRYPOINT: 'vs/workbench/services/extensions/node/extensionHostProcess', + VSCODE_AMD_ENTRYPOINT: 'vs/workbench/api/node/extensionHostProcess', VSCODE_PIPE_LOGGING: 'true', VSCODE_VERBOSE_LOGGING: 'true', VSCODE_EXTHOST_WILL_SEND_SOCKET: 'true', diff --git a/src/vs/workbench/services/extensions/node/extensionHostProcess.ts b/src/vs/workbench/api/node/extensionHostProcess.ts similarity index 100% rename from src/vs/workbench/services/extensions/node/extensionHostProcess.ts rename to src/vs/workbench/api/node/extensionHostProcess.ts diff --git a/src/vs/workbench/buildfile.desktop.js b/src/vs/workbench/buildfile.desktop.js index 61d279dc021..5f40e47276b 100644 --- a/src/vs/workbench/buildfile.desktop.js +++ b/src/vs/workbench/buildfile.desktop.js @@ -16,6 +16,6 @@ exports.collectModules = function () { createModuleDescription('vs/platform/terminal/node/ptyHostMain'), - createModuleDescription('vs/workbench/services/extensions/node/extensionHostProcess'), + createModuleDescription('vs/workbench/api/node/extensionHostProcess'), ]; }; diff --git a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts index 7145fbeab36..630ea4e4dd2 100644 --- a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts @@ -214,7 +214,7 @@ export class LocalProcessExtensionHost implements IExtensionHost { this._extensionHostProcess = new ExtensionHostProcess(extensionHostCreationResult.id, this._extensionHostStarter); const env = objects.mixin(processEnv, { - VSCODE_AMD_ENTRYPOINT: 'vs/workbench/services/extensions/node/extensionHostProcess', + VSCODE_AMD_ENTRYPOINT: 'vs/workbench/api/node/extensionHostProcess', VSCODE_PIPE_LOGGING: 'true', VSCODE_VERBOSE_LOGGING: true, VSCODE_LOG_NATIVE: this._isExtensionDevHost, From 24569c613ec6aa2bdbcd8ab6a2b4c5b5f5cc70c1 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 16:14:21 +0100 Subject: [PATCH 90/96] Rearrange files to better separate between `workbench/api` and `workbench/services` (#141003) --- src/vs/workbench/api/browser/mainThreadWorkspace.ts | 4 ++-- src/vs/workbench/api/common/extHost.protocol.ts | 2 +- src/vs/workbench/api/common/extHostExtensionService.ts | 2 +- src/vs/workbench/api/common/extHostWorkspace.ts | 2 +- .../{services/extensions => api}/common/extensionHostMain.ts | 0 src/vs/workbench/api/node/extHostExtensionService.ts | 2 +- src/vs/workbench/api/node/extensionHostProcess.ts | 2 +- .../extensions => api}/node/extensionHostProcessSetup.ts | 2 +- .../{services/extensions => api}/node/proxyResolver.ts | 0 src/vs/workbench/api/test/browser/extHostWorkspace.test.ts | 2 +- .../workbench/contrib/search/browser/anythingQuickAccess.ts | 2 +- .../workbench/contrib/search/browser/search.contribution.ts | 2 +- src/vs/workbench/contrib/search/browser/searchView.ts | 2 +- .../test/electron-browser/textsearch.perf.integrationTest.ts | 2 +- src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts | 2 +- .../terminal/browser/links/terminalWordLinkProvider.ts | 2 +- .../contrib/terminal/test/browser/terminalInstance.test.ts | 2 +- .../welcomeGettingStarted/browser/gettingStartedService.ts | 2 +- .../services/extensions/common/abstractExtensionService.ts | 2 +- .../extensions/common}/workspaceContains.ts | 2 +- .../services/extensions/worker/extensionHostWorker.ts | 2 +- .../{contrib => services}/search/common/queryBuilder.ts | 0 .../search/test/browser/queryBuilder.test.ts | 2 +- .../search/test/electron-browser/queryBuilder.test.ts | 4 ++-- 24 files changed, 23 insertions(+), 23 deletions(-) rename src/vs/workbench/{services/extensions => api}/common/extensionHostMain.ts (100%) rename src/vs/workbench/{services/extensions => api}/node/extensionHostProcessSetup.ts (99%) rename src/vs/workbench/{services/extensions => api}/node/proxyResolver.ts (100%) rename src/vs/workbench/{api/common/shared => services/extensions/common}/workspaceContains.ts (98%) rename src/vs/workbench/{contrib => services}/search/common/queryBuilder.ts (100%) rename src/vs/workbench/{contrib => services}/search/test/browser/queryBuilder.test.ts (99%) rename src/vs/workbench/{contrib => services}/search/test/electron-browser/queryBuilder.test.ts (94%) diff --git a/src/vs/workbench/api/browser/mainThreadWorkspace.ts b/src/vs/workbench/api/browser/mainThreadWorkspace.ts index 3f2d3273199..ccdbd77a018 100644 --- a/src/vs/workbench/api/browser/mainThreadWorkspace.ts +++ b/src/vs/workbench/api/browser/mainThreadWorkspace.ts @@ -20,8 +20,8 @@ import { WorkspaceTrustRequestOptions, IWorkspaceTrustManagementService, IWorksp import { IWorkspace, IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { isUntitledWorkspace } from 'vs/platform/workspaces/common/workspaces'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; -import { checkGlobFileExists } from 'vs/workbench/api/common/shared/workspaceContains'; -import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { checkGlobFileExists } from 'vs/workbench/services/extensions/common/workspaceContains'; +import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IFileMatch, IPatternInfo, ISearchProgressItem, ISearchService } from 'vs/workbench/services/search/common/search'; import { IWorkspaceEditingService } from 'vs/workbench/services/workspaces/common/workspaceEditing'; diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index f758453b74f..2a8eba54e81 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -57,7 +57,7 @@ import { ICellExecutionComplete, ICellExecutionStateUpdate } from 'vs/workbench/ import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookRange'; import { OutputChannelUpdateMode } from 'vs/workbench/contrib/output/common/output'; import { InputValidationType } from 'vs/workbench/contrib/scm/common/scm'; -import { ITextQueryBuilderOptions } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions } from 'vs/workbench/services/search/common/queryBuilder'; import { ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable'; import { CoverageDetails, ExtensionRunTestsRequest, IFileCoverage, ISerializedTestResults, ITestItem, ITestRunProfile, ITestRunTask, ResolvedTestRunRequest, RunTestForControllerRequest, SerializedTestMessage, TestResultState, TestsDiff } from 'vs/workbench/contrib/testing/common/testCollection'; import { InternalTimelineOptions, Timeline, TimelineChangeEvent, TimelineOptions, TimelineProviderDescriptor } from 'vs/workbench/contrib/timeline/common/timeline'; diff --git a/src/vs/workbench/api/common/extHostExtensionService.ts b/src/vs/workbench/api/common/extHostExtensionService.ts index 8586be14a72..fb763789666 100644 --- a/src/vs/workbench/api/common/extHostExtensionService.ts +++ b/src/vs/workbench/api/common/extHostExtensionService.ts @@ -34,7 +34,7 @@ import { ServiceCollection } from 'vs/platform/instantiation/common/serviceColle import { IExtHostTunnelService } from 'vs/workbench/api/common/extHostTunnelService'; import { IExtHostTerminalService } from 'vs/workbench/api/common/extHostTerminalService'; import { Emitter, Event } from 'vs/base/common/event'; -import { IExtensionActivationHost, checkActivateWorkspaceContainsExtension } from 'vs/workbench/api/common/shared/workspaceContains'; +import { IExtensionActivationHost, checkActivateWorkspaceContainsExtension } from 'vs/workbench/services/extensions/common/workspaceContains'; import { ExtHostSecretState, IExtHostSecretState } from 'vs/workbench/api/common/exHostSecretState'; import { ExtensionSecrets } from 'vs/workbench/api/common/extHostSecrets'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/api/common/extHostWorkspace.ts b/src/vs/workbench/api/common/extHostWorkspace.ts index 766282f0ec5..138f5053ced 100644 --- a/src/vs/workbench/api/common/extHostWorkspace.ts +++ b/src/vs/workbench/api/common/extHostWorkspace.ts @@ -26,7 +26,7 @@ import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitData import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService'; import { GlobPattern } from 'vs/workbench/api/common/extHostTypeConverters'; import { Range } from 'vs/workbench/api/common/extHostTypes'; -import { ITextQueryBuilderOptions } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions } from 'vs/workbench/services/search/common/queryBuilder'; import { IRawFileMatch2, resultIsMatch } from 'vs/workbench/services/search/common/search'; import * as vscode from 'vscode'; import { ExtHostWorkspaceShape, IRelativePatternDto, IWorkspaceData, MainContext, MainThreadMessageOptions, MainThreadMessageServiceShape, MainThreadWorkspaceShape } from './extHost.protocol'; diff --git a/src/vs/workbench/services/extensions/common/extensionHostMain.ts b/src/vs/workbench/api/common/extensionHostMain.ts similarity index 100% rename from src/vs/workbench/services/extensions/common/extensionHostMain.ts rename to src/vs/workbench/api/common/extensionHostMain.ts diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index b9071ad93ba..bd1fe3aba47 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -8,7 +8,7 @@ import { createApiFactoryAndRegisterActors } from 'vs/workbench/api/common/extHo import { RequireInterceptor } from 'vs/workbench/api/common/extHostRequireInterceptor'; import { MainContext } from 'vs/workbench/api/common/extHost.protocol'; import { ExtensionActivationTimesBuilder } from 'vs/workbench/api/common/extHostExtensionActivator'; -import { connectProxyResolver } from 'vs/workbench/services/extensions/node/proxyResolver'; +import { connectProxyResolver } from 'vs/workbench/api/node/proxyResolver'; import { AbstractExtHostExtensionService } from 'vs/workbench/api/common/extHostExtensionService'; import { ExtHostDownloadService } from 'vs/workbench/api/node/extHostDownloadService'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/api/node/extensionHostProcess.ts b/src/vs/workbench/api/node/extensionHostProcess.ts index 4c890beb60d..06c2f022984 100644 --- a/src/vs/workbench/api/node/extensionHostProcess.ts +++ b/src/vs/workbench/api/node/extensionHostProcess.ts @@ -3,6 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { startExtensionHostProcess } from 'vs/workbench/services/extensions/node/extensionHostProcessSetup'; +import { startExtensionHostProcess } from 'vs/workbench/api/node/extensionHostProcessSetup'; startExtensionHostProcess().catch((err) => console.log(err)); diff --git a/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts b/src/vs/workbench/api/node/extensionHostProcessSetup.ts similarity index 99% rename from src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts rename to src/vs/workbench/api/node/extensionHostProcessSetup.ts index 758c168a6f5..b6c518573c6 100644 --- a/src/vs/workbench/services/extensions/node/extensionHostProcessSetup.ts +++ b/src/vs/workbench/api/node/extensionHostProcessSetup.ts @@ -15,7 +15,7 @@ import { NodeSocket, WebSocketNodeSocket } from 'vs/base/parts/ipc/node/ipc.net' import product from 'vs/platform/product/common/product'; import { IInitData } from 'vs/workbench/api/common/extHost.protocol'; import { MessageType, createMessageOfType, isMessageOfType, IExtHostSocketMessage, IExtHostReadyMessage, IExtHostReduceGraceTimeMessage, ExtensionHostExitCode } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; -import { ExtensionHostMain, IExitFn } from 'vs/workbench/services/extensions/common/extensionHostMain'; +import { ExtensionHostMain, IExitFn } from 'vs/workbench/api/common/extensionHostMain'; import { VSBuffer } from 'vs/base/common/buffer'; import { IURITransformer, URITransformer, IRawURITransformer } from 'vs/base/common/uriIpc'; import { Promises } from 'vs/base/node/pfs'; diff --git a/src/vs/workbench/services/extensions/node/proxyResolver.ts b/src/vs/workbench/api/node/proxyResolver.ts similarity index 100% rename from src/vs/workbench/services/extensions/node/proxyResolver.ts rename to src/vs/workbench/api/node/proxyResolver.ts diff --git a/src/vs/workbench/api/test/browser/extHostWorkspace.test.ts b/src/vs/workbench/api/test/browser/extHostWorkspace.test.ts index 30bc9e45870..93a804d5ddd 100644 --- a/src/vs/workbench/api/test/browser/extHostWorkspace.test.ts +++ b/src/vs/workbench/api/test/browser/extHostWorkspace.test.ts @@ -18,7 +18,7 @@ import { mock } from 'vs/base/test/common/mock'; import { TestRPCProtocol } from 'vs/workbench/api/test/common/testRPCProtocol'; import { ExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService'; import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService'; -import { ITextQueryBuilderOptions } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions } from 'vs/workbench/services/search/common/queryBuilder'; import { IPatternInfo } from 'vs/workbench/services/search/common/search'; import { isLinux, isWindows } from 'vs/base/common/platform'; import { IExtHostFileSystemInfo } from 'vs/workbench/api/common/extHostFileSystemInfo'; diff --git a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts index ea4f141d52e..fc3c337ddd3 100644 --- a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts +++ b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts @@ -7,7 +7,7 @@ import 'vs/css!./media/anythingQuickAccess'; import { IQuickInputButton, IKeyMods, quickPickItemScorerAccessor, QuickPickItemScorerAccessor, IQuickPick, IQuickPickItemWithResource, QuickInputHideReason } from 'vs/platform/quickinput/common/quickInput'; import { IPickerQuickAccessItem, PickerQuickAccessProvider, TriggerAction, FastAndSlowPicks, Picks, PicksWithActive } from 'vs/platform/quickinput/browser/pickerQuickAccess'; import { prepareQuery, IPreparedQuery, compareItemsByFuzzyScore, scoreItemFuzzy, FuzzyScorerCache } from 'vs/base/common/fuzzyScorer'; -import { IFileQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { IFileQueryBuilderOptions, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { getOutOfWorkspaceEditorResources, extractRangeFromFilter, IWorkbenchSearchConfiguration } from 'vs/workbench/contrib/search/common/search'; import { ISearchService, ISearchComplete } from 'vs/workbench/services/search/common/search'; diff --git a/src/vs/workbench/contrib/search/browser/search.contribution.ts b/src/vs/workbench/contrib/search/browser/search.contribution.ts index 3ecc8e23db6..45ffb47bcf6 100644 --- a/src/vs/workbench/contrib/search/browser/search.contribution.ts +++ b/src/vs/workbench/contrib/search/browser/search.contribution.ts @@ -45,7 +45,7 @@ import { SearchView } from 'vs/workbench/contrib/search/browser/searchView'; import { registerContributions as searchWidgetContributions } from 'vs/workbench/contrib/search/browser/searchWidget'; import { SymbolsQuickAccessProvider } from 'vs/workbench/contrib/search/browser/symbolsQuickAccess'; import * as Constants from 'vs/workbench/contrib/search/common/constants'; -import { resolveResourcesForSearchIncludes } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { resolveResourcesForSearchIncludes } from 'vs/workbench/services/search/common/queryBuilder'; import { getWorkspaceSymbols, IWorkspaceSymbol, SearchStateKey, SearchUIState } from 'vs/workbench/contrib/search/common/search'; import { ISearchHistoryService, SearchHistoryService } from 'vs/workbench/contrib/search/common/searchHistoryService'; import { FileMatch, FileMatchOrMatch, FolderMatch, ISearchWorkbenchService, Match, RenderableMatch, SearchWorkbenchService } from 'vs/workbench/contrib/search/common/searchModel'; diff --git a/src/vs/workbench/contrib/search/browser/searchView.ts b/src/vs/workbench/contrib/search/browser/searchView.ts index b0dc063624e..c726b0a5c69 100644 --- a/src/vs/workbench/contrib/search/browser/searchView.ts +++ b/src/vs/workbench/contrib/search/browser/searchView.ts @@ -66,7 +66,7 @@ import { renderSearchMessage } from 'vs/workbench/contrib/search/browser/searchM import { FileMatchRenderer, FolderMatchRenderer, MatchRenderer, SearchAccessibilityProvider, SearchDelegate, SearchDND } from 'vs/workbench/contrib/search/browser/searchResultsView'; import { ISearchWidgetOptions, SearchWidget } from 'vs/workbench/contrib/search/browser/searchWidget'; import * as Constants from 'vs/workbench/contrib/search/common/constants'; -import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { IReplaceService } from 'vs/workbench/contrib/search/common/replace'; import { getOutOfWorkspaceEditorResources, SearchStateKey, SearchUIState } from 'vs/workbench/contrib/search/common/search'; import { ISearchHistoryService, ISearchHistoryValues } from 'vs/workbench/contrib/search/common/searchHistoryService'; diff --git a/src/vs/workbench/contrib/search/test/electron-browser/textsearch.perf.integrationTest.ts b/src/vs/workbench/contrib/search/test/electron-browser/textsearch.perf.integrationTest.ts index f46f9f2b3e4..5a618222ae3 100644 --- a/src/vs/workbench/contrib/search/test/electron-browser/textsearch.perf.integrationTest.ts +++ b/src/vs/workbench/contrib/search/test/electron-browser/textsearch.perf.integrationTest.ts @@ -33,7 +33,7 @@ import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { testWorkspace } from 'vs/platform/workspace/test/common/testWorkspace'; import 'vs/workbench/contrib/search/browser/search.contribution'; // load contributions -import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { SearchModel } from 'vs/workbench/contrib/search/common/searchModel'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts index 9f06237b13a..67292a26cec 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts @@ -43,7 +43,7 @@ import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { ExcludePatternInputWidget, IncludePatternInputWidget } from 'vs/workbench/contrib/search/browser/patternInputWidget'; import { SearchWidget } from 'vs/workbench/contrib/search/browser/searchWidget'; import { InputBoxFocusedKey } from 'vs/workbench/contrib/search/common/constants'; -import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { getOutOfWorkspaceEditorResources } from 'vs/workbench/contrib/search/common/search'; import { SearchModel, SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; import { InSearchEditor, SearchEditorFindMatchClass, SearchEditorID, SearchEditorInputTypeId } from 'vs/workbench/contrib/searchEditor/browser/constants'; diff --git a/src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts b/src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts index 6c623b57f46..a0a255ae125 100644 --- a/src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts +++ b/src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts @@ -12,7 +12,7 @@ import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { ISearchService } from 'vs/workbench/services/search/common/search'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { XtermLinkMatcherHandler } from 'vs/workbench/contrib/terminal/browser/links/terminalLinkManager'; import { TerminalBaseLinkProvider } from 'vs/workbench/contrib/terminal/browser/links/terminalBaseLinkProvider'; diff --git a/src/vs/workbench/contrib/terminal/test/browser/terminalInstance.test.ts b/src/vs/workbench/contrib/terminal/test/browser/terminalInstance.test.ts index 1dd3e0f9c52..8ee4a907138 100644 --- a/src/vs/workbench/contrib/terminal/test/browser/terminalInstance.test.ts +++ b/src/vs/workbench/contrib/terminal/test/browser/terminalInstance.test.ts @@ -10,7 +10,7 @@ import { IWorkspaceContextService, toWorkspaceFolder } from 'vs/platform/workspa import { Workspace } from 'vs/platform/workspace/test/common/testWorkspace'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; -import { fixPath, getUri } from 'vs/workbench/contrib/search/test/browser/queryBuilder.test'; +import { fixPath, getUri } from 'vs/workbench/services/search/test/browser/queryBuilder.test'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/terminalConfigHelper'; import { ITerminalInstance } from 'vs/workbench/contrib/terminal/browser/terminal'; diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts index b86272c4a2b..261ded6d6cf 100644 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.ts @@ -30,7 +30,7 @@ import { coalesce, flatten } from 'vs/base/common/arrays'; import { IViewsService } from 'vs/workbench/common/views'; import { localize } from 'vs/nls'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { checkGlobFileExists } from 'vs/workbench/api/common/shared/workspaceContains'; +import { checkGlobFileExists } from 'vs/workbench/services/extensions/common/workspaceContains'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { CancellationTokenSource } from 'vs/base/common/cancellation'; diff --git a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts index f66683473e6..6de7ecdd4e2 100644 --- a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts +++ b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts @@ -27,7 +27,7 @@ import { parseExtensionDevOptions } from 'vs/workbench/services/extensions/commo import { IProductService } from 'vs/platform/product/common/productService'; import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { IExtensionManagementService, InstallOperation } from 'vs/platform/extensionManagement/common/extensionManagement'; -import { IExtensionActivationHost as IWorkspaceContainsActivationHost, checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vs/workbench/api/common/shared/workspaceContains'; +import { IExtensionActivationHost as IWorkspaceContainsActivationHost, checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vs/workbench/services/extensions/common/workspaceContains'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/api/common/shared/workspaceContains.ts b/src/vs/workbench/services/extensions/common/workspaceContains.ts similarity index 98% rename from src/vs/workbench/api/common/shared/workspaceContains.ts rename to src/vs/workbench/services/extensions/common/workspaceContains.ts index 47abde1d832..d6b4b676d22 100644 --- a/src/vs/workbench/api/common/shared/workspaceContains.ts +++ b/src/vs/workbench/services/extensions/common/workspaceContains.ts @@ -9,7 +9,7 @@ import { CancellationTokenSource, CancellationToken } from 'vs/base/common/cance import * as errors from 'vs/base/common/errors'; import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { ISearchService } from 'vs/workbench/services/search/common/search'; import { toWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { ILogService } from 'vs/platform/log/common/log'; diff --git a/src/vs/workbench/services/extensions/worker/extensionHostWorker.ts b/src/vs/workbench/services/extensions/worker/extensionHostWorker.ts index 8996ce43e35..65132d4e2af 100644 --- a/src/vs/workbench/services/extensions/worker/extensionHostWorker.ts +++ b/src/vs/workbench/services/extensions/worker/extensionHostWorker.ts @@ -8,7 +8,7 @@ import { VSBuffer } from 'vs/base/common/buffer'; import { Emitter } from 'vs/base/common/event'; import { isMessageOfType, MessageType, createMessageOfType } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { IInitData } from 'vs/workbench/api/common/extHost.protocol'; -import { ExtensionHostMain } from 'vs/workbench/services/extensions/common/extensionHostMain'; +import { ExtensionHostMain } from 'vs/workbench/api/common/extensionHostMain'; import { IHostUtils } from 'vs/workbench/api/common/extHostExtensionService'; import { NestedWorker } from 'vs/workbench/services/extensions/worker/polyfillNestedWorker'; import * as path from 'vs/base/common/path'; diff --git a/src/vs/workbench/contrib/search/common/queryBuilder.ts b/src/vs/workbench/services/search/common/queryBuilder.ts similarity index 100% rename from src/vs/workbench/contrib/search/common/queryBuilder.ts rename to src/vs/workbench/services/search/common/queryBuilder.ts diff --git a/src/vs/workbench/contrib/search/test/browser/queryBuilder.test.ts b/src/vs/workbench/services/search/test/browser/queryBuilder.test.ts similarity index 99% rename from src/vs/workbench/contrib/search/test/browser/queryBuilder.test.ts rename to src/vs/workbench/services/search/test/browser/queryBuilder.test.ts index e4be7d216dd..18d8a3f359f 100644 --- a/src/vs/workbench/contrib/search/test/browser/queryBuilder.test.ts +++ b/src/vs/workbench/services/search/test/browser/queryBuilder.test.ts @@ -12,7 +12,7 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/ import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { IWorkspaceContextService, toWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { toWorkspaceFolders } from 'vs/platform/workspaces/common/workspaces'; -import { ISearchPathsInfo, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ISearchPathsInfo, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { IFileQuery, IFolderQuery, IPatternInfo, ITextQuery, QueryType } from 'vs/workbench/services/search/common/search'; import { TestPathService, TestEnvironmentService } from 'vs/workbench/test/browser/workbenchTestServices'; diff --git a/src/vs/workbench/contrib/search/test/electron-browser/queryBuilder.test.ts b/src/vs/workbench/services/search/test/electron-browser/queryBuilder.test.ts similarity index 94% rename from src/vs/workbench/contrib/search/test/electron-browser/queryBuilder.test.ts rename to src/vs/workbench/services/search/test/electron-browser/queryBuilder.test.ts index 590cfd98a30..a054777a38d 100644 --- a/src/vs/workbench/contrib/search/test/electron-browser/queryBuilder.test.ts +++ b/src/vs/workbench/services/search/test/electron-browser/queryBuilder.test.ts @@ -7,9 +7,9 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/ import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; import { IWorkspaceContextService, toWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; -import { ISearchPathsInfo, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { ISearchPathsInfo, QueryBuilder } from 'vs/workbench/services/search/common/queryBuilder'; import { TestEnvironmentService, TestNativePathService } from 'vs/workbench/test/electron-browser/workbenchTestServices'; -import { assertEqualSearchPathResults, getUri, patternsToIExpression, globalGlob, fixPath } from 'vs/workbench/contrib/search/test/browser/queryBuilder.test'; +import { assertEqualSearchPathResults, getUri, patternsToIExpression, globalGlob, fixPath } from 'vs/workbench/services/search/test/browser/queryBuilder.test'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { Workspace } from 'vs/platform/workspace/test/common/testWorkspace'; From 011308ef41facb231bb3c0e0223bda6e88e1bfbd Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 16:48:25 +0100 Subject: [PATCH 91/96] Move `extensionHostWorker.ts` to `/workbench/api/` (#141003) --- src/buildfile.js | 2 +- src/vs/server/node/webClientServer.ts | 2 +- .../extensions => api}/worker/extensionHostWorker.ts | 0 .../extensions/worker/webWorkerExtensionHostIframe.html | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) rename src/vs/workbench/{services/extensions => api}/worker/extensionHostWorker.ts (100%) diff --git a/src/buildfile.js b/src/buildfile.js index 5b9b061df45..f5df248ba21 100644 --- a/src/buildfile.js +++ b/src/buildfile.js @@ -22,7 +22,7 @@ exports.base = [ } ]; -exports.workerExtensionHost = [createEditorWorkerModuleDescription('vs/workbench/services/extensions/worker/extensionHostWorker')]; +exports.workerExtensionHost = [createEditorWorkerModuleDescription('vs/workbench/api/worker/extensionHostWorker')]; exports.workerNotebook = [createEditorWorkerModuleDescription('vs/workbench/contrib/notebook/common/services/notebookSimpleWorker')]; exports.workerSharedProcess = [createEditorWorkerModuleDescription('vs/platform/sharedProcess/electron-browser/sharedProcessWorkerMain')]; exports.workerLanguageDetection = [createEditorWorkerModuleDescription('vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker')]; diff --git a/src/vs/server/node/webClientServer.ts b/src/vs/server/node/webClientServer.ts index 08bba6ac66c..5ea81b08514 100644 --- a/src/vs/server/node/webClientServer.ts +++ b/src/vs/server/node/webClientServer.ts @@ -295,7 +295,7 @@ export class WebClientServer { 'default-src \'self\';', 'img-src \'self\' https: data: blob:;', 'media-src \'self\';', - `script-src 'self' 'unsafe-eval' ${this._getScriptCspHashes(data).join(' ')} 'sha256-9CevbjD7QdrWdGrVTVJD74tTH4eAhisvCOlLtWUn+Iw=' http://${remoteAuthority};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html + `script-src 'self' 'unsafe-eval' ${this._getScriptCspHashes(data).join(' ')} 'sha256-Luz5WwVrEgqx3ZT5ekNejY0UMaLynWfImiCqdaT6CeQ=' http://${remoteAuthority};`, // the sha is the same as in src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html 'child-src \'self\';', `frame-src 'self' https://*.vscode-webview.net ${this._productService.webEndpointUrl || ''} data:;`, 'worker-src \'self\' data:;', diff --git a/src/vs/workbench/services/extensions/worker/extensionHostWorker.ts b/src/vs/workbench/api/worker/extensionHostWorker.ts similarity index 100% rename from src/vs/workbench/services/extensions/worker/extensionHostWorker.ts rename to src/vs/workbench/api/worker/extensionHostWorker.ts diff --git a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html b/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html index d56ee74f231..fbf718a6253 100644 --- a/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html +++ b/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html @@ -4,7 +4,7 @@ @@ -27,7 +27,7 @@ try { const worker = new Worker('../../../../base/worker/workerMain.js', { name }); - worker.postMessage('vs/workbench/services/extensions/worker/extensionHostWorker'); + worker.postMessage('vs/workbench/api/worker/extensionHostWorker'); const nestedWorkers = new Map(); worker.onmessage = (event) => { From a1a4c0a63b1ad59e84f54b874744fe35dea9abe1 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Mon, 31 Jan 2022 16:49:23 +0100 Subject: [PATCH 92/96] Update grammars --- extensions/clojure/cgmanifest.json | 4 +- .../clojure/syntaxes/clojure.tmLanguage.json | 26 ++-- extensions/cpp/cgmanifest.json | 2 +- extensions/csharp/cgmanifest.json | 2 +- .../csharp/syntaxes/csharp.tmLanguage.json | 10 +- extensions/fsharp/cgmanifest.json | 2 +- .../fsharp/syntaxes/fsharp.tmLanguage.json | 11 +- .../syntaxes/JavaScript.tmLanguage.json | 23 ++- .../syntaxes/JavaScriptReact.tmLanguage.json | 23 ++- extensions/julia/cgmanifest.json | 4 +- .../julia/syntaxes/julia.tmLanguage.json | 17 ++- extensions/latex/cgmanifest.json | 4 +- .../latex/syntaxes/Bibtex.tmLanguage.json | 2 +- .../latex/syntaxes/LaTeX.tmLanguage.json | 2 +- extensions/latex/syntaxes/TeX.tmLanguage.json | 2 +- extensions/r/cgmanifest.json | 4 +- extensions/r/syntaxes/r.tmLanguage.json | 138 ++++++++++++++---- extensions/scss/cgmanifest.json | 4 +- extensions/typescript-basics/cgmanifest.json | 2 +- .../syntaxes/TypeScript.tmLanguage.json | 23 ++- .../syntaxes/TypeScriptReact.tmLanguage.json | 23 ++- .../test/colorize-results/test_cs.json | 60 ++++---- 22 files changed, 279 insertions(+), 109 deletions(-) diff --git a/extensions/clojure/cgmanifest.json b/extensions/clojure/cgmanifest.json index 3a72fefb369..c13821aba02 100644 --- a/extensions/clojure/cgmanifest.json +++ b/extensions/clojure/cgmanifest.json @@ -6,11 +6,11 @@ "git": { "name": "atom/language-clojure", "repositoryUrl": "https://github.com/atom/language-clojure", - "commitHash": "de877502aa4a77ccdc2c7f0c9180436aea3effff" + "commitHash": "45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03" } }, "license": "MIT", - "version": "0.22.7", + "version": "0.22.8", "description": "The file syntaxes/clojure.tmLanguage.json was derived from the Atom package https://github.com/atom/language-clojure which was originally converted from the TextMate bundle https://github.com/mmcgrana/textmate-clojure." } ], diff --git a/extensions/clojure/syntaxes/clojure.tmLanguage.json b/extensions/clojure/syntaxes/clojure.tmLanguage.json index 29c25edfa24..6a4ab390a77 100644 --- a/extensions/clojure/syntaxes/clojure.tmLanguage.json +++ b/extensions/clojure/syntaxes/clojure.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/atom/language-clojure/commit/de877502aa4a77ccdc2c7f0c9180436aea3effff", + "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03", "name": "Clojure", "scopeName": "source.clojure", "patterns": [ @@ -79,35 +79,31 @@ "name": "constant.language.boolean.clojure" }, { - "match": "(-?\\d+/\\d+)", + "match": "(##(?:Inf|-Inf|NaN))", + "name": "constant.numeric.symbol.clojure" + }, + { + "match": "([-+]?\\d+/\\d+)", "name": "constant.numeric.ratio.clojure" }, { - "match": "(-?\\d+[rR]\\w+)", + "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)", "name": "constant.numeric.arbitrary-radix.clojure" }, { - "match": "(-?0[xX][0-9a-fA-F]+)", + "match": "([-+]?0[xX][0-9a-fA-F]+N?)", "name": "constant.numeric.hexadecimal.clojure" }, { - "match": "(-?0\\d+)", + "match": "([-+]?0[0-7]+N?)", "name": "constant.numeric.octal.clojure" }, { - "match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?M)", - "name": "constant.numeric.bigdecimal.clojure" - }, - { - "match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?)", + "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)", "name": "constant.numeric.double.clojure" }, { - "match": "(-?\\d+N)", - "name": "constant.numeric.bigint.clojure" - }, - { - "match": "(-?\\d+)", + "match": "([-+]?\\d+N?)", "name": "constant.numeric.long.clojure" }, { diff --git a/extensions/cpp/cgmanifest.json b/extensions/cpp/cgmanifest.json index 51ed002f31e..f2bf269a5f4 100644 --- a/extensions/cpp/cgmanifest.json +++ b/extensions/cpp/cgmanifest.json @@ -6,7 +6,7 @@ "git": { "name": "jeff-hykin/cpp-textmate-grammar", "repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar", - "commitHash": "0ef79f098ed80ce5a86be4ed40f99ebcdbac4895" + "commitHash": "db3f4e4a5d8335b2f6d689bec490c23f8313630f" } }, "license": "MIT", diff --git a/extensions/csharp/cgmanifest.json b/extensions/csharp/cgmanifest.json index 505f53fe37f..8b65e5000f9 100644 --- a/extensions/csharp/cgmanifest.json +++ b/extensions/csharp/cgmanifest.json @@ -6,7 +6,7 @@ "git": { "name": "dotnet/csharp-tmLanguage", "repositoryUrl": "https://github.com/dotnet/csharp-tmLanguage", - "commitHash": "483d25bfa2b96474b55d2e9e4d1ca2acbd542034" + "commitHash": "16612717ccd557383c0c821d7b6ae6662492ffde" } }, "license": "MIT", diff --git a/extensions/csharp/syntaxes/csharp.tmLanguage.json b/extensions/csharp/syntaxes/csharp.tmLanguage.json index a9bb170e9dd..f6317202d2e 100644 --- a/extensions/csharp/syntaxes/csharp.tmLanguage.json +++ b/extensions/csharp/syntaxes/csharp.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/dotnet/csharp-tmLanguage/commit/483d25bfa2b96474b55d2e9e4d1ca2acbd542034", + "version": "https://github.com/dotnet/csharp-tmLanguage/commit/16612717ccd557383c0c821d7b6ae6662492ffde", "name": "C#", "scopeName": "source.cs", "patterns": [ @@ -997,7 +997,7 @@ "name": "keyword.other.where.cs" }, "2": { - "name": "storage.type.cs" + "name": "entity.name.type.type-parameter.cs" }, "3": { "name": "punctuation.separator.colon.cs" @@ -4120,7 +4120,7 @@ "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", "captures": { "1": { - "name": "storage.type.cs" + "name": "entity.name.type.cs" }, "2": { "name": "punctuation.accessor.cs" @@ -4134,12 +4134,12 @@ "name": "punctuation.accessor.cs" }, "2": { - "name": "storage.type.cs" + "name": "entity.name.type.cs" } } }, { - "name": "storage.type.cs", + "name": "entity.name.type.cs", "match": "@?[_[:alpha:]][_[:alnum:]]*" } ] diff --git a/extensions/fsharp/cgmanifest.json b/extensions/fsharp/cgmanifest.json index c6bf0cd4139..29d6ae5aadd 100644 --- a/extensions/fsharp/cgmanifest.json +++ b/extensions/fsharp/cgmanifest.json @@ -6,7 +6,7 @@ "git": { "name": "ionide/ionide-fsgrammar", "repositoryUrl": "https://github.com/ionide/ionide-fsgrammar", - "commitHash": "bba27391e61090035449b5c1e5c4b9d396bc4c9b" + "commitHash": "3311701c243d6ed5b080a2ee16ada51540a08c50" } }, "license": "MIT", diff --git a/extensions/fsharp/syntaxes/fsharp.tmLanguage.json b/extensions/fsharp/syntaxes/fsharp.tmLanguage.json index c388ab00750..b4d2523b3e1 100644 --- a/extensions/fsharp/syntaxes/fsharp.tmLanguage.json +++ b/extensions/fsharp/syntaxes/fsharp.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/ionide/ionide-fsgrammar/commit/bba27391e61090035449b5c1e5c4b9d396bc4c9b", + "version": "https://github.com/ionide/ionide-fsgrammar/commit/3311701c243d6ed5b080a2ee16ada51540a08c50", "name": "fsharp", "scopeName": "source.fsharp", "patterns": [ @@ -525,6 +525,15 @@ }, "comments": { "patterns": [ + { + "name": "comment.literate.command.fsharp", + "match": "(\\(\\*{3}.*\\*{3}\\))", + "beginCaptures": { + "1": { + "name": "comment.block.fsharp" + } + } + }, { "name": "comment.block.markdown.fsharp", "begin": "^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$", diff --git a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json index e25adfe34fe..5eab3c69bd1 100644 --- a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json +++ b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/644389aef914fc6fbc97a4dd799cc2d1431ffc87", + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/56b7270f094b036256774702e3b7f96490981190", "name": "JavaScript (with React support)", "scopeName": "source.js", "patterns": [ @@ -5293,6 +5293,27 @@ } } }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, { "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", "captures": { diff --git a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json b/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json index 44c08055382..c4789cde4e8 100644 --- a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json +++ b/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/644389aef914fc6fbc97a4dd799cc2d1431ffc87", + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/56b7270f094b036256774702e3b7f96490981190", "name": "JavaScript (with React support)", "scopeName": "source.js.jsx", "patterns": [ @@ -5293,6 +5293,27 @@ } } }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, { "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", "captures": { diff --git a/extensions/julia/cgmanifest.json b/extensions/julia/cgmanifest.json index 4c1fbf73268..9640a863021 100644 --- a/extensions/julia/cgmanifest.json +++ b/extensions/julia/cgmanifest.json @@ -6,11 +6,11 @@ "git": { "name": "JuliaEditorSupport/atom-language-julia", "repositoryUrl": "https://github.com/JuliaEditorSupport/atom-language-julia", - "commitHash": "cbf818c487848f8ab1293e0ff6650aaa3bf02f98" + "commitHash": "0805e96e0856cab9b33a1f1025f5613cfa19189b" } }, "license": "MIT", - "version": "0.21.2" + "version": "0.22.1" } ], "version": 1 diff --git a/extensions/julia/syntaxes/julia.tmLanguage.json b/extensions/julia/syntaxes/julia.tmLanguage.json index 0de484237d9..3d78b0f5975 100644 --- a/extensions/julia/syntaxes/julia.tmLanguage.json +++ b/extensions/julia/syntaxes/julia.tmLanguage.json @@ -4,7 +4,7 @@ "If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], - "version": "https://github.com/JuliaEditorSupport/atom-language-julia/commit/cbf818c487848f8ab1293e0ff6650aaa3bf02f98", + "version": "https://github.com/JuliaEditorSupport/atom-language-julia/commit/0805e96e0856cab9b33a1f1025f5613cfa19189b", "name": "Julia", "scopeName": "source.julia", "comment": "This grammar is used by Atom (Oniguruma), GitHub (PCRE), and VSCode (Oniguruma),\nso all regexps must be compatible with both engines.\n\nSpecs:\n- https://github.com/kkos/oniguruma/blob/master/doc/RE\n- https://www.pcre.org/current/doc/html/", @@ -56,12 +56,12 @@ "name": "meta.bracket.julia" } }, - "end": "(?:\\])(?:(\\.)?'*)", + "end": "(\\])((?:\\.)?'*)", "endCaptures": { - "0": { + "1": { "name": "meta.bracket.julia" }, - "1": { + "2": { "name": "keyword.operator.transpose.julia" } }, @@ -95,10 +95,13 @@ "name": "meta.bracket.julia" } }, - "end": "\\)", + "end": "(\\))((?:\\.)?'*)", "endCaptures": { - "0": { + "1": { "name": "meta.bracket.julia" + }, + "2": { + "name": "keyword.operator.transpose.julia" } }, "patterns": [ @@ -286,7 +289,7 @@ "number": { "patterns": [ { - "match": "((? Date: Mon, 31 Jan 2022 16:55:35 +0100 Subject: [PATCH 93/96] Move `menusExtensionPoint.ts` to `/workbench/services/` (#141003) --- .../{api => services/actions}/common/menusExtensionPoint.ts | 0 .../workbench/services/keybinding/browser/keybindingService.ts | 2 +- src/vs/workbench/workbench.common.main.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename src/vs/workbench/{api => services/actions}/common/menusExtensionPoint.ts (100%) diff --git a/src/vs/workbench/api/common/menusExtensionPoint.ts b/src/vs/workbench/services/actions/common/menusExtensionPoint.ts similarity index 100% rename from src/vs/workbench/api/common/menusExtensionPoint.ts rename to src/vs/workbench/services/actions/common/menusExtensionPoint.ts diff --git a/src/vs/workbench/services/keybinding/browser/keybindingService.ts b/src/vs/workbench/services/keybinding/browser/keybindingService.ts index 734b2093727..3ac3d1ec693 100644 --- a/src/vs/workbench/services/keybinding/browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/browser/keybindingService.ts @@ -34,7 +34,7 @@ import { IHostService } from 'vs/workbench/services/host/browser/host'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { MenuRegistry } from 'vs/platform/actions/common/actions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { commandsExtensionPoint } from 'vs/workbench/api/common/menusExtensionPoint'; +import { commandsExtensionPoint } from 'vs/workbench/services/actions/common/menusExtensionPoint'; import { Disposable } from 'vs/base/common/lifecycle'; import { RunOnceScheduler } from 'vs/base/common/async'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts index 9bb5270ad0c..48e7def9f76 100644 --- a/src/vs/workbench/workbench.common.main.ts +++ b/src/vs/workbench/workbench.common.main.ts @@ -31,7 +31,7 @@ import 'vs/workbench/browser/actions/quickAccessActions'; //#region --- API Extension Points -import 'vs/workbench/api/common/menusExtensionPoint'; +import 'vs/workbench/services/actions/common/menusExtensionPoint'; import 'vs/workbench/api/common/configurationExtensionPoint'; import 'vs/workbench/api/browser/viewsExtensionPoint'; From fec88d2ccd804f6d16b11ab37726b2ce613bac8e Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 17:11:31 +0100 Subject: [PATCH 94/96] Move `ExtensionActivationReason` to `workbench/services' (#141003) --- .../workbench/api/browser/mainThreadExtensionService.ts | 3 +-- src/vs/workbench/api/common/extHost.protocol.ts | 3 +-- src/vs/workbench/api/common/extHostExtensionActivator.ts | 8 +------- src/vs/workbench/api/common/extHostExtensionService.ts | 4 ++-- .../extensions/common/abstractExtensionService.ts | 3 +-- .../services/extensions/common/extensionHostManager.ts | 3 +-- src/vs/workbench/services/extensions/common/extensions.ts | 7 ++++++- 7 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadExtensionService.ts b/src/vs/workbench/api/browser/mainThreadExtensionService.ts index 414cb4a2f7c..9cae1c33e93 100644 --- a/src/vs/workbench/api/browser/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/browser/mainThreadExtensionService.ts @@ -7,7 +7,7 @@ import { SerializedError } from 'vs/base/common/errors'; import Severity from 'vs/base/common/severity'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { IExtHostContext, MainContext, MainThreadExtensionServiceShape } from 'vs/workbench/api/common/extHost.protocol'; -import { IExtensionService, ExtensionHostKind, MissingExtensionDependency } from 'vs/workbench/services/extensions/common/extensions'; +import { IExtensionService, ExtensionHostKind, MissingExtensionDependency, ExtensionActivationReason } from 'vs/workbench/services/extensions/common/extensions'; import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { localize } from 'vs/nls'; @@ -18,7 +18,6 @@ import { IHostService } from 'vs/workbench/services/host/browser/host'; import { IExtension, IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement'; -import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { ITimerService } from 'vs/workbench/services/timer/browser/timerService'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { ICommandService } from 'vs/platform/commands/common/commands'; diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 2a8eba54e81..9792a9159b0 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -42,7 +42,6 @@ import { ICreateContributedTerminalProfileOptions, IProcessProperty, IShellLaunc import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage'; import { WorkspaceTrustRequestOptions } from 'vs/platform/workspace/common/workspaceTrust'; -import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService'; import { DebugConfigurationProviderTriggerKind } from 'vs/workbench/api/common/extHostTypes'; import * as tasks from 'vs/workbench/api/common/shared/tasks'; @@ -63,7 +62,7 @@ import { CoverageDetails, ExtensionRunTestsRequest, IFileCoverage, ISerializedTe import { InternalTimelineOptions, Timeline, TimelineChangeEvent, TimelineOptions, TimelineProviderDescriptor } from 'vs/workbench/contrib/timeline/common/timeline'; import { TypeHierarchyItem } from 'vs/workbench/contrib/typeHierarchy/common/typeHierarchy'; import { EditorGroupColumn } from 'vs/workbench/services/editor/common/editorGroupColumn'; -import { ActivationKind, ExtensionHostKind, MissingExtensionDependency } from 'vs/workbench/services/extensions/common/extensions'; +import { ActivationKind, ExtensionActivationReason, ExtensionHostKind, MissingExtensionDependency } from 'vs/workbench/services/extensions/common/extensions'; import { createProxyIdentifier, Dto, IRPCProtocol, SerializableObjectWithBuffers } from 'vs/workbench/services/extensions/common/proxyIdentifier'; import { ILanguageStatus } from 'vs/workbench/services/languageStatus/common/languageStatusService'; import { CandidatePort } from 'vs/workbench/services/remote/common/remoteExplorerService'; diff --git a/src/vs/workbench/api/common/extHostExtensionActivator.ts b/src/vs/workbench/api/common/extHostExtensionActivator.ts index 34bab15025d..71e8cd7c1fe 100644 --- a/src/vs/workbench/api/common/extHostExtensionActivator.ts +++ b/src/vs/workbench/api/common/extHostExtensionActivator.ts @@ -8,7 +8,7 @@ import * as errors from 'vs/base/common/errors'; import { IDisposable } from 'vs/base/common/lifecycle'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/common/extensionDescriptionRegistry'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; -import { MissingExtensionDependency } from 'vs/workbench/services/extensions/common/extensions'; +import { ExtensionActivationReason, MissingExtensionDependency } from 'vs/workbench/services/extensions/common/extensions'; import { ILogService } from 'vs/platform/log/common/log'; const NO_OP_VOID_PROMISE = Promise.resolve(undefined); @@ -162,12 +162,6 @@ export interface IExtensionsActivatorHost { actualActivateExtension(extensionId: ExtensionIdentifier, reason: ExtensionActivationReason): Promise; } -export interface ExtensionActivationReason { - readonly startup: boolean; - readonly extensionId: ExtensionIdentifier; - readonly activationEvent: string; -} - type ActivationIdAndReason = { id: ExtensionIdentifier, reason: ExtensionActivationReason; }; export class ExtensionsActivator implements IDisposable { diff --git a/src/vs/workbench/api/common/extHostExtensionService.ts b/src/vs/workbench/api/common/extHostExtensionService.ts index fb763789666..d6729a79d99 100644 --- a/src/vs/workbench/api/common/extHostExtensionService.ts +++ b/src/vs/workbench/api/common/extHostExtensionService.ts @@ -14,10 +14,10 @@ import { URI, UriComponents } from 'vs/base/common/uri'; import { ILogService } from 'vs/platform/log/common/log'; import { ExtHostExtensionServiceShape, IInitData, MainContext, MainThreadExtensionServiceShape, MainThreadTelemetryShape, MainThreadWorkspaceShape, IResolveAuthorityResult } from 'vs/workbench/api/common/extHost.protocol'; import { ExtHostConfiguration, IExtHostConfiguration } from 'vs/workbench/api/common/extHostConfiguration'; -import { ActivatedExtension, EmptyExtension, ExtensionActivationReason, ExtensionActivationTimes, ExtensionActivationTimesBuilder, ExtensionsActivator, IExtensionAPI, IExtensionModule, HostExtension, ExtensionActivationTimesFragment } from 'vs/workbench/api/common/extHostExtensionActivator'; +import { ActivatedExtension, EmptyExtension, ExtensionActivationTimes, ExtensionActivationTimesBuilder, ExtensionsActivator, IExtensionAPI, IExtensionModule, HostExtension, ExtensionActivationTimesFragment } from 'vs/workbench/api/common/extHostExtensionActivator'; import { ExtHostStorage, IExtHostStorage } from 'vs/workbench/api/common/extHostStorage'; import { ExtHostWorkspace, IExtHostWorkspace } from 'vs/workbench/api/common/extHostWorkspace'; -import { MissingExtensionDependency, ActivationKind, checkProposedApiEnabled, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; +import { MissingExtensionDependency, ActivationKind, checkProposedApiEnabled, isProposedApiEnabled, ExtensionActivationReason } from 'vs/workbench/services/extensions/common/extensions'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/common/extensionDescriptionRegistry'; import * as errors from 'vs/base/common/errors'; import type * as vscode from 'vscode'; diff --git a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts index 6de7ecdd4e2..891812f5a8c 100644 --- a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts +++ b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts @@ -15,7 +15,7 @@ import { IWebExtensionsScannerService, IWorkbenchExtensionEnablementService } fr import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { ActivationTimes, ExtensionPointContribution, IExtensionService, IExtensionsStatus, IMessage, IWillActivateEvent, IResponsiveStateChangeEvent, toExtension, IExtensionHost, ActivationKind, ExtensionHostKind, toExtensionDescription, ExtensionRunningLocation, extensionHostKindToString } from 'vs/workbench/services/extensions/common/extensions'; +import { ActivationTimes, ExtensionPointContribution, IExtensionService, IExtensionsStatus, IMessage, IWillActivateEvent, IResponsiveStateChangeEvent, toExtension, IExtensionHost, ActivationKind, ExtensionHostKind, toExtensionDescription, ExtensionRunningLocation, extensionHostKindToString, ExtensionActivationReason } from 'vs/workbench/services/extensions/common/extensions'; import { ExtensionMessageCollector, ExtensionPoint, ExtensionsRegistry, IExtensionPoint, IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/common/extensionDescriptionRegistry'; import { ResponsiveState } from 'vs/workbench/services/extensions/common/rpcProtocol'; @@ -25,7 +25,6 @@ import { ExtensionKind } from 'vs/platform/environment/common/environment'; import { IFileService } from 'vs/platform/files/common/files'; import { parseExtensionDevOptions } from 'vs/workbench/services/extensions/common/extensionDevOptions'; import { IProductService } from 'vs/platform/product/common/productService'; -import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { IExtensionManagementService, InstallOperation } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IExtensionActivationHost as IWorkspaceContainsActivationHost, checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vs/workbench/services/extensions/common/workspaceContains'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; diff --git a/src/vs/workbench/services/extensions/common/extensionHostManager.ts b/src/vs/workbench/services/extensions/common/extensionHostManager.ts index a1e9ad58224..8dc5b350a98 100644 --- a/src/vs/workbench/services/extensions/common/extensionHostManager.ts +++ b/src/vs/workbench/services/extensions/common/extensionHostManager.ts @@ -20,8 +20,7 @@ import { registerAction2, Action2 } from 'vs/platform/actions/common/actions'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { StopWatch } from 'vs/base/common/stopwatch'; import { VSBuffer } from 'vs/base/common/buffer'; -import { IExtensionHost, ExtensionHostKind, ActivationKind, extensionHostKindToString } from 'vs/workbench/services/extensions/common/extensions'; -import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; +import { IExtensionHost, ExtensionHostKind, ActivationKind, extensionHostKindToString, ExtensionActivationReason } from 'vs/workbench/services/extensions/common/extensions'; import { CATEGORIES } from 'vs/workbench/common/actions'; import { Barrier, timeout } from 'vs/base/common/async'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/services/extensions/common/extensions.ts b/src/vs/workbench/services/extensions/common/extensions.ts index a6b40d865d4..93cc0998303 100644 --- a/src/vs/workbench/services/extensions/common/extensions.ts +++ b/src/vs/workbench/services/extensions/common/extensions.ts @@ -11,7 +11,6 @@ import { IExtensionPoint } from 'vs/workbench/services/extensions/common/extensi import { ExtensionIdentifier, IExtension, ExtensionType, IExtensionDescription, IExtensionContributions } from 'vs/platform/extensions/common/extensions'; import { getExtensionId, getGalleryExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; -import { ExtensionActivationReason } from 'vs/workbench/api/common/extHostExtensionActivator'; import { ApiProposalName } from 'vs/workbench/services/extensions/common/extensionsApiProposals'; import { IV8Profile } from 'vs/platform/profiling/common/profiling'; @@ -153,6 +152,12 @@ export function checkProposedApiEnabled(extension: IExtensionDescription, propos */ export type ProfileSegmentId = string | 'idle' | 'program' | 'gc' | 'self'; +export interface ExtensionActivationReason { + readonly startup: boolean; + readonly extensionId: ExtensionIdentifier; + readonly activationEvent: string; +} + export class ActivationTimes { constructor( public readonly codeLoadingTime: number, From 04cc454cf5ae6e0f87bd9c73404d92bc8e2b48dc Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 17:22:03 +0100 Subject: [PATCH 95/96] Move extension host `IInitData` to `/workbench/services` (#141003) --- .../workbench/api/common/extHost.api.impl.ts | 3 +- .../workbench/api/common/extHost.protocol.ts | 57 +----------------- .../api/common/extHostExtensionService.ts | 5 +- .../api/common/extHostInitDataService.ts | 4 +- .../api/common/extHostStoragePaths.ts | 2 +- .../workbench/api/common/extensionHostMain.ts | 7 ++- .../api/node/extensionHostProcessSetup.ts | 7 +-- src/vs/workbench/api/node/proxyResolver.ts | 5 +- .../api/worker/extensionHostWorker.ts | 7 +-- .../browser/webWorkerExtensionHost.ts | 5 +- .../common/extensionHostProtocol.ts | 59 +++++++++++++++++++ .../extensions/common/remoteExtensionHost.ts | 5 +- .../localProcessExtensionHost.ts | 5 +- 13 files changed, 88 insertions(+), 83 deletions(-) diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index 82ecf39d317..a8edf563339 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -13,7 +13,8 @@ import { OverviewRulerLane } from 'vs/editor/common/model'; import * as languageConfiguration from 'vs/editor/common/languages/languageConfiguration'; import { score } from 'vs/editor/common/languageSelector'; import * as files from 'vs/platform/files/common/files'; -import { ExtHostContext, MainContext, UIKind, CandidatePortSource, ExtHostLogLevelServiceShape } from 'vs/workbench/api/common/extHost.protocol'; +import { ExtHostContext, MainContext, CandidatePortSource, ExtHostLogLevelServiceShape } from 'vs/workbench/api/common/extHost.protocol'; +import { UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtHostApiCommands } from 'vs/workbench/api/common/extHostApiCommands'; import { ExtHostClipboard } from 'vs/workbench/api/common/extHostClipboard'; import { IExtHostCommands } from 'vs/workbench/api/common/extHostCommands'; diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 9792a9159b0..536a264c500 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -37,7 +37,7 @@ import * as quickInput from 'vs/platform/quickinput/common/quickInput'; import { IRemoteConnectionData, RemoteAuthorityResolverErrorCode, ResolverResult, TunnelDescription } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { ProvidedPortAttributes, TunnelCreationOptions, TunnelOptions, TunnelProviderFeatures } from 'vs/platform/tunnel/common/tunnel'; import { ClassifiedEvent, GDPRClassification, StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings'; -import { ITelemetryInfo, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; +import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import { ICreateContributedTerminalProfileOptions, IProcessProperty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalLocation } from 'vs/platform/terminal/common/terminal'; import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage'; @@ -69,60 +69,12 @@ import { CandidatePort } from 'vs/workbench/services/remote/common/remoteExplore import * as search from 'vs/workbench/services/search/common/search'; import { IWorkspaceSymbol } from 'vs/workbench/contrib/search/common/search'; import { ILineChange } from 'vs/editor/common/diff/diffComputer'; - -export interface IEnvironment { - isExtensionDevelopmentDebug: boolean; - appName: string; - appHost: string; - appRoot?: URI; - appLanguage: string; - appUriScheme: string; - extensionDevelopmentLocationURI?: URI[]; - extensionTestsLocationURI?: URI; - globalStorageHome: URI; - workspaceStorageHome: URI; - useHostProxy?: boolean; - skipWorkspaceStorageLock?: boolean; -} - -export interface IStaticWorkspaceData { - id: string; - name: string; - transient?: boolean; - configuration?: UriComponents | null; - isUntitled?: boolean | null; -} +import { IStaticWorkspaceData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; export interface IWorkspaceData extends IStaticWorkspaceData { folders: { uri: UriComponents, name: string, index: number; }[]; } -export interface MessagePortLike { - postMessage(message: any, transfer?: any[]): void; - addEventListener(type: 'message', listener: (e: any) => any): void; - removeEventListener(type: 'message', listener: (e: any) => any): void; - start(): void; -} - -export interface IInitData { - version: string; - commit?: string; - parentPid: number; - environment: IEnvironment; - workspace?: IStaticWorkspaceData | null; - resolvedExtensions: ExtensionIdentifier[]; - hostExtensions: ExtensionIdentifier[]; - extensions: IExtensionDescription[]; - telemetryInfo: ITelemetryInfo; - logLevel: LogLevel; - logsLocation: URI; - logFile: URI; - autoStart: boolean; - remote: { isRemote: boolean; authority: string | undefined; connectionData: IRemoteConnectionData | null; }; - uiKind: UIKind; - messagePorts?: ReadonlyMap; -} - export interface IConfigurationInitData extends IConfigurationData { configurationScopes: [string, ConfigurationScope | undefined][]; } @@ -135,11 +87,6 @@ export interface IExtHostContext extends IRPCProtocol { export interface IMainContext extends IRPCProtocol { } -export enum UIKind { - Desktop = 1, - Web = 2 -} - // --- main thread export interface MainThreadClipboardShape extends IDisposable { diff --git a/src/vs/workbench/api/common/extHostExtensionService.ts b/src/vs/workbench/api/common/extHostExtensionService.ts index d6729a79d99..dc3170c4d9d 100644 --- a/src/vs/workbench/api/common/extHostExtensionService.ts +++ b/src/vs/workbench/api/common/extHostExtensionService.ts @@ -12,7 +12,8 @@ import { dispose, toDisposable, Disposable } from 'vs/base/common/lifecycle'; import { TernarySearchTree } from 'vs/base/common/map'; import { URI, UriComponents } from 'vs/base/common/uri'; import { ILogService } from 'vs/platform/log/common/log'; -import { ExtHostExtensionServiceShape, IInitData, MainContext, MainThreadExtensionServiceShape, MainThreadTelemetryShape, MainThreadWorkspaceShape, IResolveAuthorityResult } from 'vs/workbench/api/common/extHost.protocol'; +import { ExtHostExtensionServiceShape, MainContext, MainThreadExtensionServiceShape, MainThreadTelemetryShape, MainThreadWorkspaceShape, IResolveAuthorityResult } from 'vs/workbench/api/common/extHost.protocol'; +import { IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtHostConfiguration, IExtHostConfiguration } from 'vs/workbench/api/common/extHostConfiguration'; import { ActivatedExtension, EmptyExtension, ExtensionActivationTimes, ExtensionActivationTimesBuilder, ExtensionsActivator, IExtensionAPI, IExtensionModule, HostExtension, ExtensionActivationTimesFragment } from 'vs/workbench/api/common/extHostExtensionActivator'; import { ExtHostStorage, IExtHostStorage } from 'vs/workbench/api/common/extHostStorage'; @@ -80,7 +81,7 @@ export abstract class AbstractExtHostExtensionService extends Disposable impleme public readonly onDidChangeRemoteConnectionData = this._onDidChangeRemoteConnectionData.event; protected readonly _hostUtils: IHostUtils; - protected readonly _initData: IInitData; + protected readonly _initData: IExtensionHostInitData; protected readonly _extHostContext: IExtHostRpcService; protected readonly _instaService: IInstantiationService; protected readonly _extHostWorkspace: ExtHostWorkspace; diff --git a/src/vs/workbench/api/common/extHostInitDataService.ts b/src/vs/workbench/api/common/extHostInitDataService.ts index c318d2694d0..5b7f1ebfa03 100644 --- a/src/vs/workbench/api/common/extHostInitDataService.ts +++ b/src/vs/workbench/api/common/extHostInitDataService.ts @@ -3,12 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IInitData } from './extHost.protocol'; +import { IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; export const IExtHostInitDataService = createDecorator('IExtHostInitDataService'); -export interface IExtHostInitDataService extends Readonly { +export interface IExtHostInitDataService extends Readonly { readonly _serviceBrand: undefined; } diff --git a/src/vs/workbench/api/common/extHostStoragePaths.ts b/src/vs/workbench/api/common/extHostStoragePaths.ts index e5039299165..71342224211 100644 --- a/src/vs/workbench/api/common/extHostStoragePaths.ts +++ b/src/vs/workbench/api/common/extHostStoragePaths.ts @@ -7,7 +7,7 @@ import { IExtensionDescription } from 'vs/platform/extensions/common/extensions' import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService'; import { ILogService } from 'vs/platform/log/common/log'; -import { IEnvironment, IStaticWorkspaceData } from 'vs/workbench/api/common/extHost.protocol'; +import { IEnvironment, IStaticWorkspaceData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { IExtHostConsumerFileSystem } from 'vs/workbench/api/common/extHostFileSystemConsumer'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/api/common/extensionHostMain.ts b/src/vs/workbench/api/common/extensionHostMain.ts index 6f575189eac..bfa0ac3126f 100644 --- a/src/vs/workbench/api/common/extensionHostMain.ts +++ b/src/vs/workbench/api/common/extensionHostMain.ts @@ -10,7 +10,8 @@ import { DisposableStore } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { IURITransformer } from 'vs/base/common/uriIpc'; import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; -import { IInitData, MainContext, MainThreadConsoleShape } from 'vs/workbench/api/common/extHost.protocol'; +import { MainContext, MainThreadConsoleShape } from 'vs/workbench/api/common/extHost.protocol'; +import { IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { RPCProtocol } from 'vs/workbench/services/extensions/common/rpcProtocol'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ILogService } from 'vs/platform/log/common/log'; @@ -43,7 +44,7 @@ export class ExtensionHostMain { constructor( protocol: IMessagePassingProtocol, - initData: IInitData, + initData: IExtensionHostInitData, hostUtils: IHostUtils, uriTransformer: IURITransformer | null, messagePorts?: ReadonlyMap @@ -151,7 +152,7 @@ export class ExtensionHostMain { }); } - private static _transform(initData: IInitData, rpcProtocol: RPCProtocol): IInitData { + private static _transform(initData: IExtensionHostInitData, rpcProtocol: RPCProtocol): IExtensionHostInitData { initData.extensions.forEach((ext) => (ext).extensionLocation = URI.revive(rpcProtocol.transformIncomingURIs(ext.extensionLocation))); initData.environment.appRoot = URI.revive(rpcProtocol.transformIncomingURIs(initData.environment.appRoot)); const extDevLocs = initData.environment.extensionDevelopmentLocationURI; diff --git a/src/vs/workbench/api/node/extensionHostProcessSetup.ts b/src/vs/workbench/api/node/extensionHostProcessSetup.ts index b6c518573c6..16ec672e626 100644 --- a/src/vs/workbench/api/node/extensionHostProcessSetup.ts +++ b/src/vs/workbench/api/node/extensionHostProcessSetup.ts @@ -13,8 +13,7 @@ import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import { PersistentProtocol, ProtocolConstants, BufferedEmitter } from 'vs/base/parts/ipc/common/ipc.net'; import { NodeSocket, WebSocketNodeSocket } from 'vs/base/parts/ipc/node/ipc.net'; import product from 'vs/platform/product/common/product'; -import { IInitData } from 'vs/workbench/api/common/extHost.protocol'; -import { MessageType, createMessageOfType, isMessageOfType, IExtHostSocketMessage, IExtHostReadyMessage, IExtHostReduceGraceTimeMessage, ExtensionHostExitCode } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; +import { MessageType, createMessageOfType, isMessageOfType, IExtHostSocketMessage, IExtHostReadyMessage, IExtHostReduceGraceTimeMessage, ExtensionHostExitCode, IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtensionHostMain, IExitFn } from 'vs/workbench/api/common/extensionHostMain'; import { VSBuffer } from 'vs/base/common/buffer'; import { IURITransformer, URITransformer, IRawURITransformer } from 'vs/base/common/uriIpc'; @@ -93,7 +92,7 @@ function patchProcess(allowExit: boolean) { interface IRendererConnection { protocol: IMessagePassingProtocol; - initData: IInitData; + initData: IExtensionHostInitData; } // This calls exit directly in case the initialization is not finished and we need to exit @@ -233,7 +232,7 @@ function connectToRenderer(protocol: IMessagePassingProtocol): Promise { first.dispose(); - const initData = JSON.parse(raw.toString()); + const initData = JSON.parse(raw.toString()); const rendererCommit = initData.commit; const myCommit = product.commit; diff --git a/src/vs/workbench/api/node/proxyResolver.ts b/src/vs/workbench/api/node/proxyResolver.ts index 8b6e10d7ae1..17495361d5a 100644 --- a/src/vs/workbench/api/node/proxyResolver.ts +++ b/src/vs/workbench/api/node/proxyResolver.ts @@ -9,7 +9,8 @@ import * as tls from 'tls'; import { IExtHostWorkspaceProvider } from 'vs/workbench/api/common/extHostWorkspace'; import { ExtHostConfigProvider } from 'vs/workbench/api/common/extHostConfiguration'; -import { MainThreadTelemetryShape, IInitData } from 'vs/workbench/api/common/extHost.protocol'; +import { MainThreadTelemetryShape } from 'vs/workbench/api/common/extHost.protocol'; +import { IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; import { URI } from 'vs/base/common/uri'; import { ILogService } from 'vs/platform/log/common/log'; @@ -22,7 +23,7 @@ export function connectProxyResolver( extensionService: ExtHostExtensionService, extHostLogService: ILogService, mainThreadTelemetry: MainThreadTelemetryShape, - initData: IInitData, + initData: IExtensionHostInitData, ) { const useHostProxy = initData.environment.useHostProxy; const doUseHostProxy = typeof useHostProxy === 'boolean' ? useHostProxy : !initData.remote.isRemote; diff --git a/src/vs/workbench/api/worker/extensionHostWorker.ts b/src/vs/workbench/api/worker/extensionHostWorker.ts index 65132d4e2af..799f039556c 100644 --- a/src/vs/workbench/api/worker/extensionHostWorker.ts +++ b/src/vs/workbench/api/worker/extensionHostWorker.ts @@ -6,8 +6,7 @@ import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import { VSBuffer } from 'vs/base/common/buffer'; import { Emitter } from 'vs/base/common/event'; -import { isMessageOfType, MessageType, createMessageOfType } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; -import { IInitData } from 'vs/workbench/api/common/extHost.protocol'; +import { isMessageOfType, MessageType, createMessageOfType, IExtensionHostInitData } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtensionHostMain } from 'vs/workbench/api/common/extensionHostMain'; import { IHostUtils } from 'vs/workbench/api/common/extHostExtensionService'; import { NestedWorker } from 'vs/workbench/services/extensions/worker/polyfillNestedWorker'; @@ -200,13 +199,13 @@ class ExtensionWorker { interface IRendererConnection { protocol: IMessagePassingProtocol; - initData: IInitData; + initData: IExtensionHostInitData; } function connectToRenderer(protocol: IMessagePassingProtocol): Promise { return new Promise(resolve => { const once = protocol.onMessage(raw => { once.dispose(); - const initData = JSON.parse(raw.toString()); + const initData = JSON.parse(raw.toString()); protocol.send(createMessageOfType(MessageType.Initialized)); resolve({ protocol, initData }); }); diff --git a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts index 5616f8b3e66..b33a75f0b0a 100644 --- a/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts +++ b/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.ts @@ -7,8 +7,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { toDisposable, Disposable } from 'vs/base/common/lifecycle'; import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import { VSBuffer } from 'vs/base/common/buffer'; -import { createMessageOfType, MessageType, isMessageOfType, ExtensionHostExitCode } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; -import { IInitData, UIKind } from 'vs/workbench/api/common/extHost.protocol'; +import { createMessageOfType, MessageType, isMessageOfType, ExtensionHostExitCode, IExtensionHostInitData, UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { ILabelService } from 'vs/platform/label/common/label'; @@ -256,7 +255,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost return Promise.resolve(false); } - private async _createExtHostInitData(): Promise { + private async _createExtHostInitData(): Promise { const [telemetryInfo, initData] = await Promise.all([this._telemetryService.getTelemetryInfo(), this._initDataProvider.getInitData()]); const workspace = this._contextService.getWorkspace(); return { diff --git a/src/vs/workbench/services/extensions/common/extensionHostProtocol.ts b/src/vs/workbench/services/extensions/common/extensionHostProtocol.ts index 7d3d4c30dc5..c1a50f5c5e2 100644 --- a/src/vs/workbench/services/extensions/common/extensionHostProtocol.ts +++ b/src/vs/workbench/services/extensions/common/extensionHostProtocol.ts @@ -4,6 +4,65 @@ *--------------------------------------------------------------------------------------------*/ import { VSBuffer } from 'vs/base/common/buffer'; +import { URI, UriComponents } from 'vs/base/common/uri'; +import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { LogLevel } from 'vs/platform/log/common/log'; +import { IRemoteConnectionData } from 'vs/platform/remote/common/remoteAuthorityResolver'; +import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; + +export interface IExtensionHostInitData { + version: string; + commit?: string; + parentPid: number; + environment: IEnvironment; + workspace?: IStaticWorkspaceData | null; + resolvedExtensions: ExtensionIdentifier[]; + hostExtensions: ExtensionIdentifier[]; + extensions: IExtensionDescription[]; + telemetryInfo: ITelemetryInfo; + logLevel: LogLevel; + logsLocation: URI; + logFile: URI; + autoStart: boolean; + remote: { isRemote: boolean; authority: string | undefined; connectionData: IRemoteConnectionData | null; }; + uiKind: UIKind; + messagePorts?: ReadonlyMap; +} + +export interface IEnvironment { + isExtensionDevelopmentDebug: boolean; + appName: string; + appHost: string; + appRoot?: URI; + appLanguage: string; + appUriScheme: string; + extensionDevelopmentLocationURI?: URI[]; + extensionTestsLocationURI?: URI; + globalStorageHome: URI; + workspaceStorageHome: URI; + useHostProxy?: boolean; + skipWorkspaceStorageLock?: boolean; +} + +export interface IStaticWorkspaceData { + id: string; + name: string; + transient?: boolean; + configuration?: UriComponents | null; + isUntitled?: boolean | null; +} + +export interface MessagePortLike { + postMessage(message: any, transfer?: any[]): void; + addEventListener(type: 'message', listener: (e: any) => any): void; + removeEventListener(type: 'message', listener: (e: any) => any): void; + start(): void; +} + +export enum UIKind { + Desktop = 1, + Web = 2 +} export const enum ExtensionHostExitCode { // nodejs uses codes 1-13 and exit codes >128 are signal exits diff --git a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts index f6b18a7f0c1..91def9ac7da 100644 --- a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts +++ b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts @@ -24,10 +24,9 @@ import { IRemoteAuthorityResolverService, IRemoteConnectionData } from 'vs/platf import { ISignService } from 'vs/platform/sign/common/sign'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; -import { IInitData, UIKind } from 'vs/workbench/api/common/extHost.protocol'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { parseExtensionDevOptions } from 'vs/workbench/services/extensions/common/extensionDevOptions'; -import { createMessageOfType, isMessageOfType, MessageType } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; +import { createMessageOfType, isMessageOfType, MessageType, IExtensionHostInitData, UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { ExtensionHostKind, ExtensionHostLogFileName, IExtensionHost } from 'vs/workbench/services/extensions/common/extensions'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { Extensions, IOutputChannelRegistry } from 'vs/workbench/services/output/common/output'; @@ -209,7 +208,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { this._onExit.fire([0, null]); } - private async _createExtHostInitData(isExtensionDevelopmentDebug: boolean): Promise { + private async _createExtHostInitData(isExtensionDevelopmentDebug: boolean): Promise { const [telemetryInfo, remoteInitData] = await Promise.all([this._telemetryService.getTelemetryInfo(), this._initDataProvider.getInitData()]); // Collect all identifiers for extension ids which can be considered "resolved" diff --git a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts index 630ea4e4dd2..7a689eba642 100644 --- a/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts @@ -29,8 +29,7 @@ import { INotificationService, Severity } from 'vs/platform/notification/common/ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; -import { IInitData, UIKind } from 'vs/workbench/api/common/extHost.protocol'; -import { MessageType, createMessageOfType, isMessageOfType } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; +import { MessageType, createMessageOfType, isMessageOfType, IExtensionHostInitData, UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { withNullAsUndefined } from 'vs/base/common/types'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { parseExtensionDevOptions } from '../common/extensionDevOptions'; @@ -527,7 +526,7 @@ export class LocalProcessExtensionHost implements IExtensionHost { }); } - private async _createExtHostInitData(): Promise { + private async _createExtHostInitData(): Promise { const [telemetryInfo, initData] = await Promise.all([this._telemetryService.getTelemetryInfo(), this._initDataProvider.getInitData()]); const workspace = this._contextService.getWorkspace(); return { From ab3a42aac308ab4b41f6ba8a98f699891bdab411 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 31 Jan 2022 17:30:04 +0100 Subject: [PATCH 96/96] Reduce imports of `workbench/api` (#141003) --- .../api/browser/mainThreadAuthentication.ts | 4 +-- .../browser/authenticationService.ts | 27 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadAuthentication.ts b/src/vs/workbench/api/browser/mainThreadAuthentication.ts index ef18d7b5e41..561c5bcbfb2 100644 --- a/src/vs/workbench/api/browser/mainThreadAuthentication.ts +++ b/src/vs/workbench/api/browser/mainThreadAuthentication.ts @@ -7,7 +7,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import * as modes from 'vs/editor/common/languages'; import * as nls from 'vs/nls'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; -import { IAuthenticationService, AllowedExtension, readAllowedExtensions, getAuthenticationProviderActivationEvent, addAccountUsage, readAccountUsages, removeAccountUsage } from 'vs/workbench/services/authentication/browser/authenticationService'; +import { IAuthenticationService, AllowedExtension, readAllowedExtensions, getAuthenticationProviderActivationEvent, addAccountUsage, readAccountUsages, removeAccountUsage, IAuthenticationProvider } from 'vs/workbench/services/authentication/browser/authenticationService'; import { ExtHostAuthenticationShape, ExtHostContext, IExtHostContext, MainContext, MainThreadAuthenticationShape } from '../common/extHost.protocol'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; @@ -25,7 +25,7 @@ interface TrustedExtensionsQuickPickItem { extension: AllowedExtension; } -export class MainThreadAuthenticationProvider extends Disposable { +export class MainThreadAuthenticationProvider extends Disposable implements IAuthenticationProvider { constructor( private readonly _proxy: ExtHostAuthenticationShape, public readonly id: string, diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts index b63beb2f9fa..55c69d385f4 100644 --- a/src/vs/workbench/services/authentication/browser/authenticationService.ts +++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts @@ -23,7 +23,6 @@ import { Severity } from 'vs/platform/notification/common/notification'; import { IProductService } from 'vs/platform/product/common/productService'; import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; -import { MainThreadAuthenticationProvider } from 'vs/workbench/api/browser/mainThreadAuthentication'; import { IActivityService, NumberBadge } from 'vs/workbench/services/activity/common/activity'; import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; import { ActivationKind, IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; @@ -114,7 +113,7 @@ export interface IAuthenticationService { isAuthenticationProviderRegistered(id: string): boolean; getProviderIds(): string[]; - registerAuthenticationProvider(id: string, provider: MainThreadAuthenticationProvider): void; + registerAuthenticationProvider(id: string, provider: IAuthenticationProvider): void; unregisterAuthenticationProvider(id: string): void; isAccessAllowed(providerId: string, accountName: string, extensionId: string): boolean | undefined; updatedAllowedExtension(providerId: string, accountName: string, extensionId: string, extensionName: string, isAllowed: boolean): Promise; @@ -144,6 +143,18 @@ export interface IAuthenticationService { removeAccountSessions(providerId: string, accountName: string, sessions: AuthenticationSession[]): Promise; } +export interface IAuthenticationProvider { + readonly id: string, + readonly label: string, + readonly supportsMultipleAccounts: boolean, + dispose(): void; + manageTrustedExtensions(accountName: string): void; + removeAccountSessions(accountName: string, sessions: AuthenticationSession[]): Promise; + getSessions(scopes?: string[]): Promise; + createSession(scopes: string[]): Promise; + removeSession(sessionId: string): Promise; +} + export interface AllowedExtension { id: string; name: string; @@ -210,7 +221,7 @@ export class AuthenticationService extends Disposable implements IAuthentication private _sessionAccessRequestItems = new Map(); private _accountBadgeDisposable = this._register(new MutableDisposable()); - private _authenticationProviders: Map = new Map(); + private _authenticationProviders: Map = new Map(); /** * All providers that have been statically declared by extensions. These may not be registered. @@ -291,7 +302,7 @@ export class AuthenticationService extends Disposable implements IAuthentication return this._authenticationProviders.has(id); } - registerAuthenticationProvider(id: string, authenticationProvider: MainThreadAuthenticationProvider): void { + registerAuthenticationProvider(id: string, authenticationProvider: IAuthenticationProvider): void { this._authenticationProviders.set(id, authenticationProvider); this._onDidRegisterAuthenticationProvider.fire({ id, label: authenticationProvider.label }); @@ -342,7 +353,7 @@ export class AuthenticationService extends Disposable implements IAuthentication } } - private async updateNewSessionRequests(provider: MainThreadAuthenticationProvider, addedSessions: readonly AuthenticationSession[]): Promise { + private async updateNewSessionRequests(provider: IAuthenticationProvider, addedSessions: readonly AuthenticationSession[]): Promise { const existingRequestsForProvider = this._signInRequestItems.get(provider.id); if (!existingRequestsForProvider) { return; @@ -696,7 +707,7 @@ export class AuthenticationService extends Disposable implements IAuthentication } } - private async tryActivateProvider(providerId: string, activateImmediate: boolean): Promise { + private async tryActivateProvider(providerId: string, activateImmediate: boolean): Promise { await this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(providerId), activateImmediate ? ActivationKind.Immediate : ActivationKind.Normal); let provider = this._authenticationProviders.get(providerId); if (provider) { @@ -705,7 +716,7 @@ export class AuthenticationService extends Disposable implements IAuthentication // When activate has completed, the extension has made the call to `registerAuthenticationProvider`. // However, activate cannot block on this, so the renderer may not have gotten the event yet. - const didRegister: Promise = new Promise((resolve, _) => { + const didRegister: Promise = new Promise((resolve, _) => { this.onDidRegisterAuthenticationProvider(e => { if (e.id === providerId) { provider = this._authenticationProviders.get(providerId); @@ -718,7 +729,7 @@ export class AuthenticationService extends Disposable implements IAuthentication }); }); - const didTimeout: Promise = new Promise((_, reject) => { + const didTimeout: Promise = new Promise((_, reject) => { setTimeout(() => { reject('Timed out waiting for authentication provider to register'); }, 5000);