mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
8fd7ff6475
"Use Option as Meta key" was read into `altIsMeta` but only applied to the mouse alt-click options (`altClickMovesCursor`). xterm.js's `macOptionIsMeta` — the option that actually makes Option emit ESC-prefixed (Meta) sequences — was never set, so on macOS Option kept producing layout characters (ƒ, ∫, …) and readline/zle word shortcuts (Alt+f, Alt+b, Alt+Backspace) were dead. Extract the altAsMeta→xterm mapping into one tested helper used by both the terminal init path (createXTermRuntime) and the live settings sync (Terminal.tsx) so the two can't drift again. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 lines
869 B
TypeScript
24 lines
869 B
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import { terminalAltKeyOptions } from "./altKeyOptions";
|
|
|
|
// Issue #1078: with "Use Option as Meta key" enabled, macOS Option must send
|
|
// ESC-prefixed (Meta) sequences. xterm.js gates that on `macOptionIsMeta`. The
|
|
// flag was read from settings but only ever wired to the mouse alt-click
|
|
// behavior, so Option kept emitting layout characters (ƒ, ∫, …) instead of Meta.
|
|
|
|
test("Option-as-Meta enabled: Option emits Meta and alt-click cursor move is disabled", () => {
|
|
assert.deepEqual(terminalAltKeyOptions(true), {
|
|
macOptionIsMeta: true,
|
|
altClickMovesCursor: false,
|
|
});
|
|
});
|
|
|
|
test("Option-as-Meta disabled: xterm keeps default macOS Option behavior", () => {
|
|
assert.deepEqual(terminalAltKeyOptions(false), {
|
|
macOptionIsMeta: false,
|
|
altClickMovesCursor: true,
|
|
});
|
|
});
|