clean lib/src/terminal/ to the project bar (T-107)
test / unit + widget + golden + a11y (push) Failing after 32s
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / integration_test (xvfb) (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m1s
test / unit + widget + golden + a11y (push) Failing after 32s
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / integration_test (xvfb) (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m1s
T-107 (b): treat the in-tree terminal as ours, not vendored. * custom_text_edit.dart — drop the row of commented-out `// print(...)` debugging stubs that shipped with the fork. * parser.dart — the "TODO: G2/G3" lines for unimplemented VT220 charset designators become a clear "not implemented" note; the stale "TODO: Normal/Application Keypad" tags on `>` / `=` get removed since the handlers ARE wired. * keytab.dart — the bare "TODO: support VT52" turns into a comment explaining that ANSI=false records are intentionally skipped (no clide consumer asks for VT52). * terminal_view.dart — the lone `// ignore: invalid_use_of_protected_member` keeps the suppression but gets an inline justification per CLAUDE.md (TerminalView owns its own ShortcutManager so terminal keybindings fire before the app's Shortcuts ancestor; wrapping in Shortcuts would invert that). parser.dart's 1139-LOC size is parked as T-123 — split is too invasive to fold here without conflicting with T-91's coverage sweep on the same area. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -105,12 +105,14 @@ class EscapeParser {
|
||||
// 'P'.charCode: _unsupportedHandler, // Sixel
|
||||
// 'c'.charCode: _unsupportedHandler,
|
||||
// '#'.charCode: _unsupportedHandler,
|
||||
'('.charCode: _escHandleDesignateCharset0, // SCS - G0
|
||||
')'.charCode: _escHandleDesignateCharset1, // SCS - G1
|
||||
// '*'.charCode: _voidHandler(1), // TODO: G2 (vt220)
|
||||
// '+'.charCode: _voidHandler(1), // TODO: G3 (vt220)
|
||||
'>'.charCode: _escHandleResetAppKeypadMode, // TODO: Normal Keypad
|
||||
'='.charCode: _escHandleSetAppKeypadMode, // TODO: Application Keypad
|
||||
'('.charCode: _escHandleDesignateCharset0, // SCS — G0
|
||||
')'.charCode: _escHandleDesignateCharset1, // SCS — G1
|
||||
// G2 (`ESC *`) and G3 (`ESC +`) charset designators are VT220+
|
||||
// sequences we don't honour — no consumer in clide selects past
|
||||
// G0/G1. Sequences pass through as no-ops (one trailing byte is
|
||||
// consumed by the default parser).
|
||||
'>'.charCode: _escHandleResetAppKeypadMode,
|
||||
'='.charCode: _escHandleSetAppKeypadMode,
|
||||
});
|
||||
|
||||
/// `ESC 7` Save Cursor (DECSC)
|
||||
|
||||
@@ -88,7 +88,9 @@ class Keytab {
|
||||
continue;
|
||||
}
|
||||
|
||||
// TODO: support VT52
|
||||
// VT52 mode (ANSI=false) records are skipped — clide only emits
|
||||
// ANSI/VT100+ sequences. No consumer asks for VT52 today; if one
|
||||
// does, this branch is where the lookup would flip.
|
||||
if (record.ansi == false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -360,6 +360,13 @@ class TerminalViewState extends State<TerminalView> {
|
||||
return resultOverride;
|
||||
}
|
||||
|
||||
// ShortcutManager.handleKeypress is @protected — it's only public
|
||||
// for the Shortcuts widget to call internally. We own our own
|
||||
// ShortcutManager because the terminal has its own keybinding
|
||||
// surface (defaultTerminalShortcuts: Ctrl+C → kill, Tab handoff
|
||||
// rules, etc.) that needs to fire BEFORE the app's Shortcuts
|
||||
// ancestor. Wrapping in a Shortcuts widget would invert that.
|
||||
// T-107 approved leaving this suppression with an inline reason.
|
||||
// ignore: invalid_use_of_protected_member
|
||||
final shortcutResult = _shortcutManager.handleKeypress(
|
||||
focusNode.context!,
|
||||
|
||||
@@ -241,42 +241,27 @@ class CustomTextEditState extends State<CustomTextEdit> with TextInputClient {
|
||||
|
||||
@override
|
||||
void performAction(TextInputAction action) {
|
||||
// print('performAction $action');
|
||||
widget.onAction(action);
|
||||
}
|
||||
|
||||
@override
|
||||
void updateFloatingCursor(RawFloatingCursorPoint point) {
|
||||
// print('updateFloatingCursor $point');
|
||||
}
|
||||
void updateFloatingCursor(RawFloatingCursorPoint point) {}
|
||||
|
||||
@override
|
||||
void showAutocorrectionPromptRect(int start, int end) {
|
||||
// print('showAutocorrectionPromptRect');
|
||||
}
|
||||
void showAutocorrectionPromptRect(int start, int end) {}
|
||||
|
||||
@override
|
||||
void connectionClosed() {
|
||||
// print('connectionClosed');
|
||||
}
|
||||
void connectionClosed() {}
|
||||
|
||||
@override
|
||||
void performPrivateCommand(String action, Map<String, dynamic> data) {
|
||||
// print('performPrivateCommand $action');
|
||||
}
|
||||
void performPrivateCommand(String action, Map<String, dynamic> data) {}
|
||||
|
||||
@override
|
||||
void insertTextPlaceholder(Size size) {
|
||||
// print('insertTextPlaceholder');
|
||||
}
|
||||
void insertTextPlaceholder(Size size) {}
|
||||
|
||||
@override
|
||||
void removeTextPlaceholder() {
|
||||
// print('removeTextPlaceholder');
|
||||
}
|
||||
void removeTextPlaceholder() {}
|
||||
|
||||
@override
|
||||
void showToolbar() {
|
||||
// print('showToolbar');
|
||||
}
|
||||
void showToolbar() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user