summaryrefslogtreecommitdiff
path: root/conformance/fixtures/reference-examples.json
diff options
context:
space:
mode:
Diffstat (limited to 'conformance/fixtures/reference-examples.json')
-rw-r--r--conformance/fixtures/reference-examples.json5870
1 files changed, 5870 insertions, 0 deletions
diff --git a/conformance/fixtures/reference-examples.json b/conformance/fixtures/reference-examples.json
new file mode 100644
index 0000000..6927b24
--- /dev/null
+++ b/conformance/fixtures/reference-examples.json
@@ -0,0 +1,5870 @@
+{
+ "format_version": 1,
+ "scenarios": [
+ {
+ "id": "SCN-1101-TIMEOUT-BOUNDARY",
+ "title": "Repeat timeout accepts equality and restarts the interval",
+ "source_refs": [
+ "11.1"
+ ],
+ "requirements": [
+ "CF-0508-003",
+ "CF-0602-004",
+ "CF-0702-009",
+ "CF-1101-001",
+ "CF-1101-002",
+ "CF-1101-004",
+ "CF-1101-005"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "aaaaa"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "repeat_timeout_ms": 100
+ },
+ "input_packets": [],
+ "time_values_ms": [
+ 200,
+ 299.9
+ ],
+ "events": [],
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "a",
+ "first_code": 97
+ }
+ }
+ },
+ "last_input_context": "n",
+ "moved_forward": true,
+ "moved_forward_initialized": true,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 100,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "time_value_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "time_value_indexes": [
+ 1
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "aaaaa"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 1,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "a",
+ "first_code": 97
+ }
+ }
+ },
+ "repeat_timestamp_ms": 299.9
+ },
+ "retained_fields": [],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "apply_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ }
+ },
+ {
+ "after_step": 1,
+ "operation": "apply_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1101-TIMEOUT-EXPIRED",
+ "title": "Repeat timeout resets and reacquires above the threshold",
+ "source_refs": [
+ "11.1"
+ ],
+ "requirements": [
+ "CF-0508-003",
+ "CF-1101-002",
+ "CF-1101-003"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "ababa"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "repeat_timeout_ms": 100
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "b"
+ }
+ ],
+ "time_values_ms": [
+ 201
+ ],
+ "events": [],
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "a",
+ "first_code": 97
+ }
+ }
+ },
+ "last_input_context": "n",
+ "moved_forward": true,
+ "moved_forward_initialized": true,
+ "migemo_cache": [
+ "utf-8"
+ ],
+ "repeat_timestamp_ms": 100,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ],
+ "time_value_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "ababa"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 0,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "b",
+ "first_code": 98
+ }
+ }
+ },
+ "last_input_context": "n",
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 201
+ },
+ "retained_fields": [
+ "previous_target",
+ "last_input_context",
+ "moved_forward"
+ ],
+ "cleared_fields": [
+ "migemo_cache"
+ ]
+ }
+ ],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 0,
+ "operation": "apply_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1102-COMMAND-SUCCESS",
+ "title": "Command-path success commits landing and direction",
+ "source_refs": [
+ "11.2"
+ ],
+ "requirements": [
+ "CF-0200-005",
+ "CF-0301-007",
+ "CF-0303-002",
+ "CF-0304-001",
+ "CF-0601-002",
+ "CF-0601-003",
+ "CF-0602-002",
+ "CF-1102-001",
+ "CF-1102-002",
+ "CF-1102-003",
+ "CF-1102-005",
+ "CF-1102-007"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "abca"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "a"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "abca"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 0,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "a",
+ "first_code": 97
+ }
+ }
+ },
+ "last_input_context": "n",
+ "moved_forward": true,
+ "moved_forward_initialized": true
+ },
+ "retained_fields": [],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 0,
+ "operation": "apply_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1102-COMMAND-FAILURE",
+ "title": "First-step command failure preserves successful history",
+ "source_refs": [
+ "10.6",
+ "11.2",
+ "14.4"
+ ],
+ "requirements": [
+ "CF-0601-003",
+ "CF-0604-001",
+ "CF-1004-004",
+ "CF-1006-002",
+ "CF-1006-003",
+ "CF-1102-004",
+ "CF-1404-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "abc"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": true,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "z"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "failed_search",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": false,
+ "successful_steps": 0,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "abc"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 0,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": null,
+ "first_move": true,
+ "previous_target": {
+ "kind": "character",
+ "value": "z",
+ "first_code": 122
+ }
+ }
+ },
+ "last_input_context": "n",
+ "target_overlays": [
+ "char-1"
+ ],
+ "finalizers": [
+ "finalizer-1"
+ ]
+ },
+ "retained_fields": [
+ "previous_landing",
+ "first_move"
+ ],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1",
+ "anchor_line": 1,
+ "priority": "high",
+ "descriptor": "f",
+ "target_plan": "literal-sensitive-z"
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 0,
+ "operation": "register_finalizer",
+ "identity": "finalizer-1"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1103-VISUAL-SUCCESS",
+ "title": "Visual success preserves kind, direction state, and overlay anchor",
+ "source_refs": [
+ "11.3"
+ ],
+ "requirements": [
+ "CF-0200-005",
+ "CF-1005-002",
+ "CF-1103-001",
+ "CF-1103-002",
+ "CF-1103-003",
+ "CF-1103-004",
+ "CF-1103-005",
+ "CF-1206-004"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "abca"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "v",
+ "selection": {
+ "active": true,
+ "kind": "character",
+ "anchor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "focus": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "c"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": true,
+ "moved_forward_initialized": true,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [
+ "char-1"
+ ],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "abca"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "final_selection": {
+ "active": true,
+ "kind": "character",
+ "anchor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "focus": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 0,
+ "state": {
+ "contexts": {
+ "v": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "c",
+ "first_code": 99
+ }
+ }
+ },
+ "moved_forward": true,
+ "target_overlays": [
+ "char-1"
+ ]
+ },
+ "retained_fields": [
+ "moved_forward",
+ "target_overlays"
+ ],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "preserve",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1",
+ "anchor_line": 1
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 0,
+ "operation": "apply_selection",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ }
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1104-DFE",
+ "title": "Forward FIND delete endpoint",
+ "source_refs": [
+ "11.4"
+ ],
+ "requirements": [
+ "CF-1104-003",
+ "CF-1104-001",
+ "CF-0200-005",
+ "CF-1102-001",
+ "CF-1205-007"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hoge fuge piye poye"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "no",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": "delete",
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "e"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f",
+ "buffer_lines": [
+ " fuge piye poye"
+ ]
+ }
+ ],
+ "final_buffer": [
+ " fuge piye poye"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1104-DTE",
+ "title": "Forward TILL delete endpoint",
+ "source_refs": [
+ "11.4"
+ ],
+ "requirements": [
+ "CF-1104-004",
+ "CF-1104-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hoge fuge piye poye"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "no",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": "delete",
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "e"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartTillForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "t",
+ "buffer_lines": [
+ "e fuge piye poye"
+ ]
+ }
+ ],
+ "final_buffer": [
+ "e fuge piye poye"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1104-DFE-BACKWARD",
+ "title": "Backward FIND delete endpoint",
+ "source_refs": [
+ "11.4"
+ ],
+ "requirements": [
+ "CF-1104-005",
+ "CF-1104-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hoge fuge piye poye"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 19
+ },
+ "mode": "no",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": "delete",
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "e"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindBackward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F",
+ "buffer_lines": [
+ "hoge fuge piye"
+ ]
+ }
+ ],
+ "final_buffer": [
+ "hoge fuge piye"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1104-DTE-BACKWARD",
+ "title": "Backward TILL delete endpoint",
+ "source_refs": [
+ "11.4"
+ ],
+ "requirements": [
+ "CF-1104-006",
+ "CF-1104-002",
+ "CF-0302-004",
+ "CF-1003-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hoge fuge piye poye"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 19
+ },
+ "mode": "no",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": "delete",
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "e"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartTillBackward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "T",
+ "buffer_lines": [
+ "hoge fuge piyee"
+ ]
+ }
+ ],
+ "final_buffer": [
+ "hoge fuge piyee"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1105-DOT-REPEAT",
+ "title": "Successive dfe dot repeats preserve the resolved payload",
+ "source_refs": [
+ "11.5"
+ ],
+ "requirements": [
+ "CF-0200-009",
+ "CF-1105-001",
+ "CF-1105-002",
+ "CF-1105-003",
+ "CF-1105-004",
+ "CF-1105-005"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hoge fuge piye poye"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "no",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": "delete",
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "e"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "DotRepeat"
+ },
+ {
+ "operation": "action",
+ "action": "DotRepeat"
+ },
+ {
+ "operation": "action",
+ "action": "DotRepeat"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f",
+ "buffer_lines": [
+ " fuge piye poye"
+ ],
+ "dot_payload": {
+ "descriptor": "f",
+ "target": {
+ "kind": "character",
+ "value": "e",
+ "first_code": 101
+ }
+ }
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f",
+ "buffer_lines": [
+ " piye poye"
+ ],
+ "dot_payload": {
+ "descriptor": "f",
+ "target": {
+ "kind": "character",
+ "value": "e",
+ "first_code": 101
+ }
+ }
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f",
+ "buffer_lines": [
+ " poye"
+ ],
+ "dot_payload": {
+ "descriptor": "f",
+ "target": {
+ "kind": "character",
+ "value": "e",
+ "first_code": 101
+ }
+ }
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f",
+ "buffer_lines": [
+ ""
+ ],
+ "dot_payload": {
+ "descriptor": "f",
+ "target": {
+ "kind": "character",
+ "value": "e",
+ "first_code": 101
+ }
+ }
+ }
+ ],
+ "final_buffer": [
+ ""
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1501-SHARED-KEYS",
+ "title": "Four primary keys share one FIND sequence",
+ "source_refs": [
+ "15.1"
+ ],
+ "requirements": [
+ "CF-0200-002",
+ "CF-0200-003",
+ "CF-0200-004",
+ "CF-0302-005",
+ "CF-0303-003",
+ "CF-0303-004",
+ "CF-0303-005",
+ "CF-0504-002",
+ "CF-0604-003",
+ "CF-0801-001",
+ "CF-0801-002",
+ "CF-1501-001",
+ "CF-1501-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "hxhxh"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartTillForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartTillBackward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 4,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "hxhxh"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 4,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ }
+ },
+ "last_input_context": "n"
+ },
+ "retained_fields": [],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1502-MODE-ISOLATION",
+ "title": "Normal and Visual histories are isolated while target reuse crosses contexts",
+ "source_refs": [
+ "15.2"
+ ],
+ "requirements": [
+ "CF-0305-001",
+ "CF-0305-003",
+ "CF-0305-004",
+ "CF-0510-003",
+ "CF-0601-001",
+ "CF-0601-004",
+ "CF-0602-001",
+ "CF-0702-007",
+ "CF-0704-002",
+ "CF-1502-001",
+ "CF-1502-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "ahha"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ },
+ {
+ "kind": "text",
+ "text": "\r"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "set_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 1
+ }
+ },
+ {
+ "operation": "set_mode",
+ "mode": "v"
+ },
+ {
+ "operation": "set_selection",
+ "selection": {
+ "active": true,
+ "kind": "character",
+ "anchor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "focus": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "option": "inclusive"
+ }
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 1
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 4,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "ahha"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "final_selection": {
+ "active": true,
+ "kind": "character",
+ "anchor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "focus": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 0,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ },
+ "v": {
+ "previous_descriptor": null,
+ "previous_landing": null,
+ "first_move": null,
+ "previous_target": null
+ }
+ },
+ "last_input_context": "n"
+ },
+ "retained_fields": [],
+ "cleared_fields": []
+ },
+ {
+ "after_step": 4,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ },
+ "v": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ }
+ },
+ "last_input_context": "v"
+ },
+ "retained_fields": [
+ "contexts.n"
+ ],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 4,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1503-MULTILINE",
+ "title": "Buffer-wide primary repetition follows the specified multiline sequence",
+ "source_refs": [
+ "15.3"
+ ],
+ "requirements": [
+ "CF-0200-007",
+ "CF-0501-002",
+ "CF-1001-006",
+ "CF-1503-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "foo bar baz",
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "a"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 2,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 2,
+ "byte_column": 10
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 2,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 4,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "foo bar baz",
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1503-CURRENT-LINE",
+ "title": "Current-line scope stops at the last same-line occurrence",
+ "source_refs": [
+ "15.3"
+ ],
+ "requirements": [
+ "CF-0501-003",
+ "CF-1001-005",
+ "CF-1503-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "foo bar baz",
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "search_current_line_only": true
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "a"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "failed_search",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": false,
+ "successful_steps": 0,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "foo bar baz",
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1504-FIND-FORWARD",
+ "title": "Basic forward FIND sequence",
+ "source_refs": [
+ "15.4"
+ ],
+ "requirements": [
+ "CF-0302-001",
+ "CF-0303-001",
+ "CF-1001-002",
+ "CF-1002-001",
+ "CF-1002-002",
+ "CF-1504-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1504-FIND-BACKWARD",
+ "title": "Basic backward FIND sequence",
+ "source_refs": [
+ "8.1",
+ "15.4"
+ ],
+ "requirements": [
+ "CF-0302-002",
+ "CF-0801-004",
+ "CF-1001-003",
+ "CF-1002-001",
+ "CF-1504-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 19
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "o"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindBackward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 17
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1505-TILL-FORWARD",
+ "title": "Basic forward TILL sequence",
+ "source_refs": [
+ "8.1",
+ "15.5"
+ ],
+ "requirements": [
+ "CF-0302-003",
+ "CF-0801-005",
+ "CF-1003-001",
+ "CF-1003-004",
+ "CF-1505-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartTillForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartTillForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "t"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 10
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "t"
+ }
+ ],
+ "final_buffer": [
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 10
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1505-TILL-NEW",
+ "title": "Fresh TILL followed by repeated adjacent-target exclusion",
+ "source_refs": [
+ "15.5"
+ ],
+ "requirements": [
+ "CF-1505-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poge huga hiyo poyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "o"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartTillForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartTillForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 16
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "t"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 18
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "t"
+ }
+ ],
+ "final_buffer": [
+ "poge huga hiyo poyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 18
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1506-IGNORE-CASE",
+ "title": "ignore_case folds all literal target case",
+ "source_refs": [
+ "15.6"
+ ],
+ "requirements": [
+ "CF-0200-010",
+ "CF-0502-002",
+ "CF-0904-001",
+ "CF-1506-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poge Guga hiyo Go;yo;"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "ignore_case": true
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "g"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 8
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "poge Guga hiyo Go;yo;"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1506-SMART-LOWER",
+ "title": "smart_case lower-case target visits both cases",
+ "source_refs": [
+ "15.6"
+ ],
+ "requirements": [
+ "CF-0502-004",
+ "CF-0904-002",
+ "CF-1506-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poHe huga Hiyo hoyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "smart_case": true
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 16
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "poHe huga Hiyo hoyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 16
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1506-SMART-UPPER",
+ "title": "smart_case upper-case target visits exact case",
+ "source_refs": [
+ "15.6"
+ ],
+ "requirements": [
+ "CF-0502-004",
+ "CF-0904-003",
+ "CF-1506-003"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "poHe huga Hiyo hoyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "smart_case": true
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "H"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "poHe huga Hiyo hoyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1507-SYMBOLS",
+ "title": "Wildcard repeats traverse all 32 symbols in both directions",
+ "source_refs": [
+ "9.3",
+ "15.7"
+ ],
+ "requirements": [
+ "CF-0506-002",
+ "CF-0903-001",
+ "CF-0903-002",
+ "CF-0903-003",
+ "CF-0904-004",
+ "CF-1507-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "x!\"#$%&'()=~|\\-^@`[]{};:+*<>,.?_/"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0,
+ "chars_match_any_signs": ";"
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": ";"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 4,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 5,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 7
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 6,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 8
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 7,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 8,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 10
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 9,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 10,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 12
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 11,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 13
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 12,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 13,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 15
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 14,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 16
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 15,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 17
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 16,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 18
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 17,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 19
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 18,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 20
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 19,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 21
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 20,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 22
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 21,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 23
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 22,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 24
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 23,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 25
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 24,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 26
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 25,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 27
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 26,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 28
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 27,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 29
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 28,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 30
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 29,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 31
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 30,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 32
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 31,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 33
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 32,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 32
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 33,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 31
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 34,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 30
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 35,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 29
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 36,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 28
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 37,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 27
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 38,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 26
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 39,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 25
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 40,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 24
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 41,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 23
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 42,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 22
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 43,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 21
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 44,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 20
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 45,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 19
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 46,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 18
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 47,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 17
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 48,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 16
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 49,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 15
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 50,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 14
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 51,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 13
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 52,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 12
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 53,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 54,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 10
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 55,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 56,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 8
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 57,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 7
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 58,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 59,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 60,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 61,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 3
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ },
+ {
+ "after_step": 62,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "x!\"#$%&'()=~|\\-^@`[]{};:+*<>,.?_/"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1508-DIRECT-ONE",
+ "title": "Direct preview count 1",
+ "source_refs": [
+ "12.4",
+ "15.8"
+ ],
+ "requirements": [
+ "CF-0511-002",
+ "CF-1004-001",
+ "CF-1204-003",
+ "CF-1204-004",
+ "CF-1204-008",
+ "CF-1508-001",
+ "CF-0702-003",
+ "CF-1204-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "pOge huga Hiyo pOyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": 1,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": true,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ],
+ "count": 1
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "pOge huga Hiyo pOyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFDirect",
+ "identity": "direct-set-1",
+ "window": "window-1",
+ "positions": [
+ {
+ "line": 1,
+ "byte_column": 2
+ },
+ {
+ "line": 1,
+ "byte_column": 3
+ },
+ {
+ "line": 1,
+ "byte_column": 4
+ },
+ {
+ "line": 1,
+ "byte_column": 5
+ },
+ {
+ "line": 1,
+ "byte_column": 6
+ },
+ {
+ "line": 1,
+ "byte_column": 7
+ },
+ {
+ "line": 1,
+ "byte_column": 9
+ },
+ {
+ "line": 1,
+ "byte_column": 11
+ },
+ {
+ "line": 1,
+ "byte_column": 12
+ },
+ {
+ "line": 1,
+ "byte_column": 13
+ },
+ {
+ "line": 1,
+ "byte_column": 14
+ },
+ {
+ "line": 1,
+ "byte_column": 16
+ }
+ ],
+ "priority": "ordinary"
+ },
+ {
+ "after_step": 0,
+ "operation": "remove",
+ "group": "CleverFDirect",
+ "identity": "direct-set-1",
+ "window": "window-1"
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [
+ {
+ "after_step": 0,
+ "kind": "screen"
+ }
+ ],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1508-DIRECT-TWO",
+ "title": "Direct preview count 2",
+ "source_refs": [
+ "12.4",
+ "15.8"
+ ],
+ "requirements": [
+ "CF-0511-002",
+ "CF-1004-001",
+ "CF-1204-003",
+ "CF-1204-004",
+ "CF-1204-008",
+ "CF-1508-002",
+ "CF-0200-006"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "pOge huga Hiyo pOyo"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": 2,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": true,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ],
+ "count": 2
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "complete": true,
+ "successful_steps": 2,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "pOge huga Hiyo pOyo"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 11
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFDirect",
+ "identity": "direct-set-1",
+ "window": "window-1",
+ "positions": [
+ {
+ "line": 1,
+ "byte_column": 8
+ },
+ {
+ "line": 1,
+ "byte_column": 10
+ },
+ {
+ "line": 1,
+ "byte_column": 17
+ },
+ {
+ "line": 1,
+ "byte_column": 18
+ },
+ {
+ "line": 1,
+ "byte_column": 19
+ }
+ ],
+ "priority": "ordinary"
+ },
+ {
+ "after_step": 0,
+ "operation": "remove",
+ "group": "CleverFDirect",
+ "identity": "direct-set-1",
+ "window": "window-1"
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [
+ {
+ "after_step": 0,
+ "kind": "screen"
+ }
+ ],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1508-DIRECT-MULTIBYTE",
+ "title": "Direct preview emits valid UTF-8 byte columns in both directions",
+ "source_refs": [
+ "10.7",
+ "15.8"
+ ],
+ "requirements": [
+ "CF-0200-008",
+ "CF-0301-002",
+ "CF-0301-003",
+ "CF-0301-004",
+ "CF-1007-001",
+ "CF-1007-002",
+ "CF-1204-002",
+ "CF-1508-003"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "x\u3042x\u3044x"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": true,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "x"
+ },
+ {
+ "kind": "text",
+ "text": "x"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "Reset"
+ },
+ {
+ "operation": "set_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 9
+ }
+ },
+ {
+ "operation": "action",
+ "action": "StartFindBackward",
+ "input_packet_indexes": [
+ 1
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "neutral",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": null,
+ "successful_steps": 0,
+ "effective_descriptor": null
+ },
+ {
+ "after_step": 3,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "F"
+ }
+ ],
+ "final_buffer": [
+ "x\u3042x\u3044x"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 5
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFDirect",
+ "identity": "direct-forward",
+ "window": "window-1",
+ "positions": [
+ {
+ "line": 1,
+ "byte_column": 2
+ },
+ {
+ "line": 1,
+ "byte_column": 5
+ },
+ {
+ "line": 1,
+ "byte_column": 6
+ }
+ ],
+ "priority": "ordinary"
+ },
+ {
+ "after_step": 0,
+ "operation": "remove",
+ "group": "CleverFDirect",
+ "identity": "direct-forward",
+ "window": "window-1"
+ },
+ {
+ "after_step": 3,
+ "operation": "create",
+ "group": "CleverFDirect",
+ "identity": "direct-backward",
+ "window": "window-1",
+ "positions": [
+ {
+ "line": 1,
+ "byte_column": 6
+ },
+ {
+ "line": 1,
+ "byte_column": 5
+ },
+ {
+ "line": 1,
+ "byte_column": 2
+ }
+ ],
+ "priority": "ordinary"
+ },
+ {
+ "after_step": 3,
+ "operation": "remove",
+ "group": "CleverFDirect",
+ "identity": "direct-backward",
+ "window": "window-1"
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [
+ {
+ "after_step": 0,
+ "kind": "screen"
+ },
+ {
+ "after_step": 3,
+ "kind": "screen"
+ }
+ ],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1509-MACRO",
+ "title": "Each fax macro iteration acquires and removes the next a",
+ "source_refs": [
+ "7.3",
+ "15.9"
+ ],
+ "requirements": [
+ "CF-0604-002",
+ "CF-0703-001",
+ "CF-0703-002",
+ "CF-0703-003",
+ "CF-1509-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "1a 2a 3a 4a 5a"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": true,
+ "mark_direct": true,
+ "show_prompt": true,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "a"
+ },
+ {
+ "kind": "text",
+ "text": "a"
+ },
+ {
+ "kind": "text",
+ "text": "a"
+ },
+ {
+ "kind": "text",
+ "text": "a"
+ },
+ {
+ "kind": "text",
+ "text": "a"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": "q",
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "editor_key",
+ "key": "x"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 1
+ ]
+ },
+ {
+ "operation": "editor_key",
+ "key": "x"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 2
+ ]
+ },
+ {
+ "operation": "editor_key",
+ "key": "x"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 3
+ ]
+ },
+ {
+ "operation": "editor_key",
+ "key": "x"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 4
+ ]
+ },
+ {
+ "operation": "editor_key",
+ "key": "x"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 4,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 6
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 6,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 8
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 8,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 10
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "1 2 3 4 5"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 9
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [
+ {
+ "after_step": 0,
+ "kind": "suppressed"
+ },
+ {
+ "after_step": 2,
+ "kind": "suppressed"
+ },
+ {
+ "after_step": 4,
+ "kind": "suppressed"
+ },
+ {
+ "after_step": 6,
+ "kind": "suppressed"
+ },
+ {
+ "after_step": 8,
+ "kind": "suppressed"
+ }
+ ],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 2,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 4,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 6,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 8,
+ "operation": "read_input"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1510-OVERLAY-LIFECYCLE",
+ "title": "Persistent feedback stays on line and migrates across lines",
+ "source_refs": [
+ "12.5",
+ "12.6",
+ "12.7",
+ "15.10"
+ ],
+ "requirements": [
+ "CF-0200-010",
+ "CF-0509-002",
+ "CF-0702-010",
+ "CF-1102-006",
+ "CF-0602-006",
+ "CF-1205-001",
+ "CF-1205-002",
+ "CF-1206-001",
+ "CF-1206-003",
+ "CF-1207-001",
+ "CF-1207-002",
+ "CF-1510-001",
+ "CF-1510-002"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "aha",
+ "aha"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": true,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [
+ {
+ "name": "CursorMoved",
+ "cursor": {
+ "line": 2,
+ "byte_column": 2
+ }
+ }
+ ],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ },
+ {
+ "operation": "event",
+ "event_index": 0
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 1,
+ "kind": "movement",
+ "position": {
+ "line": 2,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "aha",
+ "aha"
+ ],
+ "final_position": {
+ "line": 2,
+ "byte_column": 2
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 2,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 2,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ }
+ },
+ "target_overlays": [
+ "char-2"
+ ],
+ "finalizers": [
+ "finalizer-1"
+ ]
+ },
+ "retained_fields": [
+ "previous_landing",
+ "target_overlays",
+ "finalizers"
+ ],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1",
+ "anchor_line": 1,
+ "priority": "high",
+ "descriptor": "f",
+ "target_plan": "literal-sensitive-h"
+ },
+ {
+ "after_step": 0,
+ "operation": "preserve",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1",
+ "anchor_line": 1
+ },
+ {
+ "after_step": 1,
+ "operation": "rebuild",
+ "group": "CleverFChar",
+ "identity": "char-2",
+ "window": "window-1",
+ "anchor_line": 2,
+ "priority": "high",
+ "descriptor": "f",
+ "target_plan": "literal-sensitive-h"
+ },
+ {
+ "after_step": 2,
+ "operation": "preserve",
+ "group": "CleverFChar",
+ "identity": "char-2",
+ "window": "window-1",
+ "anchor_line": 2
+ }
+ ],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "register_finalizer",
+ "identity": "finalizer-1"
+ }
+ ]
+ }
+ },
+ {
+ "id": "SCN-1510-TIMEOUT",
+ "title": "Highlight timeout clears feedback and primary repeat restores it",
+ "source_refs": [
+ "12.8",
+ "15.10"
+ ],
+ "requirements": [
+ "CF-0509-007",
+ "CF-1208-001",
+ "CF-1208-004",
+ "CF-1208-005",
+ "CF-1510-004"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "ahaha"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": true,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 50
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [],
+ "closed_fold_levels": 0,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ },
+ {
+ "operation": "timer_callback",
+ "timer_identity": "timer-1"
+ },
+ {
+ "operation": "action",
+ "action": "StartFindForward"
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ },
+ {
+ "after_step": 2,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "ahaha"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [
+ {
+ "after_step": 1,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ }
+ },
+ "highlight_timer": null,
+ "target_overlays": []
+ },
+ "retained_fields": [
+ "previous_descriptor",
+ "previous_target",
+ "previous_landing",
+ "first_move"
+ ],
+ "cleared_fields": []
+ },
+ {
+ "after_step": 2,
+ "state": {
+ "contexts": {
+ "n": {
+ "previous_descriptor": "f",
+ "previous_landing": {
+ "line": 1,
+ "byte_column": 4
+ },
+ "first_move": false,
+ "previous_target": {
+ "kind": "character",
+ "value": "h",
+ "first_code": 104
+ }
+ }
+ },
+ "highlight_timer": "timer-2",
+ "target_overlays": [
+ "char-2"
+ ]
+ },
+ "retained_fields": [],
+ "cleared_fields": []
+ }
+ ],
+ "overlay_plans": [
+ {
+ "after_step": 0,
+ "operation": "create",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1",
+ "anchor_line": 1,
+ "priority": "high"
+ },
+ {
+ "after_step": 1,
+ "operation": "remove",
+ "group": "CleverFChar",
+ "identity": "char-1",
+ "window": "window-1"
+ },
+ {
+ "after_step": 2,
+ "operation": "create",
+ "group": "CleverFChar",
+ "identity": "char-2",
+ "window": "window-1",
+ "anchor_line": 1,
+ "priority": "high"
+ }
+ ],
+ "timer_operations": [
+ {
+ "after_step": 0,
+ "operation": "start",
+ "identity": "timer-1",
+ "delay_ms": 50
+ },
+ {
+ "after_step": 1,
+ "operation": "fire",
+ "identity": "timer-1"
+ },
+ {
+ "after_step": 1,
+ "operation": "set_inactive",
+ "identity": "timer-1"
+ },
+ {
+ "after_step": 2,
+ "operation": "start",
+ "identity": "timer-2",
+ "delay_ms": 50
+ }
+ ],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": []
+ }
+ },
+ {
+ "id": "SCN-1511-FOLDS",
+ "title": "Primary action opens all enclosing horizontal-motion folds before input",
+ "source_refs": [
+ "7.1",
+ "15.11"
+ ],
+ "requirements": [
+ "CF-0701-001",
+ "CF-0701-002",
+ "CF-0701-003",
+ "CF-1511-001"
+ ],
+ "given": {
+ "buffer": {
+ "lines": [
+ "aha"
+ ]
+ },
+ "effective_encoding": "utf-8",
+ "cursor": {
+ "line": 1,
+ "byte_column": 1
+ },
+ "mode": "n",
+ "selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "pending_operator": null,
+ "count": null,
+ "configuration": {
+ "mark_char": false,
+ "mark_cursor": false,
+ "mark_direct": false,
+ "show_prompt": false,
+ "highlight_timeout_ms": 0
+ },
+ "input_packets": [
+ {
+ "kind": "text",
+ "text": "h"
+ }
+ ],
+ "time_values_ms": [],
+ "events": [],
+ "state": {
+ "contexts": {},
+ "last_input_context": null,
+ "moved_forward": false,
+ "moved_forward_initialized": false,
+ "migemo_cache": [],
+ "repeat_timestamp_ms": 0,
+ "highlight_timer": null,
+ "target_overlays": [],
+ "temporary_overlays": [],
+ "finalizers": []
+ },
+ "host": {
+ "macro_register": null,
+ "fold_open_policy": [
+ "horizontal"
+ ],
+ "closed_fold_levels": 3,
+ "timer_support": true,
+ "cmdline_cursor_support": true
+ }
+ },
+ "steps": [
+ {
+ "operation": "action",
+ "action": "StartFindForward",
+ "input_packet_indexes": [
+ 0
+ ]
+ }
+ ],
+ "expect": {
+ "action_outcomes": [
+ {
+ "after_step": 0,
+ "kind": "movement",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "complete": true,
+ "successful_steps": 1,
+ "effective_descriptor": "f"
+ }
+ ],
+ "final_buffer": [
+ "aha"
+ ],
+ "final_position": {
+ "line": 1,
+ "byte_column": 2
+ },
+ "final_selection": {
+ "active": false,
+ "kind": "none",
+ "anchor": null,
+ "focus": null,
+ "option": "inclusive"
+ },
+ "state_snapshots": [],
+ "overlay_plans": [],
+ "timer_operations": [],
+ "prompts": [],
+ "redraws": [],
+ "diagnostics": [],
+ "host_operations": [
+ {
+ "after_step": 0,
+ "operation": "open_fold",
+ "fold_level": 3
+ },
+ {
+ "after_step": 0,
+ "operation": "open_fold",
+ "fold_level": 2
+ },
+ {
+ "after_step": 0,
+ "operation": "open_fold",
+ "fold_level": 1
+ },
+ {
+ "after_step": 0,
+ "operation": "read_input"
+ },
+ {
+ "after_step": 0,
+ "operation": "apply_cursor",
+ "position": {
+ "line": 1,
+ "byte_column": 2
+ }
+ }
+ ]
+ }
+ }
+ ]
+}