aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2024-01-17 20:14:26 +0800
committerglepnir <glephunter@gmail.com>2024-01-20 21:31:11 +0800
commit646fdf1073433e2bdeec3433f6cbdf8f4be37098 (patch)
treeabb6c88e011a52bc3900aee40fe0cab6ce77a95d /src/nvim/lua
parentba9f86a9cee58dc32ab875da1fd7eac9bc9e88d7 (diff)
downloadrneovim-646fdf1073433e2bdeec3433f6cbdf8f4be37098.tar.gz
rneovim-646fdf1073433e2bdeec3433f6cbdf8f4be37098.tar.bz2
rneovim-646fdf1073433e2bdeec3433f6cbdf8f4be37098.zip
refactor(api): use hl id directly in nvim_buf_set_extmark
Diffstat (limited to 'src/nvim/lua')
-rw-r--r--src/nvim/lua/converter.c10
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) {