feat(electrobun): upgrade to xterm 6.0.0, disable incompatible Canvas/Image addons (DOM renderer)
This commit is contained in:
parent
adee8e03c5
commit
b506dfc39a
3 changed files with 22 additions and 32 deletions
26
ui-electrobun/package-lock.json
generated
26
ui-electrobun/package-lock.json
generated
|
|
@ -25,9 +25,9 @@
|
|||
"@formatjs/intl": "^4.1.4",
|
||||
"@formatjs/intl-pluralrules": "^6.3.1",
|
||||
"@xterm/addon-canvas": "^0.7.0",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/addon-fit": "^0.11.0",
|
||||
"@xterm/addon-image": "^0.8.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"@xterm/xterm": "^6.0.0",
|
||||
"dompurify": "^3.3.3",
|
||||
"electrobun": "latest",
|
||||
"lucide-svelte": "^0.577.0",
|
||||
|
|
@ -1604,13 +1604,10 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@xterm/addon-fit": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz",
|
||||
"integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@xterm/xterm": "^5.0.0"
|
||||
}
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.11.0.tgz",
|
||||
"integrity": "sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@xterm/addon-image": {
|
||||
"version": "0.8.0",
|
||||
|
|
@ -1622,10 +1619,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@xterm/xterm": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
|
||||
"integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==",
|
||||
"license": "MIT"
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-6.0.0.tgz",
|
||||
"integrity": "sha512-TQwDdQGtwwDt+2cgKDLn0IRaSxYu1tSUjgKarSDkUM0ZNiSRXFpjxEsvc/Zgc5kq5omJ+V0a8/kIM2WD3sMOYg==",
|
||||
"license": "MIT",
|
||||
"workspaces": [
|
||||
"addons/*"
|
||||
]
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.15.0",
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@
|
|||
"@formatjs/intl": "^4.1.4",
|
||||
"@formatjs/intl-pluralrules": "^6.3.1",
|
||||
"@xterm/addon-canvas": "^0.7.0",
|
||||
"@xterm/addon-fit": "^0.10.0",
|
||||
"@xterm/addon-fit": "^0.11.0",
|
||||
"@xterm/addon-image": "^0.8.0",
|
||||
"@xterm/xterm": "^5.5.0",
|
||||
"@xterm/xterm": "^6.0.0",
|
||||
"dompurify": "^3.3.3",
|
||||
"electrobun": "latest",
|
||||
"lucide-svelte": "^0.577.0",
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
<script lang="ts">
|
||||
import { onMount, onDestroy } from 'svelte';
|
||||
import { Terminal } from '@xterm/xterm';
|
||||
import { CanvasAddon } from '@xterm/addon-canvas';
|
||||
import { FitAddon } from '@xterm/addon-fit';
|
||||
import { ImageAddon } from '@xterm/addon-image';
|
||||
// CanvasAddon and ImageAddon require xterm ^5.0.0 — disabled on xterm 6.x
|
||||
// xterm 6's default renderer uses DOM (no Canvas/WebGL needed)
|
||||
// TODO: re-enable when @xterm/addon-canvas releases a 6.x-compatible version
|
||||
// import { CanvasAddon } from '@xterm/addon-canvas';
|
||||
// import { ImageAddon } from '@xterm/addon-image';
|
||||
import { appRpc } from './rpc.ts';
|
||||
import { fontStore } from './font-store.svelte.ts';
|
||||
import { themeStore } from './theme-store.svelte.ts';
|
||||
|
|
@ -55,21 +58,8 @@
|
|||
|
||||
const openAndLoadAddons = () => {
|
||||
term.open(termEl);
|
||||
// Now safe to load addons that depend on _linkifier2
|
||||
try { term.loadAddon(new CanvasAddon()); } catch (e) {
|
||||
console.warn('[Terminal] CanvasAddon failed:', (e as Error).message);
|
||||
}
|
||||
try {
|
||||
term.loadAddon(new ImageAddon({
|
||||
enableSizeReports: true,
|
||||
sixelSupport: true,
|
||||
sixelScrolling: true,
|
||||
sixelPaletteLimit: 4096,
|
||||
showPlaceholder: true,
|
||||
}));
|
||||
} catch (e) {
|
||||
console.warn('[Terminal] ImageAddon failed:', (e as Error).message);
|
||||
}
|
||||
// xterm 6.x uses improved default DOM renderer — no Canvas/WebGL addon needed
|
||||
// Re-enable when addons release 6.x-compatible versions
|
||||
fitAddon.fit();
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue