From a9002ffa96ef08e709bd5a680f97923e3df5fc2a Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 17 Feb 2022 22:01:12 +0100 Subject: [PATCH 1/2] Remove unused events --- src/vs/editor/common/model.ts | 7 ---- src/vs/editor/common/model/textModel.ts | 6 ---- .../common/model/editableTextModel.test.ts | 2 +- src/vs/editor/test/common/model/model.test.ts | 34 +++++++++---------- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/vs/editor/common/model.ts b/src/vs/editor/common/model.ts index 1038c5bbd95..76cc538aec9 100644 --- a/src/vs/editor/common/model.ts +++ b/src/vs/editor/common/model.ts @@ -1153,13 +1153,6 @@ export interface ITextModel { * @event */ readonly onDidChangeContentOrInjectedText: Event; - /** - * @deprecated Please use `onDidChangeContent` instead. - * An event emitted when the contents of the model have changed. - * @internal - * @event - */ - readonly onDidChangeRawContent: Event; /** * An event emitted when the contents of the model have changed. * @event diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index 1d85ade5585..806e90811bc 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -245,12 +245,6 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati private readonly _onDidChangeInjectedText: Emitter = this._register(new Emitter()); private readonly _eventEmitter: DidChangeContentEmitter = this._register(new DidChangeContentEmitter()); - public onDidChangeRawContent(listener: (e: ModelRawContentChangedEvent) => void): IDisposable { - return this._eventEmitter.slowEvent((e: InternalModelContentChangeEvent) => listener(e.rawContentChangedEvent)); - } - public onDidChangeContentFast(listener: (e: IModelContentChangedEvent) => void): IDisposable { - return this._eventEmitter.fastEvent((e: InternalModelContentChangeEvent) => listener(e.contentChangedEvent)); - } public onDidChangeContent(listener: (e: IModelContentChangedEvent) => void): IDisposable { return this._eventEmitter.slowEvent((e: InternalModelContentChangeEvent) => listener(e.contentChangedEvent)); } diff --git a/src/vs/editor/test/common/model/editableTextModel.test.ts b/src/vs/editor/test/common/model/editableTextModel.test.ts index 7ddfde1434f..4c4caf577b4 100644 --- a/src/vs/editor/test/common/model/editableTextModel.test.ts +++ b/src/vs/editor/test/common/model/editableTextModel.test.ts @@ -993,7 +993,7 @@ suite('EditorModel - EditableTextModel.applyEdits', () => { }, (model) => { let isFirstTime = true; - model.onDidChangeRawContent(() => { + model.onDidChangeContent(() => { if (!isFirstTime) { return; } diff --git a/src/vs/editor/test/common/model/model.test.ts b/src/vs/editor/test/common/model/model.test.ts index 31e049dbdc9..d7425585084 100644 --- a/src/vs/editor/test/common/model/model.test.ts +++ b/src/vs/editor/test/common/model/model.test.ts @@ -9,7 +9,7 @@ import { EditOperation } from 'vs/editor/common/core/editOperation'; import { Position } from 'vs/editor/common/core/position'; import { Range } from 'vs/editor/common/core/range'; import { TextModel } from 'vs/editor/common/model/textModel'; -import { ModelRawContentChangedEvent, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted } from 'vs/editor/common/textModelEvents'; +import { ModelInjectedTextChangedEvent, ModelRawContentChangedEvent, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted } from 'vs/editor/common/textModelEvents'; import { EncodedTokenizationResult, IState, MetadataConsts, TokenizationRegistry } from 'vs/editor/common/languages'; import { LanguageConfigurationRegistry } from 'vs/editor/common/languages/languageConfigurationRegistry'; import { NullState } from 'vs/editor/common/languages/nullTokenize'; @@ -96,15 +96,15 @@ suite('Editor Model - Model', () => { // --------- insert text eventing test('model insert empty text does not trigger eventing', () => { - thisModel.onDidChangeRawContent((e) => { + thisModel.onDidChangeContentOrInjectedText((e) => { assert.ok(false, 'was not expecting event'); }); thisModel.applyEdits([EditOperation.insert(new Position(1, 1), '')]); }); test('model insert text without newline eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -122,8 +122,8 @@ suite('Editor Model - Model', () => { }); test('model insert text with one newline eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -192,15 +192,15 @@ suite('Editor Model - Model', () => { // --------- delete text eventing test('model delete empty text does not trigger eventing', () => { - thisModel.onDidChangeRawContent((e) => { + thisModel.onDidChangeContentOrInjectedText((e) => { assert.ok(false, 'was not expecting event'); }); thisModel.applyEdits([EditOperation.delete(new Range(1, 1, 1, 1))]); }); test('model delete text from one line eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -218,8 +218,8 @@ suite('Editor Model - Model', () => { }); test('model delete all text from a line eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -237,8 +237,8 @@ suite('Editor Model - Model', () => { }); test('model delete text from two lines eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -257,8 +257,8 @@ suite('Editor Model - Model', () => { }); test('model delete text from many lines eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } @@ -308,8 +308,8 @@ suite('Editor Model - Model', () => { // --------- setValue test('setValue eventing', () => { - let e: ModelRawContentChangedEvent | null = null; - thisModel.onDidChangeRawContent((_e) => { + let e: ModelRawContentChangedEvent | ModelInjectedTextChangedEvent | null = null; + thisModel.onDidChangeContentOrInjectedText((_e) => { if (e !== null) { assert.fail('Unexpected assertion error'); } From 19b1a217cd6a0b30ca0509101f05cf0569d4ffb7 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Thu, 17 Feb 2022 13:01:53 -0800 Subject: [PATCH 2/2] Fix unit tests --- src/vs/workbench/contrib/terminal/browser/terminalInstance.ts | 2 +- .../contrib/terminal/browser/terminalProcessManager.ts | 4 ++-- src/vs/workbench/contrib/terminal/common/terminal.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 11cbbf3e240..d94f2ca47a3 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -441,7 +441,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._xtermReadyPromise.then(async () => { // Wait for a period to allow a container to be ready await this._containerReadyBarrier.wait(); - if (this._configHelper.config.shellIntegration.enabled && !this.shellLaunchConfig.executable) { + if (this._configHelper.config.shellIntegration?.enabled && !this.shellLaunchConfig.executable) { const os = await this._processManager.getBackendOS(); this.shellLaunchConfig.executable = (await this._terminalProfileResolverService.getDefaultProfile({ remoteAuthority: this.remoteAuthority, os })).path; } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index cbf26f79172..603ed03ea2a 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -243,7 +243,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce os: this.os }); try { - const shellIntegration = terminalEnvironment.injectShellIntegrationArgs(this._logService, this._configurationService, env, this._configHelper.config.shellIntegration.enabled, shellLaunchConfig, this.os); + const shellIntegration = terminalEnvironment.injectShellIntegrationArgs(this._logService, this._configurationService, env, this._configHelper.config.shellIntegration?.enabled || false, shellLaunchConfig, this.os); this.shellIntegrationAttempted = shellIntegration.enableShellIntegration; if (this.shellIntegrationAttempted && shellIntegration.args) { const remoteEnv = await this._remoteAgentService.getEnvironment(); @@ -448,7 +448,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce const env = await this._resolveEnvironment(backend, variableResolver, shellLaunchConfig); - const shellIntegration = terminalEnvironment.injectShellIntegrationArgs(this._logService, this._configurationService, env, this._configHelper.config.shellIntegration.enabled, shellLaunchConfig, OS); + const shellIntegration = terminalEnvironment.injectShellIntegrationArgs(this._logService, this._configurationService, env, this._configHelper.config.shellIntegration?.enabled || false, shellLaunchConfig, OS); if (shellIntegration.enableShellIntegration) { shellLaunchConfig.args = shellIntegration.args; // Always resolve the injected arguments on local processes diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 70e546274ee..a12cccbc694 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -290,7 +290,7 @@ export interface ITerminalConfiguration { persistentSessionReviveProcess: 'onExit' | 'onExitAndWindowClose' | 'never'; ignoreProcessNames: string[]; autoReplies: { [key: string]: string }; - shellIntegration: { + shellIntegration?: { enabled: boolean; }; }