diff --git a/extensions/package.json b/extensions/package.json index 51de041b4536196fd2b4e7301f2d29218457aafd..da7f9f2b326e5d968370a51d956692cfb4ca6d42 100644 --- a/extensions/package.json +++ b/extensions/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "description": "Dependencies shared by all extensions", "dependencies": { - "typescript": "3.5.0-dev.20190515" + "typescript": "3.5.0-dev.20190517" }, "scripts": { "postinstall": "node ./postinstall" diff --git a/extensions/typescript-language-features/package.json b/extensions/typescript-language-features/package.json index f5516fd5f9892ee37bc2564d5fc5ac53a6a6a32a..a5147d60f8edacae83d639cebcafe8508afb4e35 100644 --- a/extensions/typescript-language-features/package.json +++ b/extensions/typescript-language-features/package.json @@ -17,13 +17,15 @@ ], "dependencies": { "jsonc-parser": "^2.0.1", + "rimraf": "^2.6.3", "semver": "5.5.1", "vscode-extension-telemetry": "0.1.1", "vscode-nls": "^4.0.0" }, "devDependencies": { - "@types/node": "8.0.33", + "@types/node": "^12.0.2", "@types/semver": "^5.5.0", + "@types/rimraf": "2.0.2", "vscode": "^1.1.10" }, "scripts": { @@ -750,4 +752,4 @@ } ] } -} \ No newline at end of file +} diff --git a/extensions/typescript-language-features/src/extension.ts b/extensions/typescript-language-features/src/extension.ts index 782aa98106dfb196174912832fea030507264bd5..a4ec5f1bc0ee27a1f2b352ce2d3f5fd8d21cfe64 100644 --- a/extensions/typescript-language-features/src/extension.ts +++ b/extensions/typescript-language-features/src/extension.ts @@ -10,6 +10,8 @@ import { LanguageConfigurationManager } from './features/languageConfiguration'; import TypeScriptTaskProviderManager from './features/task'; import TypeScriptServiceClientHost from './typeScriptServiceClientHost'; import { flatten } from './utils/arrays'; +import * as electron from './utils/electron'; +import * as rimraf from 'rimraf'; import { CommandManager } from './utils/commandManager'; import * as fileSchemes from './utils/fileSchemes'; import { standardLanguageDescriptions } from './utils/languageDescription'; @@ -128,4 +130,8 @@ function isSupportedDocument( return false; } return fileSchemes.isSupportedScheme(document.uri.scheme); +} + +export function deactivate() { + rimraf.sync(electron.getInstanceDir()); } \ No newline at end of file diff --git a/extensions/typescript-language-features/src/features/smartSelect.ts b/extensions/typescript-language-features/src/features/smartSelect.ts index a9a0370bee956213a3cbfc8940f53f6fa86e8247..3d05d1309a238ec4938241eec68f242b0b90202e 100644 --- a/extensions/typescript-language-features/src/features/smartSelect.ts +++ b/extensions/typescript-language-features/src/features/smartSelect.ts @@ -27,7 +27,7 @@ class SmartSelection implements vscode.SelectionRangeProvider { return undefined; } - const args: Proto.FileRequestArgs & { locations: Proto.Location[] } = { + const args: Proto.SelectionRangeRequestArgs = { file, locations: positions.map(typeConverters.Position.toLocation) }; diff --git a/extensions/typescript-language-features/src/tsServer/server.ts b/extensions/typescript-language-features/src/tsServer/server.ts index b1cf5b785e31e4afab406f8dae3ea6aae1e0c8e2..1bfb290fa0a2ee5350cbd73b8b565d43bef804c7 100644 --- a/extensions/typescript-language-features/src/tsServer/server.ts +++ b/extensions/typescript-language-features/src/tsServer/server.ts @@ -254,7 +254,7 @@ export class TypeScriptServer extends Disposable { private readonly _tracer: Tracer, ) { super(); - this._reader = this._register(new Reader(this._childProcess.stdout)); + this._reader = this._register(new Reader(this._childProcess.stdout!)); this._reader.onData(msg => this.dispatchMessage(msg)); this._childProcess.on('exit', code => this.handleExit(code)); this._childProcess.on('error', error => this.handleError(error)); @@ -274,7 +274,7 @@ export class TypeScriptServer extends Disposable { public get tsServerLogFile() { return this._tsServerLogFile; } public write(serverRequest: Proto.Request) { - this._childProcess.stdin.write(JSON.stringify(serverRequest) + '\r\n', 'utf8'); + this._childProcess.stdin!.write(JSON.stringify(serverRequest) + '\r\n', 'utf8'); } public dispose() { diff --git a/extensions/typescript-language-features/src/typescriptService.ts b/extensions/typescript-language-features/src/typescriptService.ts index 32ed3a600608a9997afd4ff93db91eee9d1484e9..1156b79d268c07eefae6d44c311acc325c3e386d 100644 --- a/extensions/typescript-language-features/src/typescriptService.ts +++ b/extensions/typescript-language-features/src/typescriptService.ts @@ -11,17 +11,6 @@ import { TypeScriptServiceConfiguration } from './utils/configuration'; import Logger from './utils/logger'; import { PluginManager } from './utils/plugins'; -declare module './protocol' { - interface SelectionRange { - textSpan: Proto.TextSpan; - parent?: SelectionRange; - } - - interface SelectionRangeResponse extends Proto.Response { - body?: ReadonlyArray; - } -} - export namespace ServerResponse { export class Cancelled { @@ -65,7 +54,7 @@ export interface TypeScriptRequestTypes { 'quickinfo': [Proto.FileLocationRequestArgs, Proto.QuickInfoResponse]; 'references': [Proto.FileLocationRequestArgs, Proto.ReferencesResponse]; 'rename': [Proto.RenameRequestArgs, Proto.RenameResponse]; - 'selectionRange': [Proto.FileRequestArgs & { locations: Proto.Location[] }, Proto.SelectionRangeResponse]; + 'selectionRange': [Proto.SelectionRangeRequestArgs, Proto.SelectionRangeResponse]; 'signatureHelp': [Proto.SignatureHelpRequestArgs, Proto.SignatureHelpResponse]; 'typeDefinition': [Proto.FileLocationRequestArgs, Proto.TypeDefinitionResponse]; } diff --git a/extensions/typescript-language-features/src/typings/ref.d.ts b/extensions/typescript-language-features/src/typings/ref.d.ts index 954bab971e334e14fa8f34ff84e325dac3bafc40..c9849d48e083fe1a719179065d190e1a803486f1 100644 --- a/extensions/typescript-language-features/src/typings/ref.d.ts +++ b/extensions/typescript-language-features/src/typings/ref.d.ts @@ -5,4 +5,3 @@ /// /// -/// diff --git a/extensions/typescript-language-features/src/utils/electron.ts b/extensions/typescript-language-features/src/utils/electron.ts index ff69c8c8cc90d68929a8ef356a364f57c2272033..3a1ece8f726be756773193bf3952c1983d54ee93 100644 --- a/extensions/typescript-language-features/src/utils/electron.ts +++ b/extensions/typescript-language-features/src/utils/electron.ts @@ -22,8 +22,21 @@ const getRootTempDir = (() => { }; })(); +export const getInstanceDir = (() => { + let dir: string | undefined; + return () => { + if (!dir) { + dir = path.join(getRootTempDir(), temp.makeRandomHexString(20)); + } + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + return dir; + }; +})(); + export function getTempFile(prefix: string): string { - return path.join(getRootTempDir(), `${prefix}-${temp.makeRandomHexString(20)}.tmp`); + return path.join(getInstanceDir(), `${prefix}-${temp.makeRandomHexString(20)}.tmp`); } function generatePatchedEnv(env: any, modulePath: string): any { diff --git a/extensions/typescript-language-features/yarn.lock b/extensions/typescript-language-features/yarn.lock index 62a9ee588d1ea934f1f5c022dd605be05747994b..968cb9074cd374471fd694753c13b6a10a6e6451 100644 --- a/extensions/typescript-language-features/yarn.lock +++ b/extensions/typescript-language-features/yarn.lock @@ -2,10 +2,37 @@ # yarn lockfile v1 -"@types/node@8.0.33": - version "8.0.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd" - integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A== +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@*": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*", "@types/node@^12.0.2": + version "12.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" + integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== + +"@types/rimraf@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e" + integrity sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" "@types/semver@^5.5.0": version "5.5.0" @@ -630,6 +657,18 @@ glob@^5.0.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glogg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" @@ -1490,6 +1529,13 @@ rimraf@2: dependencies: glob "^7.0.5" +rimraf@^2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" diff --git a/extensions/yarn.lock b/extensions/yarn.lock index 19e80f8a8fe5b989efa59c93d4d173188eb924e9..38c68f6e8f7b04033ec19022d30f45befa2a08c7 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -typescript@3.5.0-dev.20190515: - version "3.5.0-dev.20190515" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.0-dev.20190515.tgz#e34d9f4ae5352ecbb7bbc2f67db6cef3d5f7d58e" - integrity sha512-pE5yxFLdt5gT8PEX1Ra7vWU6HCdo4039be182oeWk8PTBWCWqr/XxlTjRxWfYgycNrI1vMjOux+n2y0aFJ9eUg== +typescript@3.5.0-dev.20190517: + version "3.5.0-dev.20190517" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.0-dev.20190517.tgz#5a85f1091cf33fde39b04f898c5730e30edd3e39" + integrity sha512-KoBHq6ytEApXKTDtmTu4Sp/tC5SPe4FpvwutLEANhwdMPblqZdh7APuH7I/ceMlgfHSa7B00JgF7NokUJQi0/g== diff --git a/package.json b/package.json index e18d98df0c63a511aba13306a4a420784e4436c1..aee41e81b2137d7bd5d0c329b70fe85a000fdc6d 100644 --- a/package.json +++ b/package.json @@ -127,7 +127,7 @@ "sinon": "^1.17.2", "source-map": "^0.4.4", "ts-loader": "^4.4.2", - "tslint": "^5.11.0", + "tslint": "^5.16.0", "typescript": "3.4.5", "typescript-formatter": "7.1.0", "typescript-tslint-plugin": "^0.0.7", @@ -155,4 +155,4 @@ "windows-mutex": "0.2.1", "windows-process-tree": "0.2.3" } -} \ No newline at end of file +} diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 0e496be8ae1f4392b4f4fd7fe2f56bfc03671924..d45f35087c12a40e9db04f2498a8dd788b975356 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -112,6 +112,10 @@ export class Main { private async installExtensions(extensions: string[], force: boolean): Promise { const failed: string[] = []; const installedExtensionsManifests: IExtensionManifest[] = []; + if (extensions.length) { + console.log(localize('installingExtensions', "Installing extensions...")); + } + for (const extension of extensions) { try { const manifest = await this.installExtension(extension, force); @@ -142,11 +146,11 @@ export class Main { if (valid) { return this.extensionManagementService.install(URI.file(extension)).then(id => { - console.log(localize('successVsixInstall', "Extension '{0}' was successfully installed!", getBaseLabel(extension))); + console.log(localize('successVsixInstall', "Extension '{0}' was successfully installed.", getBaseLabel(extension))); return manifest; }, error => { if (isPromiseCanceledError(error)) { - console.log(localize('cancelVsixInstall', "Cancelled installing Extension '{0}'.", getBaseLabel(extension))); + console.log(localize('cancelVsixInstall', "Cancelled installing extension '{0}'.", getBaseLabel(extension))); return null; } else { return Promise.reject(error); @@ -191,9 +195,7 @@ export class Main { console.log(localize('forceUpdate', "Extension '{0}' v{1} is already installed, but a newer version {2} is available in the marketplace. Use '--force' option to update to newer version.", id, installedExtension.manifest.version, extension.version)); return Promise.resolve(null); } - console.log(localize('updateMessage', "Updating the Extension '{0}' to the version {1}", id, extension.version)); - } else { - console.log(localize('foundExtension', "Found '{0}' in the marketplace.", id)); + console.log(localize('updateMessage', "Updating the extension '{0}' to the version {1}", id, extension.version)); } await this.installFromGallery(id, extension); return manifest; @@ -210,7 +212,7 @@ export class Main { const newer = installedExtensions.filter(local => areSameExtensions(extensionIdentifier, local.identifier) && semver.gt(local.manifest.version, manifest.version))[0]; if (newer && !force) { - console.log(localize('forceDowngrade', "A newer version of this extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.", newer.identifier.id, newer.manifest.version, manifest.version)); + console.log(localize('forceDowngrade', "A newer version of extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.", newer.identifier.id, newer.manifest.version, manifest.version)); return false; } @@ -218,14 +220,14 @@ export class Main { } private async installFromGallery(id: string, extension: IGalleryExtension): Promise { - console.log(localize('installing', "Installing...")); + console.log(localize('installing', "Installing extension '{0}' v{1}...", id, extension.version)); try { await this.extensionManagementService.installFromGallery(extension); - console.log(localize('successInstall', "Extension '{0}' v{1} was successfully installed!", id, extension.version)); + console.log(localize('successInstall', "Extension '{0}' v{1} was successfully installed.", id, extension.version)); } catch (error) { if (isPromiseCanceledError(error)) { - console.log(localize('cancelVsixInstall', "Cancelled installing Extension '{0}'.", id)); + console.log(localize('cancelVsixInstall', "Cancelled installing extension '{0}'.", id)); } else { throw error; } diff --git a/src/vs/editor/contrib/codeAction/codeAction.ts b/src/vs/editor/contrib/codeAction/codeAction.ts index 57fab08780721fc356fa629ff9643aad08cbdd85..854af117f7d47f30542585d0d498c8879e4e7701 100644 --- a/src/vs/editor/contrib/codeAction/codeAction.ts +++ b/src/vs/editor/contrib/codeAction/codeAction.ts @@ -34,8 +34,8 @@ export class CodeActionSet { public readonly actions: readonly CodeAction[]; - public constructor(actions: CodeAction[]) { - this.actions = mergeSort(actions, CodeActionSet.codeActionsComparator); + public constructor(actions: readonly CodeAction[]) { + this.actions = mergeSort([...actions], CodeActionSet.codeActionsComparator); } public get hasAutoFix() { diff --git a/src/vs/editor/contrib/codeAction/codeActionCommands.ts b/src/vs/editor/contrib/codeAction/codeActionCommands.ts index 28e7a707b030862ca5cf201414834f30315b3872..47180269ef64d0a76aeec4fc9a6f223c7c665e87 100644 --- a/src/vs/editor/contrib/codeAction/codeActionCommands.ts +++ b/src/vs/editor/contrib/codeAction/codeActionCommands.ts @@ -176,6 +176,7 @@ function showCodeActionsForEditorSelection( return; } + MessageController.get(editor).closeMessage(); const pos = editor.getPosition(); controller.triggerFromEditorSelection(filter, autoApply).then(codeActions => { if (!codeActions || !codeActions.actions.length) { diff --git a/src/vs/editor/contrib/message/messageController.ts b/src/vs/editor/contrib/message/messageController.ts index e522a12f8dca842fe9fc191c62127dff9f909b3d..d6e6b5c4c33e464b0d64103aa218bbc79a602ca4 100644 --- a/src/vs/editor/contrib/message/messageController.ts +++ b/src/vs/editor/contrib/message/messageController.ts @@ -35,7 +35,7 @@ export class MessageController extends Disposable implements editorCommon.IEdito private readonly _editor: ICodeEditor; private readonly _visible: IContextKey; - private _messageWidget: MessageWidget; + private _messageWidget?: MessageWidget; private _messageListeners: IDisposable[] = []; constructor( @@ -96,7 +96,9 @@ export class MessageController extends Disposable implements editorCommon.IEdito closeMessage(): void { this._visible.reset(); this._messageListeners = dispose(this._messageListeners); - this._messageListeners.push(MessageWidget.fadeOut(this._messageWidget)); + if (this._messageWidget) { + this._messageListeners.push(MessageWidget.fadeOut(this._messageWidget)); + } } private _onDidAttemptReadOnlyEdit(): void { diff --git a/src/vs/platform/remote/common/remoteAuthorityResolver.ts b/src/vs/platform/remote/common/remoteAuthorityResolver.ts index 62031dc3a66febb7f498d473a61c7568001f1cd0..fac355a491754c98e72b03930f82dc3e8e9a88b2 100644 --- a/src/vs/platform/remote/common/remoteAuthorityResolver.ts +++ b/src/vs/platform/remote/common/remoteAuthorityResolver.ts @@ -27,7 +27,8 @@ export class RemoteAuthorityResolverError extends Error { return true; } } - return false; + + return this.isTemporarilyNotAvailable(err); } public static isTemporarilyNotAvailable(err: any): boolean { diff --git a/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts b/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts index f69fe2bb7f48e8f1ffdda678b133befc625fd995..0a97af697801b1cf91368ad2d2efd49ff048695d 100644 --- a/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts +++ b/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts @@ -40,8 +40,10 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS } clearResolvedAuthority(authority: string): void { - this._resolveAuthorityRequests[authority].reject(errors.canceled()); - delete this._resolveAuthorityRequests[authority]; + if (this._resolveAuthorityRequests[authority]) { + this._resolveAuthorityRequests[authority].reject(errors.canceled()); + delete this._resolveAuthorityRequests[authority]; + } } setResolvedAuthority(resolvedAuthority: ResolvedAuthority) { diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 51846936ee631928ea24582349191cfc3bc674f4..f92a6f746cc9658bff9aa8d88a12a930a3b159a8 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -16,6 +16,24 @@ declare module 'vscode' { + //#region Joh - ExecutionContext + + export enum ExtensionExecutionContext { + Local = 1, + Remote = 2 + } + + export interface ExtensionContext { + /** + * Describes the context in which this extension is executed, e.g. + * a Node.js-context on the same machine or on a remote machine + */ + executionContext: ExtensionExecutionContext; + } + + //#endregion + + //#region Joh - call hierarchy export enum CallHierarchyDirection { diff --git a/src/vs/workbench/api/common/extHostExtensionActivator.ts b/src/vs/workbench/api/common/extHostExtensionActivator.ts index 3f1521819610023a5bb17ba5ff5ef75301dbe129..86d492614568333536754aa7947fef7f2a29d0b3 100644 --- a/src/vs/workbench/api/common/extHostExtensionActivator.ts +++ b/src/vs/workbench/api/common/extHostExtensionActivator.ts @@ -25,6 +25,7 @@ export interface IExtensionContext { globalStoragePath: string; asAbsolutePath(relativePath: string): string; readonly logPath: string; + executionContext: number; } /** diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index d105723a8850cfe60c6c72f53dd755ff0fc8e114..143da3168a6829ebe55ed36a68f60c2859036f02 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -2306,3 +2306,8 @@ export class QuickInputButtons { private constructor() { } } + +export enum ExtensionExecutionContext { + Local = 1, + Remote = 2 +} diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 2ad4fa84ca9adcac7376f09806162c34898430a3..a2cfe7b4bde645c28cd4a666a7ea2618a673b053 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -790,6 +790,7 @@ export function createApiFactory( DocumentSymbol: extHostTypes.DocumentSymbol, EndOfLine: extHostTypes.EndOfLine, EventEmitter: Emitter, + ExtensionExecutionContext: extHostTypes.ExtensionExecutionContext, CustomExecution: extHostTypes.CustomExecution, FileChangeType: extHostTypes.FileChangeType, FileSystemError: extHostTypes.FileSystemError, diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 3f8a56e8267559e000bd62a5eded8c553d875a4a..316bc670997e70ccbe6dbe3334735d5efb5dc4d0 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -33,7 +33,7 @@ import { VSBuffer } from 'vs/base/common/buffer'; import { ISchemeTransformer } from 'vs/workbench/api/common/extHostLanguageFeatures'; import { ExtensionMemento } from 'vs/workbench/api/common/extHostMemento'; import { ExtensionStoragePaths } from 'vs/workbench/api/node/extHostStoragePaths'; -import { RemoteAuthorityResolverError } from 'vs/workbench/api/common/extHostTypes'; +import { RemoteAuthorityResolverError, ExtensionExecutionContext } from 'vs/workbench/api/common/extHostTypes'; interface ITestRunner { run(testsRoot: string, clb: (error: Error, failures?: number) => void): void; @@ -362,7 +362,8 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { storagePath: this._storagePath.workspaceValue(extensionDescription), globalStoragePath: this._storagePath.globalValue(extensionDescription), asAbsolutePath: (relativePath: string) => { return path.join(extensionDescription.extensionLocation.fsPath, relativePath); }, - logPath: that._extHostLogService.getLogDirectory(extensionDescription.identifier) + logPath: that._extHostLogService.getLogDirectory(extensionDescription.identifier), + executionContext: this._initData.remoteAuthority ? ExtensionExecutionContext.Remote : ExtensionExecutionContext.Local }); }); } @@ -610,7 +611,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { const resolver = this._resolvers[authorityPrefix]; if (!resolver) { - throw new Error(`No resolver available for ${authorityPrefix}`); + throw new Error(`No remote extension installed to resolve ${authorityPrefix}.`); } try { diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts index 51ec38a3f7bd1209001b552a100a73ed691d8751..999c8064c6b44fcf1bd8e566b24b3c66bb8a5583 100644 --- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts +++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts @@ -513,12 +513,8 @@ class InlineImageView { firstZoom(); } - let delta = e.deltaY < 0 ? 1 : -1; + let delta = e.deltaY > 0 ? 1 : -1; - // Pinching should increase the scale - if (e.ctrlKey && !isScrollWheelKeyPressed) { - delta *= -1; - } updateScale(scale as number * (1 - delta * InlineImageView.SCALE_PINCH_FACTOR)); })); diff --git a/src/vs/workbench/contrib/search/browser/searchView.ts b/src/vs/workbench/contrib/search/browser/searchView.ts index 3cdbb2c79d6dea031ca561e222abaf652ba7de8d..6b13724e61b77daf2bd41791a22fd42743584a8b 100644 --- a/src/vs/workbench/contrib/search/browser/searchView.ts +++ b/src/vs/workbench/contrib/search/browser/searchView.ts @@ -683,10 +683,6 @@ export class SearchView extends ViewletPanel { } private onContextMenu(e: ITreeContextMenuEvent): void { - if (!e.element) { - return; - } - if (!this.contextMenu) { this.contextMenu = this._register(this.menuService.createMenu(MenuId.SearchContext, this.contextKeyService)); } @@ -1327,8 +1323,6 @@ export class SearchView extends ViewletPanel { // Indicate as status to ARIA aria.status(message); - dom.hide(this.resultsElement); - const messageEl = this.clearMessage(); const p = dom.append(messageEl, $('p', undefined, message)); @@ -1363,6 +1357,7 @@ export class SearchView extends ViewletPanel { if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) { this.showSearchWithoutFolderMessage(); } + this.reLayout(); } else { this.viewModel.searchResult.toggleHighlights(this.isVisible()); // show highlights diff --git a/yarn.lock b/yarn.lock index 55d45368f2e86cfde6e2886de57011dfd179c74b..f43c0cca03cea00dcb560f17a0667e8b8579fdb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -828,7 +828,7 @@ azure-storage@^2.10.2: xml2js "0.2.8" xmlbuilder "^9.0.7" -babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: +babel-code-frame@^6.16.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -5062,7 +5062,7 @@ js-yaml@3.6.1: argparse "^1.0.7" esprima "^2.6.0" -js-yaml@3.x, js-yaml@^3.5.1, js-yaml@^3.7.0: +js-yaml@3.x, js-yaml@^3.5.1: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" integrity sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA== @@ -5078,6 +5078,14 @@ js-yaml@^3.12.0: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.13.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -8954,25 +8962,26 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== -tslint@^5.11.0: - version "5.11.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" - integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0= +tslint@^5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67" + integrity sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA== dependencies: - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" builtin-modules "^1.1.1" chalk "^2.3.0" commander "^2.12.1" diff "^3.2.0" glob "^7.1.1" - js-yaml "^3.7.0" + js-yaml "^3.13.0" minimatch "^3.0.4" + mkdirp "^0.5.1" resolve "^1.3.2" semver "^5.3.0" tslib "^1.8.0" - tsutils "^2.27.2" + tsutils "^2.29.0" -tsutils@^2.27.2: +tsutils@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==