diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index b14cd752ae..26a1f4cda9 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -184,8 +184,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 7078ce1dd9..9cd6b3125a 100644 --- a/test/functional/api/highlight_spec.lua +++ b/test/functional/api/highlight_spec.lua @@ -254,6 +254,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()