summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/clever_f/feedback_service.lua17
-rw-r--r--tests/run.lua14
2 files changed, 31 insertions, 0 deletions
diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua
index 81f913f..138d053 100644
--- a/lua/clever_f/feedback_service.lua
+++ b/lua/clever_f/feedback_service.lua
@@ -6,6 +6,15 @@ FeedbackService.__index = FeedbackService
M.FeedbackService = FeedbackService
M.DEFAULT_LABEL_GROUP = "CleverFDefaultLabel"
+M.Priority = {
+ HIGH = "high",
+ ORDINARY = "ordinary",
+}
+
+local OVERLAY_PRIORITIES = {
+ CleverFCursor = M.Priority.HIGH,
+ CleverFChar = M.Priority.HIGH,
+}
local service_records = setmetatable({}, { __mode = "k" })
@@ -45,6 +54,14 @@ function M.default_label_definition()
return copy(DEFAULT_LABEL_DEFINITION)
end
+function M.overlay_priority(group)
+ local priority = OVERLAY_PRIORITIES[group]
+ if priority == nil then
+ error("unknown feedback overlay group '" .. tostring(group) .. "'", 2)
+ end
+ return priority
+end
+
local function fail(message, level)
error(message, (level or 1) + 1)
end
diff --git a/tests/run.lua b/tests/run.lua
index 77551e1..f02219f 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -4411,6 +4411,20 @@ test("Feature links are evaluated only while their features are enabled", functi
end
end)
+test("Cursor and character overlays use high priority", function()
+ same(
+ feedback_service.Priority.HIGH,
+ feedback_service.overlay_priority("CleverFCursor")
+ )
+ same(
+ feedback_service.Priority.HIGH,
+ feedback_service.overlay_priority("CleverFChar")
+ )
+ fails(function()
+ feedback_service.overlay_priority("Other")
+ end, "unknown feedback overlay group")
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then