test("encodeKeySequence uses CSI sequences in normal cursor key mode (default)", () => { // Default mode (cursorKeyMode not specified) uses CSI sequences. const up = encodeKeySequence({ keys: ["up"] });
expect(up.data).toBe(`${ESC}[A`);
const down = encodeKeySequence({ keys: ["down"] });
expect(down.data).toBe(`${ESC}[B`);
const right = encodeKeySequence({ keys: ["right"] });
expect(right.data).toBe(`${ESC}[C`);
const left = encodeKeySequence({ keys: ["left"] });
expect(left.data).toBe(`${ESC}[D`);
// Home/End use CSI sequences in normal mode. const home = encodeKeySequence({ keys: ["home"] });
expect(home.data).toBe(`${ESC}[1~`);
const end = encodeKeySequence({ keys: ["end"] });
expect(end.data).toBe(`${ESC}[4~`);
});
test("encodeKeySequence uses CSI sequences in explicit normal cursor key mode", () => { const up = encodeKeySequence({ keys: ["up"] }, "normal");
expect(up.data).toBe(`${ESC}[A`);
const down = encodeKeySequence({ keys: ["down"] }, "normal");
expect(down.data).toBe(`${ESC}[B`);
const right = encodeKeySequence({ keys: ["right"] }, "normal");
expect(right.data).toBe(`${ESC}[C`);
const left = encodeKeySequence({ keys: ["left"] }, "normal");
expect(left.data).toBe(`${ESC}[D`);
// Home/End use CSI sequences in explicit normal mode. const home = encodeKeySequence({ keys: ["home"] }, "normal");
expect(home.data).toBe(`${ESC}[1~`);
const end = encodeKeySequence({ keys: ["end"] }, "normal");
expect(end.data).toBe(`${ESC}[4~`);
});
const down = encodeKeySequence({ keys: ["down"] }, "application");
expect(down.data).toBe(`${ESC}OB`);
const right = encodeKeySequence({ keys: ["right"] }, "application");
expect(right.data).toBe(`${ESC}OC`);
const left = encodeKeySequence({ keys: ["left"] }, "application");
expect(left.data).toBe(`${ESC}OD`);
// Home/End also use SS3 sequences in application mode. const home = encodeKeySequence({ keys: ["home"] }, "application");
expect(home.data).toBe(`${ESC}OH`);
const end = encodeKeySequence({ keys: ["end"] }, "application");
expect(end.data).toBe(`${ESC}OF`);
});
test("encodeKeySequence applies xterm modifiers to arrows in application mode", () => { // Modified arrow keys use xterm modifier scheme even in application mode. // DECCKM only affects unmodified cursor keys. const altUp = encodeKeySequence({ keys: ["M-up"] }, "application");
expect(altUp.data).toBe(`${ESC}[1;3A`);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.