summaryrefslogtreecommitdiff
path: root/lua/clever_f/sequence_coordinator.lua
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 14:29:26 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 14:29:26 +0200
commit80f3025ed00f8c35ae0c83f4ed754a45d108ea1b (patch)
treea755dd3af74541dbfaa4f20ab5b1b00f823ce1e3 /lua/clever_f/sequence_coordinator.lua
parent890cedb3003d45ded2327e483675c42fdfe024f1 (diff)
Connect encoding and case conversion
Diffstat (limited to 'lua/clever_f/sequence_coordinator.lua')
-rw-r--r--lua/clever_f/sequence_coordinator.lua19
1 files changed, 18 insertions, 1 deletions
diff --git a/lua/clever_f/sequence_coordinator.lua b/lua/clever_f/sequence_coordinator.lua
index 0f233cf..6d2d31b 100644
--- a/lua/clever_f/sequence_coordinator.lua
+++ b/lua/clever_f/sequence_coordinator.lua
@@ -1,4 +1,6 @@
local acquisition_service_factory = require("clever_f.acquisition_service")
+local case_policy = require("clever_f.case_policy")
+local direct_preview_planner = require("clever_f.direct_preview_planner")
local domain = require("clever_f.domain")
local feedback_service_factory = require("clever_f.feedback_service")
local motion_executor_factory = require("clever_f.motion_executor")
@@ -73,9 +75,20 @@ function SequenceCoordinator.new(options)
transitions = transitions,
policy = policy_service,
})
+ local lowercase = options.lowercase
+ if lowercase == nil and type(host.lowercase) == "function" then
+ lowercase = function(value)
+ return host:lowercase(value)
+ end
+ end
+ local case_resolver = options.case_resolver
+ or case_policy.new({ lowercase = lowercase })
local target_factory = options.target_factory
or options.target_plan_factory
- or target_plan_factory.new({ policy = policy_service })
+ or target_plan_factory.new({
+ policy = policy_service,
+ case_resolver = case_resolver,
+ })
if type(target_factory) ~= "table" or type(target_factory.build) ~= "function" then
fail("SequenceCoordinator target factory must provide build", 2)
end
@@ -87,6 +100,9 @@ function SequenceCoordinator.new(options)
then
fail("SequenceCoordinator motion factory must build contextual plans", 2)
end
+ local direct_planner = options.direct_planner
+ or options.direct_preview_planner
+ or direct_preview_planner.new({ case_resolver = case_resolver })
local acquisition = options.acquisition
or options.acquisition_service
or acquisition_service_factory.new({
@@ -95,6 +111,7 @@ function SequenceCoordinator.new(options)
transitions = transitions,
policy = policy_service,
feedback = feedback,
+ direct_planner = direct_planner,
target_factory = target_factory,
motion_factory = motion_factory,
})