diff options
| -rw-r--r-- | lua/clever_f/feedback_service.lua | 12 | ||||
| -rw-r--r-- | tests/run.lua | 23 |
2 files changed, 35 insertions, 0 deletions
diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua index f066a08..80824af 100644 --- a/lua/clever_f/feedback_service.lua +++ b/lua/clever_f/feedback_service.lua @@ -124,6 +124,18 @@ function FeedbackService:evaluate_feature_links() source = "colorscheme", applied = false, } + else + record.host:define_highlight_group( + group, + { link = rule.target }, + { default = true } + ) + results[group] = { + group = group, + target = rule.target, + source = "fallback", + applied = true, + } end end end diff --git a/tests/run.lua b/tests/run.lua index e1c7e78..b3ba0dd 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -4335,6 +4335,29 @@ test("Feature link evaluation preserves colorscheme CleverF groups", function() end end) +test("Missing feature groups receive fallback links", function() + local host = MemoryHost.new() + local feedback = feedback_service.new(host) + + local results = feedback:evaluate_feature_links() + same("fallback", results.CleverFCursor.source) + truthy(results.CleverFCursor.applied) + local groups = host:highlight_groups() + same(results.CleverFCursor.target, groups.CleverFCursor.link) + + local fallback_definition + for _, operation in ipairs(host:operations()) do + if operation.operation == "define_highlight_group" + and operation.name == "CleverFCursor" + then + fallback_definition = operation + end + end + truthy(fallback_definition ~= nil) + truthy(fallback_definition.options.default) + same(nil, fallback_definition.options.force) +end) + for _, item in ipairs(tests) do local ok, failure = xpcall(item.body, debug.traceback) if not ok then |
