diff options
| author | bfredl <bjorn.linse@gmail.com> | 2024-01-22 09:10:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-22 09:10:34 +0100 |
| commit | 21b36c7d7fa351544253316c606651e9ce925b29 (patch) | |
| tree | 3b70dc012c818aac531ae0c31b7c1cca6d49b701 /src/nvim/lua | |
| parent | 12d123959f56636473112d86ec5977ef993c58e5 (diff) | |
| parent | d66ed4ea468d411668713c3777ad3658f18badf3 (diff) | |
| download | rneovim-21b36c7d7fa351544253316c606651e9ce925b29.tar.gz rneovim-21b36c7d7fa351544253316c606651e9ce925b29.tar.bz2 rneovim-21b36c7d7fa351544253316c606651e9ce925b29.zip | |
Merge pull request #27076 from glepnir/extmark_hlgroup
refactor(api): use hl id directly in nvim_buf_set_extmark
Diffstat (limited to 'src/nvim/lua')
| -rw-r--r-- | src/nvim/lua/converter.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/lua/converter.c b/src/nvim/lua/converter.c index 575dc2ce37..91f2db3ac9 100644 --- a/src/nvim/lua/converter.c +++ b/src/nvim/lua/converter.c @@ -17,6 +17,7 @@ #include "nvim/eval/typval_encode.h" #include "nvim/eval/userfunc.h" #include "nvim/gettext_defs.h" +#include "nvim/highlight_group.h" #include "nvim/lua/converter.h" #include "nvim/lua/executor.h" #include "nvim/macros_defs.h" @@ -1324,7 +1325,14 @@ void nlua_pop_keydict(lua_State *L, void *retval, FieldHashfn hashy, char **err_ if (field->type == kObjectTypeNil) { *(Object *)mem = nlua_pop_Object(L, true, err); } else if (field->type == kObjectTypeInteger) { - *(Integer *)mem = nlua_pop_Integer(L, err); + if (field->is_hlgroup && lua_type(L, -1) == LUA_TSTRING) { + size_t name_len; + const char *name = lua_tolstring(L, -1, &name_len); + lua_pop(L, 1); + *(Integer *)mem = name_len > 0 ? syn_check_group(name, name_len) : 0; + } else { + *(Integer *)mem = nlua_pop_Integer(L, err); + } } else if (field->type == kObjectTypeBoolean) { *(Boolean *)mem = nlua_pop_Boolean_strict(L, err); } else if (field->type == kObjectTypeString) { |