fix: restore x/X/D as modal debug keys, add quit_exits_mode config, track mapped keys exactly

This commit is contained in:
swaits committed 2026-04-11 19:49:18 -06:00
1 parent b81de4db01
commit d5331800b4
6 files changed
+64 -26

No files matched your search

+16 -4
View File
@@ -15,8 +15,8 @@ assert_eq(td.active(), false, "starts inactive")
td.toggle()
assert_eq(td.active(), true, "active after toggle")
-- keymaps are set
for _, key in ipairs({ "c", "s", "d", "r", "q" }) do
-- all modal keymaps are set (including breakpoint keys)
for _, key in ipairs({ "c", "s", "d", "r", "q", "x", "X", "D" }) do
assert_eq(has_buf_map(key), true, key .. " key mapped")
end
@@ -24,9 +24,21 @@ end
td.toggle()
assert_eq(td.active(), false, "inactive after second toggle")
-- keymaps are removed
for _, key in ipairs({ "c", "s", "d", "r", "q" }) do
-- all modal keymaps are removed
for _, key in ipairs({ "c", "s", "d", "r", "q", "x", "X", "D" }) do
assert_eq(has_buf_map(key), false, key .. " key removed")
end
-- double exit is safe
td.toggle() -- enter
td.toggle() -- exit
td.toggle() -- enter
td.toggle() -- exit
assert_eq(td.active(), false, "stable after multiple toggles")
-- verify no leaked keymaps after rapid toggling
for _, key in ipairs({ "c", "s", "d", "r", "q", "x", "X", "D" }) do
assert_eq(has_buf_map(key), false, key .. " clean after rapid toggle")
end
print("ALL MODE TESTS PASSED")