summaryrefslogtreecommitdiff
path: root/tests/run.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run.lua')
-rw-r--r--tests/run.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/run.lua b/tests/run.lua
index 7ca4e3c..e16f082 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -9,6 +9,7 @@ package.path = table.concat({
local domain = require("clever_f.domain")
local capabilities = require("clever_f.capabilities")
local destination_engine = require("clever_f.destination_engine")
+local direct_preview_planner = require("clever_f.direct_preview_planner")
local feedback_service = require("clever_f.feedback_service")
local case_policy = require("clever_f.case_policy")
local policy = require("clever_f.policy")
@@ -4540,6 +4541,23 @@ test("Cursor suppression requires policy and runtime support", function()
same(1, operation_count(enabled, "suppress_cursor_presentation"))
end)
+test("Direct preview scanning stays on the cursor line", function()
+ local view = text_topology.new({ "abc", "de", "fgh" }, "utf-8")
+ local planner = direct_preview_planner.new()
+ truthy(direct_preview_planner.DirectPreviewPlanner.is(planner))
+
+ local records = planner:scan_current_line(
+ view,
+ domain.Position.new(2, 2),
+ domain.Direction.FORWARD
+ )
+ same(2, #records)
+ same(domain.Position.new(2, 1), records[1].position)
+ same("d", records[1].character)
+ same(domain.Position.new(2, 2), records[2].position)
+ same("e", records[2].character)
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then