diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 14:29:26 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 14:29:26 +0200 |
| commit | 80f3025ed00f8c35ae0c83f4ed754a45d108ea1b (patch) | |
| tree | a755dd3af74541dbfaa4f20ab5b1b00f823ce1e3 /lua/clever_f/sequence_coordinator.lua | |
| parent | 890cedb3003d45ded2327e483675c42fdfe024f1 (diff) | |
Connect encoding and case conversion
Diffstat (limited to 'lua/clever_f/sequence_coordinator.lua')
| -rw-r--r-- | lua/clever_f/sequence_coordinator.lua | 19 |
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, }) |
