aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/highlight_group.c
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2023-09-07 18:42:38 +0800
committerglepnir <glephunter@gmail.com>2023-09-09 17:15:58 +0800
commit8afb3a49c0762eb60368aee0314e6de261daa6ef (patch)
treebc954a00873a049f5a3a93cd532f3185d2f8cc38 /src/nvim/highlight_group.c
parent82150ca51bf396e5795b49f6e1cb2faaaa07b28b (diff)
downloadrneovim-8afb3a49c0762eb60368aee0314e6de261daa6ef.tar.gz
rneovim-8afb3a49c0762eb60368aee0314e6de261daa6ef.tar.bz2
rneovim-8afb3a49c0762eb60368aee0314e6de261daa6ef.zip
fix(highlight): add create param in nvim_get_hl
Diffstat (limited to 'src/nvim/highlight_group.c')
-rw-r--r--src/nvim/highlight_group.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/highlight_group.c b/src/nvim/highlight_group.c
index c4d140d1e1..b970e752bb 100644
--- a/src/nvim/highlight_group.c
+++ b/src/nvim/highlight_group.c
@@ -1569,7 +1569,13 @@ Dictionary ns_get_hl_defs(NS ns_id, Dict(get_highlight) *opts, Arena *arena, Err
Boolean link = GET_BOOL_OR_TRUE(opts, get_highlight, link);
int id = -1;
if (HAS_KEY(opts, get_highlight, name)) {
- id = syn_check_group(opts->name.data, opts->name.size);
+ Boolean create = GET_BOOL_OR_TRUE(opts, get_highlight, create);
+ id = create ? syn_check_group(opts->name.data, opts->name.size)
+ : syn_name2id_len(opts->name.data, opts->name.size);
+ if (id == 0 && !create) {
+ Dictionary attrs = ARRAY_DICT_INIT;
+ return attrs;
+ }
} else if (HAS_KEY(opts, get_highlight, id)) {
id = (int)opts->id;
}