summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/clever_f/feedback_service.lua33
-rw-r--r--tests/run.lua19
2 files changed, 52 insertions, 0 deletions
diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua
new file mode 100644
index 0000000..0b9c8cd
--- /dev/null
+++ b/lua/clever_f/feedback_service.lua
@@ -0,0 +1,33 @@
+local M = {}
+
+local DEFAULT_LABEL_DEFINITION = {
+ guifg = "red",
+ guibg = "NONE",
+ gui = {
+ bold = true,
+ underline = true,
+ },
+ ctermfg = "red",
+ ctermbg = "NONE",
+ cterm = {
+ bold = true,
+ underline = true,
+ },
+}
+
+local function copy(value)
+ if type(value) ~= "table" then
+ return value
+ end
+ local result = {}
+ for key, item in pairs(value) do
+ result[key] = copy(item)
+ end
+ return result
+end
+
+function M.default_label_definition()
+ return copy(DEFAULT_LABEL_DEFINITION)
+end
+
+return M
diff --git a/tests/run.lua b/tests/run.lua
index 6c55d0c..082b952 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 feedback_service = require("clever_f.feedback_service")
local case_policy = require("clever_f.case_policy")
local policy = require("clever_f.policy")
local repeat_resolver = require("clever_f.repeat_resolver")
@@ -4214,6 +4215,24 @@ test("Explicit requests stay outside fixed-direction policy", function()
same(1, direction_samples)
end)
+test("Default label fallback covers GUI and terminal rendering", function()
+ local definition = feedback_service.default_label_definition()
+ same("red", definition.guifg)
+ same("NONE", definition.guibg)
+ truthy(definition.gui.bold)
+ truthy(definition.gui.underline)
+ same("red", definition.ctermfg)
+ same("NONE", definition.ctermbg)
+ truthy(definition.cterm.bold)
+ truthy(definition.cterm.underline)
+
+ definition.guifg = "blue"
+ definition.cterm.bold = false
+ local fresh = feedback_service.default_label_definition()
+ same("red", fresh.guifg)
+ truthy(fresh.cterm.bold)
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then