feat(ui): allow to set the highlight namespace per window

- reimplement 'winhl' in terms of highlight namespaces
- check for EOF in screen tests (to indicate a likely crash)
This commit is contained in:
bfredl
2022-07-25 10:16:33 +02:00
parent f7cfca49d6
commit d879331b0d
30 changed files with 596 additions and 244 deletions

View File

@@ -426,3 +426,28 @@ Object nvim_win_call(Window window, LuaRef fun, Error *err)
try_end(err);
return res;
}
/// Set highlight namespace for a window. This will use highlights defined in
/// this namespace, but fall back to global highlights (ns=0) when missing.
///
/// This takes predecence over the 'winhighlight' option.
///
/// @param ns_id the namespace to use
/// @param[out] err Error details, if any
void nvim_win_set_hl_ns(Window window, Integer ns_id, Error *err)
FUNC_API_SINCE(10)
{
win_T *win = find_window_by_handle(window, err);
if (!win) {
return;
}
// -1 is allowed as inherit global namespace
if (ns_id < -1) {
api_set_error(err, kErrorTypeValidation, "no such namespace");
}
win->w_ns_hl = (NS)ns_id;
win->w_hl_needs_update = true;
redraw_later(win, NOT_VALID);
}