+29
-1
@@ -44,7 +44,7 @@ if ('WebAssembly' in window) {
|
|||||||
|
|
||||||
// Pulling in the module's types relies on the <reference> above, it's looks a
|
// Pulling in the module's types relies on the <reference> above, it's looks a
|
||||||
// little weird here as we're importing "this" module
|
// little weird here as we're importing "this" module
|
||||||
import { Terminal as TerminalType, ITerminalOptions } from '@xterm/xterm';
|
import { Terminal as TerminalType, ITerminalOptions, type IDisposable } from '@xterm/xterm';
|
||||||
|
|
||||||
export interface IWindowWithTerminal extends Window {
|
export interface IWindowWithTerminal extends Window {
|
||||||
term: TerminalType;
|
term: TerminalType;
|
||||||
@@ -255,6 +255,7 @@ if (document.location.pathname === '/test') {
|
|||||||
document.getElementById('add-grapheme-clusters').addEventListener('click', addGraphemeClusters);
|
document.getElementById('add-grapheme-clusters').addEventListener('click', addGraphemeClusters);
|
||||||
document.getElementById('add-decoration').addEventListener('click', addDecoration);
|
document.getElementById('add-decoration').addEventListener('click', addDecoration);
|
||||||
document.getElementById('add-overview-ruler').addEventListener('click', addOverviewRuler);
|
document.getElementById('add-overview-ruler').addEventListener('click', addOverviewRuler);
|
||||||
|
document.getElementById('decoration-stress-test').addEventListener('click', decorationStressTest);
|
||||||
document.getElementById('weblinks-test').addEventListener('click', testWeblinks);
|
document.getElementById('weblinks-test').addEventListener('click', testWeblinks);
|
||||||
document.getElementById('bce').addEventListener('click', coloredErase);
|
document.getElementById('bce').addEventListener('click', coloredErase);
|
||||||
addVtButtons();
|
addVtButtons();
|
||||||
@@ -1170,6 +1171,33 @@ function addOverviewRuler(): void {
|
|||||||
term.registerDecoration({ marker: term.registerMarker(10), overviewRulerOptions: { color: '#ffffff80', position: 'full' } });
|
term.registerDecoration({ marker: term.registerMarker(10), overviewRulerOptions: { color: '#ffffff80', position: 'full' } });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let decorationStressTestDecorations: IDisposable[] | undefined;
|
||||||
|
function decorationStressTest(): void {
|
||||||
|
if (decorationStressTestDecorations) {
|
||||||
|
for (const d of decorationStressTestDecorations) {
|
||||||
|
d.dispose();
|
||||||
|
}
|
||||||
|
decorationStressTestDecorations = undefined;
|
||||||
|
} else {
|
||||||
|
const t = term as Terminal;
|
||||||
|
const buffer = t.buffer.active;
|
||||||
|
const cursorY = buffer.baseY + buffer.cursorY;
|
||||||
|
decorationStressTestDecorations = [];
|
||||||
|
for (const x of [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]) {
|
||||||
|
for (let y = 0; y < t.buffer.active.length; y++) {
|
||||||
|
const cursorOffsetY = y - cursorY;
|
||||||
|
decorationStressTestDecorations.push(t.registerDecoration({
|
||||||
|
marker: t.registerMarker(cursorOffsetY),
|
||||||
|
x,
|
||||||
|
width: 4,
|
||||||
|
backgroundColor: '#FF0000',
|
||||||
|
overviewRulerOptions: { color: '#FF0000' }
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
(console as any).image = (source: ImageData | HTMLCanvasElement, scale: number = 1) => {
|
(console as any).image = (source: ImageData | HTMLCanvasElement, scale: number = 1) => {
|
||||||
function getBox(width: number, height: number): any {
|
function getBox(width: number, height: number): any {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -102,6 +102,7 @@
|
|||||||
<dt>Decorations</dt>
|
<dt>Decorations</dt>
|
||||||
<dd><button id="add-decoration" title="Add a decoration to the terminal">Decoration</button></dd>
|
<dd><button id="add-decoration" title="Add a decoration to the terminal">Decoration</button></dd>
|
||||||
<dd><button id="add-overview-ruler" title="Add an overview ruler to the terminal">Add Overview Ruler</button></dd>
|
<dd><button id="add-overview-ruler" title="Add an overview ruler to the terminal">Add Overview Ruler</button></dd>
|
||||||
|
<dd><button id="decoration-stress-test" title="Toggle between adding and removing a decoration to each line">Stress Test</button></dd>
|
||||||
|
|
||||||
<dt>Weblinks Addon</dt>
|
<dt>Weblinks Addon</dt>
|
||||||
<dd><button id="weblinks-test" title="Various url conditions from demo data, hover&click to test">Test URLs</button></dd>
|
<dd><button id="weblinks-test" title="Various url conditions from demo data, hover&click to test">Test URLs</button></dd>
|
||||||
|
|||||||
Reference in New Issue
Block a user