diff options
| -rw-r--r-- | lua/clever_f/feedback_service.lua | 33 | ||||
| -rw-r--r-- | tests/run.lua | 19 |
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 |
