diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-02-26 20:23:27 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-26 20:23:27 +0800 |
commit | 85caaa70d44b7b18c633aa0b140de5f3f6d3eee7 (patch) | |
tree | 0f1cee3a5f54508e6cf8de4832f10f4ab3fbef56 | |
parent | c619d1da619b362217112d8165e2495860c5b056 (diff) | |
download | rneovim-85caaa70d44b7b18c633aa0b140de5f3f6d3eee7.tar.gz rneovim-85caaa70d44b7b18c633aa0b140de5f3f6d3eee7.tar.bz2 rneovim-85caaa70d44b7b18c633aa0b140de5f3f6d3eee7.zip |
refactor(gen_api_dispatch): avoid trailing spaces (#32632)
Problem:
Generated Lua API bindings may have trailing spaces (e.g. nvim_set_hl).
Solution:
Add leading spaces only if arg_free_code is non-empty.
Also:
- Remove an unnecessary string.format() in write_shifted_output() args.
- Fix incorrect indent for the nlua_push_keydict() below.
-rw-r--r-- | src/nvim/generators/gen_api_dispatch.lua | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/nvim/generators/gen_api_dispatch.lua index c987037324..378297d86a 100644 --- a/src/nvim/generators/gen_api_dispatch.lua +++ b/src/nvim/generators/gen_api_dispatch.lua @@ -791,12 +791,12 @@ local function process_function(fn) local arg_free_code = '' if param[1] == 'Object' then extra = 'true, ' - arg_free_code = 'api_luarefs_free_object(' .. cparam .. ');' + arg_free_code = ' api_luarefs_free_object(' .. cparam .. ');' elseif param[1] == 'DictOf(LuaRef)' then extra = 'true, ' - arg_free_code = 'api_luarefs_free_dict(' .. cparam .. ');' + arg_free_code = ' api_luarefs_free_dict(' .. cparam .. ');' elseif param[1] == 'LuaRef' then - arg_free_code = 'api_free_luaref(' .. cparam .. ');' + arg_free_code = ' api_free_luaref(' .. cparam .. ');' end local errshift = 0 local seterr = '' @@ -813,7 +813,7 @@ local function process_function(fn) ) cparam = '&' .. cparam errshift = 1 -- free incomplete dict on error - arg_free_code = 'api_luarefs_free_keydict(' + arg_free_code = ' api_luarefs_free_keydict(' .. cparam .. ', ' .. string.sub(param_type, 9) @@ -862,9 +862,9 @@ local function process_function(fn) local rev_i = #free_code - i + 1 local code = free_code[rev_i] if i == 1 and not string.match(real_type(fn.parameters[1][1]), '^KeyDict_') then - free_at_exit_code = free_at_exit_code .. ('\n %s'):format(code) + free_at_exit_code = free_at_exit_code .. ('\n%s'):format(code) else - free_at_exit_code = free_at_exit_code .. ('\nexit_%u:\n %s'):format(rev_i, code) + free_at_exit_code = free_at_exit_code .. ('\nexit_%u:\n%s'):format(rev_i, code) end end local err_throw_code = [[ @@ -901,7 +901,7 @@ exit_0: local ret_mode = (ret_type == 'Object') and '&' or '' if fn.has_lua_imp then -- only push onto the Lua stack if we haven't already - write_shifted_output(string.format( + write_shifted_output( [[ if (lua_gettop(lstate) == 0) { nlua_push_%s(lstate, %sret, kNluaPushSpecial | kNluaPushFreeRefs); @@ -909,10 +909,10 @@ exit_0: ]], return_type, ret_mode - )) + ) elseif string.match(ret_type, '^KeyDict_') then write_shifted_output( - ' nlua_push_keydict(lstate, &ret, %s_table);\n', + ' nlua_push_keydict(lstate, &ret, %s_table);\n', string.sub(ret_type, 9) ) else @@ -927,7 +927,6 @@ exit_0: -- NOTE: we currently assume err_throw needs nothing from arena write_shifted_output( - [[ %s %s |