diff --git a/src/vs/workbench/contrib/terminal/terminalContribExports.ts b/src/vs/workbench/contrib/terminal/terminalContribExports.ts index 37497a20a7aba..04fb333353457 100644 --- a/src/vs/workbench/contrib/terminal/terminalContribExports.ts +++ b/src/vs/workbench/contrib/terminal/terminalContribExports.ts @@ -15,6 +15,7 @@ import { TerminalDeveloperCommandId } from '../terminalContrib/developer/common/ import { defaultTerminalFindCommandToSkipShell } from '../terminalContrib/find/common/terminal.find.js'; import { defaultTerminalHistoryCommandsToSkipShell, terminalHistoryConfiguration } from '../terminalContrib/history/common/terminal.history.js'; import { terminalOscNotificationsConfiguration } from '../terminalContrib/notification/common/terminalNotificationConfiguration.js'; +import { terminalResizeDimensionsOverlayConfiguration } from '../terminalContrib/resizeDimensionsOverlay/common/terminal.resizeDimensionsOverlay.js'; import { TerminalStickyScrollSettingId, terminalStickyScrollConfiguration } from '../terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js'; import { defaultTerminalSuggestCommandsToSkipShell } from '../terminalContrib/suggest/common/terminal.suggest.js'; import { TerminalSuggestSettingId, terminalSuggestConfiguration } from '../terminalContrib/suggest/common/terminalSuggestConfiguration.js'; @@ -77,6 +78,7 @@ export const terminalContribConfiguration: IConfigurationNode['properties'] = { ...terminalCommandGuideConfiguration, ...terminalHistoryConfiguration, ...terminalOscNotificationsConfiguration, + ...terminalResizeDimensionsOverlayConfiguration, ...terminalStickyScrollConfiguration, ...terminalSuggestConfiguration, ...terminalTypeAheadConfiguration, diff --git a/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/browser/terminal.resizeDimensionsOverlay.contribution.ts b/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/browser/terminal.resizeDimensionsOverlay.contribution.ts index 665d52e06d5ea..fc3aeec805848 100644 --- a/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/browser/terminal.resizeDimensionsOverlay.contribution.ts +++ b/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/browser/terminal.resizeDimensionsOverlay.contribution.ts @@ -8,7 +8,9 @@ import { Disposable, MutableDisposable, type IDisposable } from '../../../../../ import type { ITerminalContribution, IXtermTerminal } from '../../../terminal/browser/terminal.js'; import { registerTerminalContribution, type ITerminalContributionContext } from '../../../terminal/browser/terminalExtensions.js'; import { timeout } from '../../../../../base/common/async.js'; +import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js'; import { TerminalResizeDimensionsOverlay } from './terminalResizeDimensionsOverlay.js'; +import { TerminalResizeDimensionsOverlaySettingId } from '../common/terminal.resizeDimensionsOverlay.js'; class TerminalResizeDimensionsOverlayContribution extends Disposable implements ITerminalContribution { static readonly ID = 'terminal.resizeDimensionsOverlay'; @@ -17,11 +19,15 @@ class TerminalResizeDimensionsOverlayContribution extends Disposable implements constructor( private readonly _ctx: ITerminalContributionContext, + @IConfigurationService private readonly _configurationService: IConfigurationService, ) { super(); } xtermOpen(xterm: IXtermTerminal & { raw: RawXtermTerminal }): void { + if (!this._configurationService.getValue(TerminalResizeDimensionsOverlaySettingId.Enabled)) { + return; + } // Initialize resize dimensions overlay this._ctx.processManager.ptyProcessReady.then(() => { // Wait a second to avoid resize events during startup like when opening a terminal or diff --git a/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminal.resizeDimensionsOverlay.ts b/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminal.resizeDimensionsOverlay.ts new file mode 100644 index 0000000000000..d1225093aa9e1 --- /dev/null +++ b/src/vs/workbench/contrib/terminalContrib/resizeDimensionsOverlay/common/terminal.resizeDimensionsOverlay.ts @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import type { IStringDictionary } from '../../../../../base/common/collections.js'; +import { localize } from '../../../../../nls.js'; +import type { IConfigurationPropertySchema } from '../../../../../platform/configuration/common/configurationRegistry.js'; + +export const enum TerminalResizeDimensionsOverlaySettingId { + Enabled = 'terminal.integrated.showResizeDimensionsOverlay', +} + +export const terminalResizeDimensionsOverlayConfiguration: IStringDictionary = { + [TerminalResizeDimensionsOverlaySettingId.Enabled]: { + markdownDescription: localize('terminal.integrated.showResizeDimensionsOverlay', "Controls whether to show an overlay with the terminal's columns and rows when it is resized."), + type: 'boolean', + default: true + }, +};