Skip to content

Commit e7a3127

Browse files
committed
Integrate xterm-addon-image
1 parent 65a3d20 commit e7a3127

File tree

11 files changed

+74
-25
lines changed

11 files changed

+74
-25
lines changed

.eslintrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@
256256
"worker_threads",
257257
"xterm",
258258
"xterm-addon-canvas",
259+
"xterm-addon-image",
259260
"xterm-addon-search",
260261
"xterm-addon-serialize",
261262
"xterm-addon-unicode11",

build/.webignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ xterm/src/**
2323
xterm-addon-canvas/src/**
2424
xterm-addon-canvas/out/**
2525

26+
xterm-addon-image/src/**
27+
xterm-addon-image/out/**
28+
2629
xterm-addon-search/src/**
2730
xterm-addon-search/out/**
2831
xterm-addon-search/fixtures/**

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,14 @@
8787
"vscode-oniguruma": "1.7.0",
8888
"vscode-regexpp": "^3.1.0",
8989
"vscode-textmate": "9.0.0",
90-
"xterm": "5.2.0-beta.40",
90+
"xterm": "5.2.0-beta.41",
9191
"xterm-addon-canvas": "0.4.0-beta.11",
92+
"xterm-addon-image": "0.4.0",
9293
"xterm-addon-search": "0.11.0",
9394
"xterm-addon-serialize": "0.9.0",
9495
"xterm-addon-unicode11": "0.5.0",
9596
"xterm-addon-webgl": "0.15.0-beta.10",
96-
"xterm-headless": "5.2.0-beta.40",
97+
"xterm-headless": "5.2.0-beta.41",
9798
"yauzl": "^2.9.2",
9899
"yazl": "^2.4.3"
99100
},

remote/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,14 @@
2424
"vscode-oniguruma": "1.7.0",
2525
"vscode-regexpp": "^3.1.0",
2626
"vscode-textmate": "9.0.0",
27-
"xterm": "5.2.0-beta.40",
27+
"xterm": "5.2.0-beta.41",
2828
"xterm-addon-canvas": "0.4.0-beta.11",
29+
"xterm-addon-image": "0.4.0",
2930
"xterm-addon-search": "0.11.0",
3031
"xterm-addon-serialize": "0.9.0",
3132
"xterm-addon-unicode11": "0.5.0",
3233
"xterm-addon-webgl": "0.15.0-beta.10",
33-
"xterm-headless": "5.2.0-beta.40",
34+
"xterm-headless": "5.2.0-beta.41",
3435
"yauzl": "^2.9.2",
3536
"yazl": "^2.4.3"
3637
},

remote/web/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
"tas-client-umd": "0.1.8",
1212
"vscode-oniguruma": "1.7.0",
1313
"vscode-textmate": "9.0.0",
14-
"xterm": "5.2.0-beta.40",
14+
"xterm": "5.2.0-beta.41",
1515
"xterm-addon-canvas": "0.4.0-beta.11",
16+
"xterm-addon-image": "0.4.0",
1617
"xterm-addon-search": "0.11.0",
1718
"xterm-addon-unicode11": "0.5.0",
1819
"xterm-addon-webgl": "0.15.0-beta.10"

remote/web/yarn.lock

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ [email protected]:
7373
resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.11.tgz#d627050d7e2290ae804c0ec730d5bfc5861afd78"
7474
integrity sha512-yfkx0R7wB3L+fWf1doDmEfwYIeNMVq4uXlq7sCvfPQAVA2H4eOH/s+SS1mhyy0A6DDEbM4eEQ7CroRZIsnVtMA==
7575

76+
77+
version "0.4.0"
78+
resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.4.0.tgz#36e98fa892db11755a5f6e9654f924e876e29bf8"
79+
integrity sha512-3wumCJo4WTzxvecSMxJ7XtpVQeFe4gE2cdHCyUdo7zagVkS18YXJacGx6DjlAIccdJn6/LhGuD99xOSSvYx9Gw==
80+
7681
7782
version "0.11.0"
7883
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d"
@@ -88,7 +93,7 @@ [email protected]:
8893
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.10.tgz#39ebbfb1b89c6773a2d8cb8e1d2f3ef1f08b28f9"
8994
integrity sha512-JVv4t5q6QGWyLiEAcAk9H2B83hFlIalzEwWu1VVYso0MJyZAlZ0NP5Za03iSKxYi7RQIA5bOe8r7W24esQDjLg==
9095

91-
92-
version "5.2.0-beta.40"
93-
resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.40.tgz#c73d5576425dcd4fa6b48ce58b4224a7b5b9dbdf"
94-
integrity sha512-7/Db3KPceM0VX4/YAKL+/ArvEHlGBwE3kt1oN9QP5TLaJ6r2ThMS7z7QwG8g2gy60GFnvjfvpcTv6Ewyste4zg==
96+
97+
version "5.2.0-beta.41"
98+
resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.41.tgz#ff9f5ed8890a751db2263ebdd362f5443699026d"
99+
integrity sha512-yvDMaeELF8YuqTv220/+i5MKvy9GB4Vu7tH1T3OIqPvHwgnC8SY1vOSjskxHsHsRE5qLluiQJo6/wvt3kZH8+A==

remote/yarn.lock

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,11 @@ [email protected]:
841841
resolved "https://registry.yarnpkg.com/xterm-addon-canvas/-/xterm-addon-canvas-0.4.0-beta.11.tgz#d627050d7e2290ae804c0ec730d5bfc5861afd78"
842842
integrity sha512-yfkx0R7wB3L+fWf1doDmEfwYIeNMVq4uXlq7sCvfPQAVA2H4eOH/s+SS1mhyy0A6DDEbM4eEQ7CroRZIsnVtMA==
843843

844+
845+
version "0.4.0"
846+
resolved "https://registry.yarnpkg.com/xterm-addon-image/-/xterm-addon-image-0.4.0.tgz#36e98fa892db11755a5f6e9654f924e876e29bf8"
847+
integrity sha512-3wumCJo4WTzxvecSMxJ7XtpVQeFe4gE2cdHCyUdo7zagVkS18YXJacGx6DjlAIccdJn6/LhGuD99xOSSvYx9Gw==
848+
844849
845850
version "0.11.0"
846851
resolved "https://registry.yarnpkg.com/xterm-addon-search/-/xterm-addon-search-0.11.0.tgz#2a00ff7f9848f6140e7c4d1782486b0b18b06e0d"
@@ -861,15 +866,15 @@ [email protected]:
861866
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.15.0-beta.10.tgz#39ebbfb1b89c6773a2d8cb8e1d2f3ef1f08b28f9"
862867
integrity sha512-JVv4t5q6QGWyLiEAcAk9H2B83hFlIalzEwWu1VVYso0MJyZAlZ0NP5Za03iSKxYi7RQIA5bOe8r7W24esQDjLg==
863868

864-
865-
version "5.2.0-beta.40"
866-
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.40.tgz#6edba318d23ed350c8ec6279e6f61f40bde9b163"
867-
integrity sha512-6CHgR64POfa24CTILcq/HHg1im1u1HjJZSHWjlopP18KiS8Rq8dzCurZDsu38atxDK9dyjV8SRw2AB4ijcxZsQ==
869+
870+
version "5.2.0-beta.41"
871+
resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-5.2.0-beta.41.tgz#17085c0ef255214c244bdaa73e5914fd722be28e"
872+
integrity sha512-cAKuiYPs2GQpCWFIWHakRF+57vPDmqLzMFX3kOcMj+deHPuDnxucQTZvjxKNbMZKG9u9r+shIyfGzgC0oA+bBw==
868873

869-
870-
version "5.2.0-beta.40"
871-
resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.40.tgz#c73d5576425dcd4fa6b48ce58b4224a7b5b9dbdf"
872-
integrity sha512-7/Db3KPceM0VX4/YAKL+/ArvEHlGBwE3kt1oN9QP5TLaJ6r2ThMS7z7QwG8g2gy60GFnvjfvpcTv6Ewyste4zg==
874+
875+
version "5.2.0-beta.41"
876+
resolved "https://registry.yarnpkg.com/xterm/-/xterm-5.2.0-beta.41.tgz#ff9f5ed8890a751db2263ebdd362f5443699026d"
877+
integrity sha512-yvDMaeELF8YuqTv220/+i5MKvy9GB4Vu7tH1T3OIqPvHwgnC8SY1vOSjskxHsHsRE5qLluiQJo6/wvt3kZH8+A==
873878

874879
yallist@^4.0.0:
875880
version "4.0.0"

scripts/update-xterm.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const path = require('path');
99
const moduleNames = [
1010
'xterm',
1111
'xterm-addon-canvas',
12+
'xterm-addon-image',
1213
'xterm-addon-search',
1314
'xterm-addon-unicode11',
1415
'xterm-addon-webgl'

src/bootstrap-window.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
'vscode-oniguruma': `${baseNodeModulesPath}/vscode-oniguruma/release/main.js`,
117117
'xterm': `${baseNodeModulesPath}/xterm/lib/xterm.js`,
118118
'xterm-addon-canvas': `${baseNodeModulesPath}/xterm-addon-canvas/lib/xterm-addon-canvas.js`,
119+
'xterm-addon-image': `${baseNodeModulesPath}/xterm-addon-image/lib/xterm-addon-image.js`,
119120
'xterm-addon-search': `${baseNodeModulesPath}/xterm-addon-search/lib/xterm-addon-search.js`,
120121
'xterm-addon-unicode11': `${baseNodeModulesPath}/xterm-addon-unicode11/lib/xterm-addon-unicode11.js`,
121122
'xterm-addon-webgl': `${baseNodeModulesPath}/xterm-addon-webgl/lib/xterm-addon-webgl.js`,

src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type { ISearchOptions, SearchAddon as SearchAddonType } from 'xterm-addon
99
import type { Unicode11Addon as Unicode11AddonType } from 'xterm-addon-unicode11';
1010
import type { WebglAddon as WebglAddonType } from 'xterm-addon-webgl';
1111
import type { SerializeAddon as SerializeAddonType } from 'xterm-addon-serialize';
12+
import type { ImageAddon as ImageAddonType } from 'xterm-addon-image';
1213
import { IXtermCore } from 'vs/workbench/contrib/terminal/browser/xterm-private';
1314
import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration';
1415
import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/terminalConfigHelper';
@@ -47,6 +48,7 @@ const enum RenderConstants {
4748
}
4849

4950
let CanvasAddon: typeof CanvasAddonType;
51+
let ImageAddon: typeof ImageAddonType;
5052
let SearchAddon: typeof SearchAddonType;
5153
let SerializeAddon: typeof SerializeAddonType;
5254
let Unicode11Addon: typeof Unicode11AddonType;
@@ -136,6 +138,7 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II
136138
private _unicode11Addon?: Unicode11AddonType;
137139
private _webglAddon?: WebglAddonType;
138140
private _serializeAddon?: SerializeAddonType;
141+
private _imageAddon?: ImageAddonType;
139142

140143
private _lastFindResult: { resultIndex: number; resultCount: number } | undefined;
141144
get findResult(): { resultIndex: number; resultCount: number } | undefined { return this._lastFindResult; }
@@ -251,6 +254,8 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II
251254
this._shellIntegrationAddon = this._instantiationService.createInstance(ShellIntegrationAddon, shellIntegrationNonce, disableShellIntegrationReporting, this._telemetryService);
252255
this.raw.loadAddon(this._shellIntegrationAddon);
253256

257+
this._getImageAddon();
258+
254259
// Load the suggest addon, this should be loaded regardless of the setting as the sequences
255260
// may still come in
256261
this._suggestAddon = this._instantiationService.createInstance(SuggestAddon, this._terminalSuggestWidgetVisibleContextKey);
@@ -415,6 +420,19 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II
415420
return this._searchAddon;
416421
}
417422

423+
private async _getImageAddon(): Promise<ImageAddonType> {
424+
if (this._imageAddon) {
425+
return this._imageAddon;
426+
}
427+
console.log('1');
428+
const AddonCtor = await this._getImageAddonConstructor();
429+
this._imageAddon = new AddonCtor();
430+
console.log('2');
431+
this.raw.loadAddon(this._imageAddon);
432+
console.log('3');
433+
return this._imageAddon;
434+
}
435+
418436
clearSearchDecorations(): void {
419437
this._searchAddon?.clearDecorations();
420438
}
@@ -573,6 +591,13 @@ export class XtermTerminal extends DisposableStore implements IXtermTerminal, II
573591
return CanvasAddon;
574592
}
575593

594+
protected async _getImageAddonConstructor(): Promise<typeof ImageAddonType> {
595+
if (!ImageAddon) {
596+
ImageAddon = (await import('xterm-addon-image')).ImageAddon;
597+
}
598+
return ImageAddon;
599+
}
600+
576601
protected async _getSearchAddonConstructor(): Promise<typeof SearchAddonType> {
577602
if (!SearchAddon) {
578603
SearchAddon = (await import('xterm-addon-search')).SearchAddon;

0 commit comments

Comments
 (0)