diff options
-rw-r--r-- | .github/workflows/test.yml | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLuarocks.cmake | 5 | ||||
-rw-r--r-- | runtime/CMakeLists.txt | 6 | ||||
-rw-r--r-- | scripts/genvimvim.lua | 2 | ||||
-rw-r--r-- | src/mpack/lmpack.c | 3 | ||||
-rw-r--r-- | src/mpack/lmpack.h | 3 | ||||
-rwxr-xr-x | src/nvim/CMakeLists.txt | 64 | ||||
-rw-r--r-- | src/nvim/generators/gen_api_dispatch.lua | 45 | ||||
-rwxr-xr-x | src/nvim/generators/gen_api_ui_events.lua | 18 | ||||
-rw-r--r-- | src/nvim/generators/gen_eval.lua | 29 | ||||
-rw-r--r-- | src/nvim/generators/gen_events.lua | 12 | ||||
-rw-r--r-- | src/nvim/generators/gen_ex_cmds.lua | 20 | ||||
-rw-r--r-- | src/nvim/generators/gen_options.lua | 10 | ||||
-rw-r--r-- | src/nvim/generators/preload.lua | 9 |
15 files changed, 101 insertions, 128 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7e2b981690..fc400fb346 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -382,7 +382,6 @@ jobs: libuv1-dev \ lua-filesystem \ lua-lpeg \ - lua-mpack \ luajit \ lua-luv-dev # libtree-sitter-dev \ diff --git a/CMakeLists.txt b/CMakeLists.txt index f3111464ea..8ef99e7307 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -160,7 +160,7 @@ foreach(CFGNAME ${CMAKE_CONFIGURATION_TYPES}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFGNAME} ${CMAKE_BINARY_DIR}/lib) endforeach() -set(LUA_DEPENDENCIES lpeg mpack bit) +set(LUA_DEPENDENCIES lpeg) if(NOT LUA_PRG) foreach(CURRENT_LUA_PRG luajit lua5.1 lua5.2 lua) unset(_CHECK_LUA_PRG CACHE) diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index 9c4f2d08eb..a69d27f4b4 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -119,13 +119,8 @@ function(Download ROCK VER) set(CURRENT_DEP ${ROCK} PARENT_SCOPE) endfunction() -Download(mpack 1.0.10-0) Download(lpeg 1.0.2-1) -if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA) - Download(luabitop 1.0.2-3) -endif() - if(USE_BUNDLED_BUSTED) if(WIN32) set(BUSTED_EXE "${DEPS_BIN_DIR}/busted.bat") diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index c6447721a0..5d69962aba 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -9,10 +9,14 @@ file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}) file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax) file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax/vim) +get_directory_property(LUA_GEN DIRECTORY ${PROJECT_SOURCE_DIR}/src/nvim DEFINITION LUA_GEN) +get_directory_property(LUA_GEN_DEPS DIRECTORY ${PROJECT_SOURCE_DIR}/src/nvim DEFINITION LUA_GEN_DEPS) + add_custom_command(OUTPUT ${GENERATED_SYN_VIM} - COMMAND ${LUA_PRG} ${SYN_VIM_GENERATOR} + COMMAND ${LUA_GEN} ${SYN_VIM_GENERATOR} ${PROJECT_SOURCE_DIR}/src/nvim ${GENERATED_SYN_VIM} ${FUNCS_DATA} DEPENDS + ${LUA_GEN_DEPS} ${SYN_VIM_GENERATOR} ${PROJECT_SOURCE_DIR}/src/nvim/ex_cmds.lua ${PROJECT_SOURCE_DIR}/src/nvim/auevents.lua diff --git a/scripts/genvimvim.lua b/scripts/genvimvim.lua index 52bf46399d..9f67d7c417 100644 --- a/scripts/genvimvim.lua +++ b/scripts/genvimvim.lua @@ -144,7 +144,7 @@ end w('\n\nsyn case match') local vimfun_start = 'syn keyword vimFuncName contained ' w('\n\n' .. vimfun_start) -local funcs = mpack.unpack(io.open(funcs_file, 'rb'):read("*all")) +local funcs = mpack.decode(io.open(funcs_file, 'rb'):read("*all")) for _, name in ipairs(funcs) do if name then if lld.line_length > 850 then diff --git a/src/mpack/lmpack.c b/src/mpack/lmpack.c index 957bac37cc..8b45136cae 100644 --- a/src/mpack/lmpack.c +++ b/src/mpack/lmpack.c @@ -1171,6 +1171,9 @@ static const luaL_reg mpack_functions[] = { {NULL, NULL} }; +#ifdef NLUA_WIN32 + __declspec(dllexport) +#endif int luaopen_mpack(lua_State *L) { /* Unpacker */ diff --git a/src/mpack/lmpack.h b/src/mpack/lmpack.h index e35f40fab6..84f786cc8f 100644 --- a/src/mpack/lmpack.h +++ b/src/mpack/lmpack.h @@ -1,3 +1,6 @@ #include <lua.h> +#ifdef NLUA_WIN32 + __declspec(dllexport) +#endif int luaopen_mpack(lua_State *L); diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index 2efcb9486a..f83cd1323f 100755 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -13,6 +13,14 @@ else() target_link_libraries(libuv INTERFACE ${LIBUV_LIBRARIES}) endif() +add_library(nlua0 MODULE) +if(WIN32) + target_compile_definitions(nlua0 PUBLIC LUA_BUILD_AS_DLL NLUA_WIN32) + set_target_properties(nlua0 PROPERTIES ENABLE_EXPORTS TRUE) +elseif(APPLE) + set_target_properties(nlua0 PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") +endif() + find_package(Libluv 1.43.0 REQUIRED) target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBLUV_INCLUDE_DIR}) target_link_libraries(main_lib INTERFACE ${LIBLUV_LIBRARY}) @@ -44,6 +52,7 @@ option(PREFER_LUA "Prefer Lua over LuaJIT in the nvim executable." OFF) if(PREFER_LUA) find_package(Lua 5.1 EXACT REQUIRED) target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LUA_INCLUDE_DIR}) + target_include_directories(nlua0 SYSTEM BEFORE PUBLIC ${LUA_INCLUDE_DIR}) target_link_libraries(main_lib INTERFACE ${LUA_LIBRARIES}) # Passive (not REQUIRED): if LUAJIT_FOUND is not set, fixtures for unittests is skipped. find_package(Luajit) @@ -51,6 +60,10 @@ else() find_package(Luajit REQUIRED) target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LUAJIT_INCLUDE_DIRS}) target_link_libraries(main_lib INTERFACE ${LUAJIT_LIBRARIES}) + target_include_directories(nlua0 SYSTEM BEFORE PUBLIC ${LUAJIT_INCLUDE_DIRS}) + if(WIN32) + target_link_libraries(nlua0 PUBLIC ${LUAJIT_LIBRARIES}) + endif() endif() option(ENABLE_IWYU "Run include-what-you-use with the compiler." OFF) @@ -184,7 +197,7 @@ endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang") if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") target_link_libraries(nvim PRIVATE -Wl,--no-undefined -lsocket) - elseif(NOT APPLE) + else() target_link_libraries(nvim PRIVATE -Wl,--no-undefined) endif() @@ -235,6 +248,7 @@ set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto) set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim/) set(API_DISPATCH_GENERATOR ${GENERATOR_DIR}/gen_api_dispatch.lua) set(API_UI_EVENTS_GENERATOR ${GENERATOR_DIR}/gen_api_ui_events.lua) +set(GENERATOR_PRELOAD ${GENERATOR_DIR}/preload.lua) set(GENERATOR_C_GRAMMAR ${GENERATOR_DIR}/c_grammar.lua) set(GENERATOR_HASHY ${GENERATOR_DIR}/hashy.lua) set(API_METADATA ${PROJECT_BINARY_DIR}/api_metadata.mpack) @@ -286,6 +300,10 @@ target_include_directories(main_lib INTERFACE ${GENERATED_INCLUDES_DIR}) target_include_directories(main_lib INTERFACE "${PROJECT_BINARY_DIR}/cmake.config") target_include_directories(main_lib INTERFACE "${PROJECT_SOURCE_DIR}/src") +target_include_directories(nlua0 PUBLIC "${PROJECT_SOURCE_DIR}/src") +target_include_directories(nlua0 PUBLIC "${PROJECT_BINARY_DIR}/cmake.config") +target_include_directories(nlua0 PUBLIC ${GENERATED_INCLUDES_DIR}) + file(MAKE_DIRECTORY ${TOUCHES_DIR}) file(MAKE_DIRECTORY ${GENERATED_DIR}) file(MAKE_DIRECTORY ${GENERATED_INCLUDES_DIR}) @@ -295,9 +313,12 @@ glob_wrapper(NVIM_HEADERS *.h) glob_wrapper(EXTERNAL_SOURCES ../xdiff/*.c ../mpack/*.c ../cjson/*.c ../klib/*.c) glob_wrapper(EXTERNAL_HEADERS ../xdiff/*.h ../mpack/*.h ../cjson/*.h ../klib/*.h) +glob_wrapper(NLUA0_SOURCES ../mpack/*.c) + if(PREFER_LUA) # luajit not used, use a vendored copy of the bit module list(APPEND EXTERNAL_SOURCES ${PROJECT_SOURCE_DIR}/src/bit.c) + list(APPEND NLUA0_SOURCES ${PROJECT_SOURCE_DIR}/src/bit.c) target_compile_definitions(main_lib INTERFACE NVIM_VENDOR_BIT) endif() @@ -476,16 +497,20 @@ add_custom_command(OUTPUT ${GENERATED_UNICODE_TABLES} ${UNICODE_FILES} ) +set(LUA_GEN ${LUA_GEN_PRG} ${GENERATOR_PRELOAD} ${PROJECT_SOURCE_DIR} $<TARGET_FILE:nlua0>) +set(LUA_GEN_DEPS ${GENERATOR_PRELOAD} $<TARGET_FILE:nlua0>) + add_custom_command( OUTPUT ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA} ${API_METADATA} ${LUA_API_C_BINDINGS} ${GENERATED_KEYSETS_DEFS} - COMMAND ${LUA_GEN_PRG} ${API_DISPATCH_GENERATOR} ${CMAKE_CURRENT_LIST_DIR} + COMMAND ${LUA_GEN} ${API_DISPATCH_GENERATOR} ${GENERATED_API_DISPATCH} ${GENERATED_FUNCS_METADATA} ${API_METADATA} ${LUA_API_C_BINDINGS} ${GENERATED_KEYSETS_DEFS} ${API_HEADERS} DEPENDS + ${LUA_GEN_DEPS} ${API_HEADERS} ${MSGPACK_RPC_HEADERS} ${API_DISPATCH_GENERATOR} @@ -532,13 +557,14 @@ add_custom_command( ${GENERATED_UI_EVENTS_REMOTE} ${GENERATED_UI_EVENTS_METADATA} ${GENERATED_UI_EVENTS_CLIENT} - COMMAND ${LUA_GEN_PRG} ${API_UI_EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR} - ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h - ${GENERATED_UI_EVENTS_CALL} - ${GENERATED_UI_EVENTS_REMOTE} - ${GENERATED_UI_EVENTS_METADATA} - ${GENERATED_UI_EVENTS_CLIENT} + COMMAND ${LUA_GEN} ${API_UI_EVENTS_GENERATOR} + ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h + ${GENERATED_UI_EVENTS_CALL} + ${GENERATED_UI_EVENTS_REMOTE} + ${GENERATED_UI_EVENTS_METADATA} + ${GENERATED_UI_EVENTS_CLIENT} DEPENDS + ${LUA_GEN_DEPS} ${API_UI_EVENTS_GENERATOR} ${GENERATOR_C_GRAMMAR} ${CMAKE_CURRENT_LIST_DIR}/api/ui_events.in.h @@ -564,29 +590,25 @@ list(APPEND NVIM_GENERATED_SOURCES ) add_custom_command(OUTPUT ${GENERATED_EX_CMDS_ENUM} ${GENERATED_EX_CMDS_DEFS} - COMMAND ${LUA_PRG} ${EX_CMDS_GENERATOR} - ${CMAKE_CURRENT_LIST_DIR} ${GENERATED_INCLUDES_DIR} ${GENERATED_DIR} - DEPENDS ${EX_CMDS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/ex_cmds.lua + COMMAND ${LUA_GEN} ${EX_CMDS_GENERATOR} ${GENERATED_INCLUDES_DIR} ${GENERATED_DIR} + DEPENDS ${LUA_GEN_DEPS} ${EX_CMDS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/ex_cmds.lua ) add_custom_command(OUTPUT ${GENERATED_FUNCS} ${FUNCS_DATA} - COMMAND ${LUA_PRG} ${FUNCS_GENERATOR} - ${CMAKE_CURRENT_LIST_DIR} ${LUA_SHARED_MODULE_SOURCE} ${GENERATED_DIR} ${API_METADATA} ${FUNCS_DATA} - DEPENDS ${FUNCS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/eval.lua ${API_METADATA} + COMMAND ${LUA_GEN} ${FUNCS_GENERATOR} ${GENERATED_DIR} ${API_METADATA} ${FUNCS_DATA} + DEPENDS ${LUA_GEN_DEPS} ${FUNCS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/eval.lua ${API_METADATA} ) list(APPEND NVIM_GENERATED_FOR_SOURCES "${GENERATED_FUNCS}") add_custom_command(OUTPUT ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} - COMMAND ${LUA_PRG} ${EVENTS_GENERATOR} - ${CMAKE_CURRENT_LIST_DIR} ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} - DEPENDS ${EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/auevents.lua + COMMAND ${LUA_GEN} ${EVENTS_GENERATOR} ${GENERATED_EVENTS_ENUM} ${GENERATED_EVENTS_NAMES_MAP} + DEPENDS ${LUA_GEN_DEPS} ${EVENTS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/auevents.lua ) add_custom_command(OUTPUT ${GENERATED_OPTIONS} - COMMAND ${LUA_PRG} ${OPTIONS_GENERATOR} - ${CMAKE_CURRENT_LIST_DIR} ${GENERATED_OPTIONS} - DEPENDS ${OPTIONS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/options.lua + COMMAND ${LUA_GEN} ${OPTIONS_GENERATOR} ${GENERATED_OPTIONS} + DEPENDS ${LUA_GEN_DEPS} ${OPTIONS_GENERATOR} ${CMAKE_CURRENT_LIST_DIR}/options.lua ) # NVIM_GENERATED_FOR_SOURCES and NVIM_GENERATED_FOR_HEADERS must be mutually exclusive. @@ -629,6 +651,8 @@ target_sources(main_lib INTERFACE ${EXTERNAL_SOURCES} ${EXTERNAL_HEADERS}) +target_sources(nlua0 PUBLIC ${NLUA0_SOURCES}) + set_target_properties(nvim PROPERTIES EXPORT_COMPILE_COMMANDS ON diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/nvim/generators/gen_api_dispatch.lua index f292c265ec..ad7018e385 100644 --- a/src/nvim/generators/gen_api_dispatch.lua +++ b/src/nvim/generators/gen_api_dispatch.lua @@ -1,40 +1,23 @@ local mpack = require('mpack') --- we need at least 4 arguments since the last two are output files -if arg[1] == '--help' then - print('Usage: genmsgpack.lua args') - print('Args: 1: source directory') - print(' 2: dispatch output file (dispatch_wrappers.generated.h)') - print(' 3: functions metadata output file (funcs_metadata.generated.h)') - print(' 4: API metadata output file (api_metadata.mpack)') - print(' 5: lua C bindings output file (lua_api_c_bindings.generated.c)') - print(' 6: keyset definitions output file (keysets_defs.generated.h)') - print(' rest: C files where API functions are defined') -end -assert(#arg >= 4) -local functions = {} - -local nvimdir = arg[1] -package.path = nvimdir .. '/?.lua;' .. package.path +local hashy = require'generators.hashy' -_G.vim = loadfile(nvimdir..'/../../runtime/lua/vim/shared.lua')() -_G.vim.inspect = loadfile(nvimdir..'/../../runtime/lua/vim/inspect.lua')() +assert(#arg >= 5) +-- output h file with generated dispatch functions (dispatch_wrappers.generated.h) +local dispatch_outputf = arg[1] +-- output h file with packed metadata (funcs_metadata.generated.h) +local funcs_metadata_outputf = arg[2] +-- output metadata mpack file, for use by other build scripts (api_metadata.mpack) +local mpack_outputf = arg[3] +local lua_c_bindings_outputf = arg[4] -- lua_api_c_bindings.generated.c +local keysets_outputf = arg[5] -- keysets_defs.generated.h -local hashy = require'generators.hashy' +local functions = {} -- names of all headers relative to the source root (for inclusion in the -- generated file) local headers = {} --- output h file with generated dispatch functions -local dispatch_outputf = arg[2] --- output h file with packed metadata -local funcs_metadata_outputf = arg[3] --- output metadata mpack file, for use by other build scripts -local mpack_outputf = arg[4] -local lua_c_bindings_outputf = arg[5] -local keysets_outputf = arg[6] - -- set of function names, used to detect duplicates local function_names = {} @@ -94,7 +77,7 @@ local function add_keyset(val) end -- read each input file, parse and append to the api metadata -for i = 7, #arg do +for i = 6, #arg do local full_path = arg[i] local parts = {} for part in string.gmatch(full_path, '[^/]+') do @@ -210,7 +193,7 @@ end -- serialize the API metadata using msgpack and embed into the resulting -- binary for easy querying by clients local funcs_metadata_output = io.open(funcs_metadata_outputf, 'wb') -local packed = mpack.pack(exported_functions) +local packed = mpack.encode(exported_functions) local dump_bin_array = require("generators.dump_bin_array") dump_bin_array(funcs_metadata_output, 'funcs_metadata', packed) funcs_metadata_output:close() @@ -514,7 +497,7 @@ output:write(hashfun) output:close() local mpack_output = io.open(mpack_outputf, 'wb') -mpack_output:write(mpack.pack(functions)) +mpack_output:write(mpack.encode(functions)) mpack_output:close() local function include_headers(output_handle, headers_to_include) diff --git a/src/nvim/generators/gen_api_ui_events.lua b/src/nvim/generators/gen_api_ui_events.lua index bbc6252f14..c6a5d1d2a3 100755 --- a/src/nvim/generators/gen_api_ui_events.lua +++ b/src/nvim/generators/gen_api_ui_events.lua @@ -1,19 +1,15 @@ local mpack = require('mpack') -local nvimdir = arg[1] -package.path = nvimdir .. '/?.lua;' .. package.path - -assert(#arg == 6) -local input = io.open(arg[2], 'rb') -local call_output = io.open(arg[3], 'wb') -local remote_output = io.open(arg[4], 'wb') -local metadata_output = io.open(arg[5], 'wb') -local client_output = io.open(arg[6], 'wb') +assert(#arg == 5) +local input = io.open(arg[1], 'rb') +local call_output = io.open(arg[2], 'wb') +local remote_output = io.open(arg[3], 'wb') +local metadata_output = io.open(arg[4], 'wb') +local client_output = io.open(arg[5], 'wb') local c_grammar = require('generators.c_grammar') local events = c_grammar.grammar:match(input:read('*all')) -_G.vim = loadfile(nvimdir..'/../../runtime/lua/vim/shared.lua')() local hashy = require'generators.hashy' local function write_signature(output, ev, prefix, notype) @@ -194,7 +190,7 @@ for _,ev in ipairs(events) do end end -local packed = mpack.pack(exported_events) +local packed = mpack.encode(exported_events) local dump_bin_array = require("generators.dump_bin_array") dump_bin_array(metadata_output, 'ui_events_metadata', packed) metadata_output:close() diff --git a/src/nvim/generators/gen_eval.lua b/src/nvim/generators/gen_eval.lua index a86dc4233e..15e4c6540a 100644 --- a/src/nvim/generators/gen_eval.lua +++ b/src/nvim/generators/gen_eval.lua @@ -1,28 +1,13 @@ local mpack = require('mpack') -local nvimsrcdir = arg[1] -local shared_file = arg[2] -local autodir = arg[3] -local metadata_file = arg[4] -local funcs_file = arg[5] - -_G.vim = loadfile(shared_file)() - -if nvimsrcdir == '--help' then - print([[ -Usage: - lua gen_eval.lua src/nvim build/src/nvim/auto - -Will generate build/src/nvim/auto/funcs.generated.h with definition of functions -static const array. -]]) - os.exit(0) -end - -package.path = nvimsrcdir .. '/?.lua;' .. package.path +local autodir = arg[1] +local metadata_file = arg[2] +local funcs_file = arg[3] local funcsfname = autodir .. '/funcs.generated.h' +--Will generate funcs.generated.h with definition of functions static const array. + local hashy = require'generators.hashy' local hashpipe = io.open(funcsfname, 'wb') @@ -63,7 +48,7 @@ for _, func in pairs(funcs) do end end -local metadata = mpack.unpack(io.open(metadata_file, 'rb'):read("*all")) +local metadata = mpack.decode(io.open(metadata_file, 'rb'):read("*all")) for _,fun in ipairs(metadata) do if fun.eval then funcs[fun.name] = { @@ -77,7 +62,7 @@ end local func_names = vim.tbl_keys(funcs) table.sort(func_names) local funcsdata = io.open(funcs_file, 'w') -funcsdata:write(mpack.pack(func_names)) +funcsdata:write(mpack.encode(func_names)) funcsdata:close() local neworder, hashfun = hashy.hashy_hash("find_internal_func", func_names, function (idx) diff --git a/src/nvim/generators/gen_events.lua b/src/nvim/generators/gen_events.lua index 8db7f22452..27cec40b03 100644 --- a/src/nvim/generators/gen_events.lua +++ b/src/nvim/generators/gen_events.lua @@ -1,13 +1,5 @@ -if arg[1] == '--help' then - print('Usage: gen_events.lua src/nvim enum_file event_names_file') - os.exit(0) -end - -local nvimsrcdir = arg[1] -local fileio_enum_file = arg[2] -local names_file = arg[3] - -package.path = nvimsrcdir .. '/?.lua;' .. package.path +local fileio_enum_file = arg[1] +local names_file = arg[2] local auevents = require('auevents') local events = auevents.events diff --git a/src/nvim/generators/gen_ex_cmds.lua b/src/nvim/generators/gen_ex_cmds.lua index 26edd33604..76b372eac2 100644 --- a/src/nvim/generators/gen_ex_cmds.lua +++ b/src/nvim/generators/gen_ex_cmds.lua @@ -1,20 +1,8 @@ -local nvimsrcdir = arg[1] -local includedir = arg[2] -local autodir = arg[3] +local includedir = arg[1] +local autodir = arg[2] -if nvimsrcdir == '--help' then - print ([[ -Usage: - lua genex_cmds.lua src/nvim build/include build/src/nvim/auto - -Will generate files build/include/ex_cmds_enum.generated.h with cmdidx_T -enum and build/src/nvim/auto/ex_cmds_defs.generated.h with main Ex commands -definitions. -]]) - os.exit(0) -end - -package.path = nvimsrcdir .. '/?.lua;' .. package.path +-- Will generate files ex_cmds_enum.generated.h with cmdidx_T enum +-- and ex_cmds_defs.generated.h with main Ex commands definitions. local enumfname = includedir .. '/ex_cmds_enum.generated.h' local defsfname = autodir .. '/ex_cmds_defs.generated.h' diff --git a/src/nvim/generators/gen_options.lua b/src/nvim/generators/gen_options.lua index 54b97c5286..35302e1222 100644 --- a/src/nvim/generators/gen_options.lua +++ b/src/nvim/generators/gen_options.lua @@ -1,12 +1,4 @@ -if arg[1] == '--help' then - print('Usage: genoptions.lua src/nvim options_file') - os.exit(0) -end - -local nvimsrcdir = arg[1] -local options_file = arg[2] - -package.path = nvimsrcdir .. '/?.lua;' .. package.path +local options_file = arg[1] local opt_fd = io.open(options_file, 'w') diff --git a/src/nvim/generators/preload.lua b/src/nvim/generators/preload.lua new file mode 100644 index 0000000000..e5c8bd545b --- /dev/null +++ b/src/nvim/generators/preload.lua @@ -0,0 +1,9 @@ +local srcdir = table.remove(arg, 1) +local nlualib = table.remove(arg, 1) +package.path = srcdir .. '/src/nvim/?.lua;' ..srcdir .. '/runtime/lua/?.lua;' .. package.path +_G.vim = require'vim.shared' +_G.vim.inspect = require 'vim.inspect' +package.cpath = package.cpath .. ';' .. nlualib + +arg[0] = table.remove(arg, 1) +return loadfile(arg[0])() |