summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 11:10:30 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 11:10:30 +0200
commit5f7ed814c727f9f1fc0265d46013b0f9c91e8d61 (patch)
treed0527536c889418d300518495751ecbe19003a05
parenta78d8c8a5f22f88cdff140f32c884c9cd27b50e8 (diff)
Resolve fixed lowercase direction
-rw-r--r--lua/clever_f/repeat_resolver.lua3
-rw-r--r--tests/run.lua18
2 files changed, 21 insertions, 0 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua
index 64c8b56..f897179 100644
--- a/lua/clever_f/repeat_resolver.lua
+++ b/lua/clever_f/repeat_resolver.lua
@@ -210,6 +210,9 @@ function M.primary_direction(stored_descriptor, pressed_key, fix_key_direction)
end
return domain.Descriptor.swap(stored)
end
+ if domain.Descriptor.is_lowercase(pressed) then
+ return domain.Descriptor.lowercase(stored)
+ end
return nil
end
diff --git a/tests/run.lua b/tests/run.lua
index d88de73..7a77ea2 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -4024,6 +4024,24 @@ test("Relative upper-case keys swap the stored descriptor", function()
end
end)
+test("Fixed lower-case keys use the lower-case stored form", function()
+ fresh_sequence_state()
+ local host = MemoryHost.new({
+ configuration = { fix_key_direction = true },
+ })
+ local resolver = repeat_resolver.new({ policy = policy.new(host) })
+
+ for _, stored in ipairs({ "f", "F", "t", "T" }) do
+ for _, pressed in ipairs({ "f", "t" }) do
+ same(
+ domain.Descriptor.lowercase(stored),
+ resolver:resolve_primary_direction(stored, pressed),
+ stored .. "/" .. pressed
+ )
+ end
+ end
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then