diff options
author | Daniel Steinberg <dstein64@users.noreply.github.com> | 2023-07-18 17:02:45 -0400 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2023-10-01 10:02:36 +0200 |
commit | 2615ed879e66a3d05920c47177e77383adc7aca0 (patch) | |
tree | 3df20979c1d664dfd812144284eee5a61020dd40 /src/nvim/api/vim.c | |
parent | be463e7643fb65c49a9a13bd5a1c6fb6ac34ae77 (diff) | |
download | rneovim-2615ed879e66a3d05920c47177e77383adc7aca0.tar.gz rneovim-2615ed879e66a3d05920c47177e77383adc7aca0.tar.bz2 rneovim-2615ed879e66a3d05920c47177e77383adc7aca0.zip |
feat(ui): allow to get the highlight namespace
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r-- | src/nvim/api/vim.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index c55f9592bf..6a38374ade 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -170,6 +170,29 @@ void nvim_set_hl(Integer ns_id, String name, Dict(highlight) *val, Error *err) } } +/// Gets the active highlight namespace. +/// +/// @param opts Optional parameters +/// - winid: (number) |window-ID| for retrieving a window's highlight +/// namespace. A value of -1 is returned when |nvim_win_set_hl_ns()| +/// has not been called for the window (or was called with a namespace +/// of -1). +/// @param[out] err Error details, if any +/// @return Namespace id, or -1 +Integer nvim_get_hl_ns(Dict(get_ns) *opts, Error *err) + FUNC_API_SINCE(12) +{ + if (HAS_KEY(opts, get_ns, winid)) { + win_T *win = find_window_by_handle(opts->winid, err); + if (!win) { + return 0; + } + return win->w_ns_hl; + } else { + return ns_hl_global; + } +} + /// Set active namespace for highlights defined with |nvim_set_hl()|. This can be set for /// a single window, see |nvim_win_set_hl_ns()|. /// |