From e7a31272177fba893b4facef8acb5d35c18a1d36 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 14 May 2023 08:09:17 -0700 Subject: [PATCH 1/4] Integrate xterm-addon-image --- .eslintrc.json | 1 + build/.webignore | 3 +++ package.json | 5 ++-- remote/package.json | 5 ++-- remote/web/package.json | 3 ++- remote/web/yarn.lock | 13 +++++++--- remote/yarn.lock | 21 ++++++++++------ scripts/update-xterm.js | 1 + src/bootstrap-window.js | 1 + .../terminal/browser/xterm/xtermTerminal.ts | 25 +++++++++++++++++++ yarn.lock | 21 ++++++++++------ 11 files changed, 74 insertions(+), 25 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index fe7a11558d7fa..7e6b386b804da 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -256,6 +256,7 @@ "worker_threads", "xterm", "xterm-addon-canvas", + "xterm-addon-image", "xterm-addon-search", "xterm-addon-serialize", "xterm-addon-unicode11", diff --git a/build/.webignore b/build/.webignore index afb0cee5808e1..37154964b8052 100644 --- a/build/.webignore +++ b/build/.webignore @@ -23,6 +23,9 @@ xterm/src/** xterm-addon-canvas/src/** xterm-addon-canvas/out/** +xterm-addon-image/src/** +xterm-addon-image/out/** + xterm-addon-search/src/** xterm-addon-search/out/** xterm-addon-search/fixtures/** diff --git a/package.json b/package.json index d02a81f0950ad..ca72da4719acf 100644 --- a/package.json +++ b/package.json @@ -87,13 +87,14 @@ "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "9.0.0", - "xterm": "5.2.0-beta.40", + "xterm": "5.2.0-beta.41", "xterm-addon-canvas": "0.4.0-beta.11", + "xterm-addon-image": "0.4.0", "xterm-addon-search": "0.11.0", "xterm-addon-serialize": "0.9.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.10", - "xterm-headless": "5.2.0-beta.40", + "xterm-headless": "5.2.0-beta.41", "yauzl": "^2.9.2", "yazl": "^2.4.3" }, diff --git a/remote/package.json b/remote/package.json index 346545ebf0e47..02c1acf765163 100644 --- a/remote/package.json +++ b/remote/package.json @@ -24,13 +24,14 @@ "vscode-oniguruma": "1.7.0", "vscode-regexpp": "^3.1.0", "vscode-textmate": "9.0.0", - "xterm": "5.2.0-beta.40", + "xterm": "5.2.0-beta.41", "xterm-addon-canvas": "0.4.0-beta.11", + "xterm-addon-image": "0.4.0", "xterm-addon-search": "0.11.0", "xterm-addon-serialize": "0.9.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.10", - "xterm-headless": "5.2.0-beta.40", + "xterm-headless": "5.2.0-beta.41", "yauzl": "^2.9.2", "yazl": "^2.4.3" }, diff --git a/remote/web/package.json b/remote/web/package.json index f971644a71458..5a43f81b18c72 100644 --- a/remote/web/package.json +++ b/remote/web/package.json @@ -11,8 +11,9 @@ "tas-client-umd": "0.1.8", "vscode-oniguruma": "1.7.0", "vscode-textmate": "9.0.0", - "xterm": "5.2.0-beta.40", + "xterm": "5.2.0-beta.41", "xterm-addon-canvas": "0.4.0-beta.11", + "xterm-addon-image": "0.4.0", "xterm-addon-search": "0.11.0", "xterm-addon-unicode11": "0.5.0", "xterm-addon-webgl": "0.15.0-beta.10" diff --git a/remote/web/yarn.lock b/remote/web/yarn.lock index 91bfda039e288..48f9cb8b376da 100644 --- a/remote/web/yarn.lock +++ b/remote/web/yarn.lock @@ -73,6 +73,11 @@ xterm-addon-canvas@0.4.0-beta.11: resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.11.tgz#d627050d7e2290ae804c0ec730d5bfc5861afd78" integrity sha512-yfkx0R7wB3L+fWf1doDmEfwYIeNMVq4uXlq7sCvfPQAVA2H4eOH/s+SS1mhyy0A6DDEbM4eEQ7CroRZIsnVtMA== +xterm-addon-image@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.4.0.tgz#36e98fa892db11755a5f6e9654f924e876e29bf8" + integrity sha512-3wumCJo4WTzxvecSMxJ7XtpVQeFe4gE2cdHCyUdo7zagVkS18YXJacGx6DjlAIccdJn6/LhGuD99xOSSvYx9Gw== + xterm-addon-search@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d" @@ -88,7 +93,7 @@ xterm-addon-webgl@0.15.0-beta.10: resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.10.tgz#39ebbfb1b89c6773a2d8cb8e1d2f3ef1f08b28f9" integrity sha512-JVv4t5q6QGWyLiEAcAk9H2B83hFlIalzEwWu1VVYso0MJyZAlZ0NP5Za03iSKxYi7RQIA5bOe8r7W24esQDjLg== -xterm@5.2.0-beta.40: - version "5.2.0-beta.40" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.40.tgz#c73d5576425dcd4fa6b48ce58b4224a7b5b9dbdf" - integrity sha512-7/Db3KPceM0VX4/YAKL+/ArvEHlGBwE3kt1oN9QP5TLaJ6r2ThMS7z7QwG8g2gy60GFnvjfvpcTv6Ewyste4zg== +xterm@5.2.0-beta.41: + version "5.2.0-beta.41" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.41.tgz#ff9f5ed8890a751db2263ebdd362f5443699026d" + integrity sha512-yvDMaeELF8YuqTv220/+i5MKvy9GB4Vu7tH1T3OIqPvHwgnC8SY1vOSjskxHsHsRE5qLluiQJo6/wvt3kZH8+A== diff --git a/remote/yarn.lock b/remote/yarn.lock index 71f6351d349f3..5616669478ae6 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -841,6 +841,11 @@ xterm-addon-canvas@0.4.0-beta.11: resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.11.tgz#d627050d7e2290ae804c0ec730d5bfc5861afd78" integrity sha512-yfkx0R7wB3L+fWf1doDmEfwYIeNMVq4uXlq7sCvfPQAVA2H4eOH/s+SS1mhyy0A6DDEbM4eEQ7CroRZIsnVtMA== +xterm-addon-image@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.4.0.tgz#36e98fa892db11755a5f6e9654f924e876e29bf8" + integrity sha512-3wumCJo4WTzxvecSMxJ7XtpVQeFe4gE2cdHCyUdo7zagVkS18YXJacGx6DjlAIccdJn6/LhGuD99xOSSvYx9Gw== + xterm-addon-search@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d" @@ -861,15 +866,15 @@ xterm-addon-webgl@0.15.0-beta.10: resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.10.tgz#39ebbfb1b89c6773a2d8cb8e1d2f3ef1f08b28f9" integrity sha512-JVv4t5q6QGWyLiEAcAk9H2B83hFlIalzEwWu1VVYso0MJyZAlZ0NP5Za03iSKxYi7RQIA5bOe8r7W24esQDjLg== -xterm-headless@5.2.0-beta.40: - version "5.2.0-beta.40" - resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.40.tgz#6edba318d23ed350c8ec6279e6f61f40bde9b163" - integrity sha512-6CHgR64POfa24CTILcq/HHg1im1u1HjJZSHWjlopP18KiS8Rq8dzCurZDsu38atxDK9dyjV8SRw2AB4ijcxZsQ== +xterm-headless@5.2.0-beta.41: + version "5.2.0-beta.41" + resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.41.tgz#17085c0ef255214c244bdaa73e5914fd722be28e" + integrity sha512-cAKuiYPs2GQpCWFIWHakRF+57vPDmqLzMFX3kOcMj+deHPuDnxucQTZvjxKNbMZKG9u9r+shIyfGzgC0oA+bBw== -xterm@5.2.0-beta.40: - version "5.2.0-beta.40" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.40.tgz#c73d5576425dcd4fa6b48ce58b4224a7b5b9dbdf" - integrity sha512-7/Db3KPceM0VX4/YAKL+/ArvEHlGBwE3kt1oN9QP5TLaJ6r2ThMS7z7QwG8g2gy60GFnvjfvpcTv6Ewyste4zg== +xterm@5.2.0-beta.41: + version "5.2.0-beta.41" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.41.tgz#ff9f5ed8890a751db2263ebdd362f5443699026d" + integrity sha512-yvDMaeELF8YuqTv220/+i5MKvy9GB4Vu7tH1T3OIqPvHwgnC8SY1vOSjskxHsHsRE5qLluiQJo6/wvt3kZH8+A== yallist@^4.0.0: version "4.0.0" diff --git a/scripts/update-xterm.js b/scripts/update-xterm.js index bc57493590248..e74fb45f590ae 100644 --- a/scripts/update-xterm.js +++ b/scripts/update-xterm.js @@ -9,6 +9,7 @@ const path = require('path'); const moduleNames = [ 'xterm', 'xterm-addon-canvas', + 'xterm-addon-image', 'xterm-addon-search', 'xterm-addon-unicode11', 'xterm-addon-webgl' diff --git a/src/bootstrap-window.js b/src/bootstrap-window.js index 5c0b2ace1cc22..c9f1b4a9583cf 100644 --- a/src/bootstrap-window.js +++ b/src/bootstrap-window.js @@ -116,6 +116,7 @@ 'vscode-oniguruma': `${baseNodeModulesPath}/vscode-oniguruma/release/main.js`, 'xterm': `${baseNodeModulesPath}/xterm/lib/xterm.js`, 'xterm-addon-canvas': `${baseNodeModulesPath}/xterm-addon-canvas/lib/xterm-addon-canvas.js`, + 'xterm-addon-image': `${baseNodeModulesPath}/xterm-addon-image/lib/xterm-addon-image.js`, 'xterm-addon-search': `${baseNodeModulesPath}/xterm-addon-search/lib/xterm-addon-search.js`, 'xterm-addon-unicode11': `${baseNodeModulesPath}/xterm-addon-unicode11/lib/xterm-addon-unicode11.js`, 'xterm-addon-webgl': `${baseNodeModulesPath}/xterm-addon-webgl/lib/xterm-addon-webgl.js`, diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts index 816683d94686b..3e796117e38e5 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts @@ -9,6 +9,7 @@ import type { ISearchOptions, SearchAddon as SearchAddonType } from 'xterm-addon import type { Unicode11Addon as Unicode11AddonType } from 'xterm-addon-unicode11'; import type { WebglAddon as WebglAddonType } from 'xterm-addon-webgl'; import type { SerializeAddon as SerializeAddonType } from 'xterm-addon-serialize'; +import type { ImageAddon as ImageAddonType } from 'xterm-addon-image'; import { IXtermCore } from 'vs/workbench/contrib/terminal/browser/xterm-private'; import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/terminalConfigHelper'; @@ -47,6 +48,7 @@ const enum RenderConstants { } let CanvasAddon: typeof CanvasAddonType; +let ImageAddon: typeof ImageAddonType; let SearchAddon: typeof SearchAddonType; let SerializeAddon: typeof SerializeAddonType; let Unicode11Addon: typeof Unicode11AddonType; @@ -136,6 +138,7 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II private _unicode11Addon?: Unicode11AddonType; private _webglAddon?: WebglAddonType; private _serializeAddon?: SerializeAddonType; + private _imageAddon?: ImageAddonType; private _lastFindResult: { resultIndex: number; resultCount: number } | undefined; get findResult(): { resultIndex: number; resultCount: number } | undefined { return this._lastFindResult; } @@ -251,6 +254,8 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II this._shellIntegrationAddon = this._instantiationService.createInstance(ShellIntegrationAddon, shellIntegrationNonce, disableShellIntegrationReporting, this._telemetryService); this.raw.loadAddon(this._shellIntegrationAddon); + this._getImageAddon(); + // Load the suggest addon, this should be loaded regardless of the setting as the sequences // may still come in this._suggestAddon = this._instantiationService.createInstance(SuggestAddon, this._terminalSuggestWidgetVisibleContextKey); @@ -415,6 +420,19 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II return this._searchAddon; } + private async _getImageAddon(): Promise { + if (this._imageAddon) { + return this._imageAddon; + } + console.log('1'); + const AddonCtor = await this._getImageAddonConstructor(); + this._imageAddon = new AddonCtor(); + console.log('2'); + this.raw.loadAddon(this._imageAddon); + console.log('3'); + return this._imageAddon; + } + clearSearchDecorations(): void { this._searchAddon?.clearDecorations(); } @@ -573,6 +591,13 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II return CanvasAddon; } + protected async _getImageAddonConstructor(): Promise { + if (!ImageAddon) { + ImageAddon = (await import('xterm-addon-image')).ImageAddon; + } + return ImageAddon; + } + protected async _getSearchAddonConstructor(): Promise { if (!SearchAddon) { SearchAddon = (await import('xterm-addon-search')).SearchAddon; diff --git a/yarn.lock b/yarn.lock index ba94efb6ea1d7..d6b8a50e6fdd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10513,6 +10513,11 @@ xterm-addon-canvas@0.4.0-beta.11: resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.11.tgz#d627050d7e2290ae804c0ec730d5bfc5861afd78" integrity sha512-yfkx0R7wB3L+fWf1doDmEfwYIeNMVq4uXlq7sCvfPQAVA2H4eOH/s+SS1mhyy0A6DDEbM4eEQ7CroRZIsnVtMA== +xterm-addon-image@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.4.0.tgz#36e98fa892db11755a5f6e9654f924e876e29bf8" + integrity sha512-3wumCJo4WTzxvecSMxJ7XtpVQeFe4gE2cdHCyUdo7zagVkS18YXJacGx6DjlAIccdJn6/LhGuD99xOSSvYx9Gw== + xterm-addon-search@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d" @@ -10533,15 +10538,15 @@ xterm-addon-webgl@0.15.0-beta.10: resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.10.tgz#39ebbfb1b89c6773a2d8cb8e1d2f3ef1f08b28f9" integrity sha512-JVv4t5q6QGWyLiEAcAk9H2B83hFlIalzEwWu1VVYso0MJyZAlZ0NP5Za03iSKxYi7RQIA5bOe8r7W24esQDjLg== -xterm-headless@5.2.0-beta.40: - version "5.2.0-beta.40" - resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.40.tgz#6edba318d23ed350c8ec6279e6f61f40bde9b163" - integrity sha512-6CHgR64POfa24CTILcq/HHg1im1u1HjJZSHWjlopP18KiS8Rq8dzCurZDsu38atxDK9dyjV8SRw2AB4ijcxZsQ== +xterm-headless@5.2.0-beta.41: + version "5.2.0-beta.41" + resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.41.tgz#17085c0ef255214c244bdaa73e5914fd722be28e" + integrity sha512-cAKuiYPs2GQpCWFIWHakRF+57vPDmqLzMFX3kOcMj+deHPuDnxucQTZvjxKNbMZKG9u9r+shIyfGzgC0oA+bBw== -xterm@5.2.0-beta.40: - version "5.2.0-beta.40" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.40.tgz#c73d5576425dcd4fa6b48ce58b4224a7b5b9dbdf" - integrity sha512-7/Db3KPceM0VX4/YAKL+/ArvEHlGBwE3kt1oN9QP5TLaJ6r2ThMS7z7QwG8g2gy60GFnvjfvpcTv6Ewyste4zg== +xterm@5.2.0-beta.41: + version "5.2.0-beta.41" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.41.tgz#ff9f5ed8890a751db2263ebdd362f5443699026d" + integrity sha512-yvDMaeELF8YuqTv220/+i5MKvy9GB4Vu7tH1T3OIqPvHwgnC8SY1vOSjskxHsHsRE5qLluiQJo6/wvt3kZH8+A== y18n@^3.2.1: version "3.2.2" From c65f5038404e2c91b29540a8ad786fc8abd532f4 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 14 May 2023 09:17:09 -0700 Subject: [PATCH 2/4] Add image support setting, disabled by default --- src/vs/platform/terminal/common/terminal.ts | 1 + .../terminal/browser/xterm/xtermTerminal.ts | 34 +++++++++++-------- .../contrib/terminal/common/terminal.ts | 1 + .../terminal/common/terminalConfiguration.ts | 9 ++++- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/vs/platform/terminal/common/terminal.ts b/src/vs/platform/terminal/common/terminal.ts index 198b7dda23fe7..62c33c6fdea35 100644 --- a/src/vs/platform/terminal/common/terminal.ts +++ b/src/vs/platform/terminal/common/terminal.ts @@ -117,6 +117,7 @@ export const enum TerminalSettingId { ShellIntegrationDecorationsEnabled = 'terminal.integrated.shellIntegration.decorationsEnabled', ShellIntegrationCommandHistory = 'terminal.integrated.shellIntegration.history', ShellIntegrationSuggestEnabled = 'terminal.integrated.shellIntegration.suggestEnabled', + ExperimentalImageSupport = 'terminal.integrated.experimentalImageSupport', SmoothScrolling = 'terminal.integrated.smoothScrolling' } diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts index 3e796117e38e5..ec5d7e7b24d59 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts @@ -246,6 +246,7 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II // Load addons this._updateUnicodeVersion(); + this._refreshImageAddon(); this._markNavigationAddon = this._instantiationService.createInstance(MarkNavigationAddon, _capabilities); this.raw.loadAddon(this._markNavigationAddon); this._decorationAddon = this._instantiationService.createInstance(DecorationAddon, this._capabilities); @@ -254,8 +255,6 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II this._shellIntegrationAddon = this._instantiationService.createInstance(ShellIntegrationAddon, shellIntegrationNonce, disableShellIntegrationReporting, this._telemetryService); this.raw.loadAddon(this._shellIntegrationAddon); - this._getImageAddon(); - // Load the suggest addon, this should be loaded regardless of the setting as the sequences // may still come in this._suggestAddon = this._instantiationService.createInstance(SuggestAddon, this._terminalSuggestWidgetVisibleContextKey); @@ -337,6 +336,7 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II this._disposeOfCanvasRenderer(); } } + this._refreshImageAddon(); } private _shouldLoadWebgl(): boolean { @@ -420,19 +420,6 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II return this._searchAddon; } - private async _getImageAddon(): Promise { - if (this._imageAddon) { - return this._imageAddon; - } - console.log('1'); - const AddonCtor = await this._getImageAddonConstructor(); - this._imageAddon = new AddonCtor(); - console.log('2'); - this.raw.loadAddon(this._imageAddon); - console.log('3'); - return this._imageAddon; - } - clearSearchDecorations(): void { this._searchAddon?.clearDecorations(); } @@ -591,6 +578,23 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II return CanvasAddon; } + private async _refreshImageAddon(): Promise { + if (this._configHelper.config.experimentalImageSupport) { + if (!this._imageAddon) { + const AddonCtor = await this._getImageAddonConstructor(); + this._imageAddon = new AddonCtor(); + this.raw.loadAddon(this._imageAddon); + } + } else { + try { + this._imageAddon?.dispose(); + } catch { + // ignore + } + this._imageAddon = undefined; + } + } + protected async _getImageAddonConstructor(): Promise { if (!ImageAddon) { ImageAddon = (await import('xterm-addon-image')).ImageAddon; diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 8a25ef4e37929..e910b297258d9 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -304,6 +304,7 @@ export interface ITerminalConfiguration { enabled: boolean; decorationsEnabled: boolean; }; + experimentalImageSupport: boolean; smoothScrolling: boolean; } diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 520d44acfe156..b01ce87a39475 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -585,7 +585,14 @@ const terminalConfiguration: IConfigurationNode = { markdownDescription: localize('terminal.integrated.smoothScrolling', "Controls whether the terminal will scroll using an animation."), type: 'boolean', default: false - } + }, + [TerminalSettingId.ExperimentalImageSupport]: { + restricted: true, + markdownDescription: localize('terminal.integrated.experimentalImageSupport', "Enables experimental image support in the terminal. Both sixel and iTerm's inline image protocol are supported."), + type: 'boolean', + default: false, + tags: ['experimental'] + }, } }; From 5fa8f457f3d6aa423a4a94366ec2b7d79bf543fe Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 14 May 2023 09:28:52 -0700 Subject: [PATCH 3/4] Add caveat about lack of serialization support --- .../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 b01ce87a39475..5b229f4994290 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -588,7 +588,7 @@ const terminalConfiguration: IConfigurationNode = { }, [TerminalSettingId.ExperimentalImageSupport]: { restricted: true, - markdownDescription: localize('terminal.integrated.experimentalImageSupport', "Enables experimental image support in the terminal. Both sixel and iTerm's inline image protocol are supported."), + markdownDescription: localize('terminal.integrated.experimentalImageSupport', "Enables experimental image support in the terminal. Both sixel and iTerm's inline image protocol are supported. Images will not be retained currently between window reloads/reconnects."), type: 'boolean', default: false, tags: ['experimental'] From 026895bf8670e435d0d97513225c36f1da9b8363 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Sun, 14 May 2023 09:37:30 -0700 Subject: [PATCH 4/4] Add conpty note --- .../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 5b229f4994290..b677e5799dbd9 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -588,7 +588,7 @@ const terminalConfiguration: IConfigurationNode = { }, [TerminalSettingId.ExperimentalImageSupport]: { restricted: true, - markdownDescription: localize('terminal.integrated.experimentalImageSupport', "Enables experimental image support in the terminal. Both sixel and iTerm's inline image protocol are supported. Images will not be retained currently between window reloads/reconnects."), + markdownDescription: localize('terminal.integrated.experimentalImageSupport', "Enables experimental image support in the terminal. Both sixel and iTerm's inline image protocol are supported on Linux and macOS, Windows support will light up automatically when ConPTY passes through the sequences. Images will not be retained currently between window reloads/reconnects."), type: 'boolean', default: false, tags: ['experimental']