diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 1bfb314e9f..b51d1b1423 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -186,8 +186,8 @@ void nvim_set_hl(uint64_t channel_id, Integer ns_id, String name, Dict(highlight // Setting URLs directly through highlight attributes is not supported if (HAS_KEY(val, highlight, url)) { - api_free_string(val->url); - val->url = NULL_STRING; + api_set_error(err, kErrorTypeValidation, "Invalid Key: 'url'"); + return; } HlAttrs attrs = dict2hlattrs(val, true, &link_id, err); diff --git a/test/functional/api/highlight_spec.lua b/test/functional/api/highlight_spec.lua index 3be4d83532..6329089936 100644 --- a/test/functional/api/highlight_spec.lua +++ b/test/functional/api/highlight_spec.lua @@ -238,6 +238,10 @@ describe('API: set highlight', function() ) assert_alive() end) + it("'url' is rejected with an error #38162", function() + eq("Invalid Key: 'url'", pcall_err(api.nvim_set_hl, 0, 'Test', { url = 'https://example.com' })) + assert_alive() + end) end) describe('API: get highlight', function()