aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md12
-rw-r--r--cmake/RunTests.cmake1
-rw-r--r--runtime/CMakeLists.txt2
-rwxr-xr-xscripts/lintdoc.lua4
-rwxr-xr-xscripts/release.sh2
-rw-r--r--src/.luarc.json24
-rw-r--r--src/gen/c_grammar.lua (renamed from src/nvim/generators/c_grammar.lua)0
-rw-r--r--src/gen/cdoc_grammar.lua (renamed from scripts/cdoc_grammar.lua)0
-rw-r--r--src/gen/cdoc_parser.lua (renamed from scripts/cdoc_parser.lua)4
-rw-r--r--src/gen/dump_bin_array.lua (renamed from src/nvim/generators/dump_bin_array.lua)0
-rw-r--r--src/gen/gen_api_dispatch.lua (renamed from src/nvim/generators/gen_api_dispatch.lua)8
-rw-r--r--src/gen/gen_api_ui_events.lua (renamed from src/nvim/generators/gen_api_ui_events.lua)4
-rw-r--r--src/gen/gen_char_blob.lua (renamed from src/nvim/generators/gen_char_blob.lua)0
-rw-r--r--src/gen/gen_declarations.lua (renamed from src/nvim/generators/gen_declarations.lua)2
-rw-r--r--src/gen/gen_eval.lua (renamed from src/nvim/generators/gen_eval.lua)4
-rwxr-xr-xsrc/gen/gen_eval_files.lua (renamed from scripts/gen_eval_files.lua)10
-rw-r--r--src/gen/gen_events.lua (renamed from src/nvim/generators/gen_events.lua)2
-rw-r--r--src/gen/gen_ex_cmds.lua (renamed from src/nvim/generators/gen_ex_cmds.lua)2
-rw-r--r--src/gen/gen_filetype.lua (renamed from scripts/gen_filetype.lua)0
-rw-r--r--src/gen/gen_help_html.lua (renamed from scripts/gen_help_html.lua)0
-rw-r--r--src/gen/gen_lsp.lua (renamed from scripts/gen_lsp.lua)10
-rw-r--r--src/gen/gen_options.lua (renamed from src/nvim/generators/gen_options.lua)4
-rwxr-xr-xsrc/gen/gen_vimdoc.lua (renamed from scripts/gen_vimdoc.lua)8
-rw-r--r--src/gen/gen_vimvim.lua (renamed from src/nvim/generators/gen_vimvim.lua)6
-rw-r--r--src/gen/hashy.lua (renamed from src/nvim/generators/hashy.lua)0
-rw-r--r--src/gen/luacats_grammar.lua (renamed from scripts/luacats_grammar.lua)0
-rw-r--r--src/gen/luacats_parser.lua (renamed from scripts/luacats_parser.lua)2
-rw-r--r--src/gen/nvim_version.lua.in (renamed from src/nvim/generators/nvim_version.lua.in)0
-rw-r--r--src/gen/preload.lua6
-rw-r--r--src/gen/preload_nlua.lua (renamed from src/nvim/generators/preload.lua)8
-rw-r--r--src/gen/util.lua (renamed from scripts/util.lua)0
-rw-r--r--src/nvim/CMakeLists.txt18
-rw-r--r--src/nvim/func_attr.h2
-rw-r--r--test/.luarc.json1
-rw-r--r--test/functional/script/luacats_grammar_spec.lua2
-rw-r--r--test/functional/script/luacats_parser_spec.lua2
-rw-r--r--test/functional/script/text_utils_spec.lua2
-rw-r--r--test/lua_runner.lua6
38 files changed, 98 insertions, 60 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2cf93e74ed..06364fde94 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -256,17 +256,17 @@ make lintdoc
```
If you need to modify or debug the documentation flow, these are the main files:
-- `./scripts/gen_vimdoc.lua`:
+- `./src/gen/gen_vimdoc.lua`:
Main doc generator. Parses C and Lua files to render vimdoc files.
-- `./scripts/luacats_parser.lua`:
+- `./src/gen/luacats_parser.lua`:
Documentation parser for Lua files.
-- `./scripts/cdoc_parser.lua`:
+- `./src/gen/cdoc_parser.lua`:
Documentation parser for C files.
-- `./scripts/luacats_grammar.lua`:
+- `./src/gen/luacats_grammar.lua`:
Lpeg grammar for LuaCATS
-- `./scripts/cdoc_grammar.lua`:
+- `./src/gen/cdoc_grammar.lua`:
Lpeg grammar for C doc comments
-- `./scripts/gen_eval_files.lua`:
+- `./src/gen/gen_eval_files.lua`:
Generates documentation and Lua type files from metadata files:
```
runtime/lua/vim/* => runtime/doc/lua.txt
diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake
index add83bc9cb..ae93f3e158 100644
--- a/cmake/RunTests.cmake
+++ b/cmake/RunTests.cmake
@@ -71,6 +71,7 @@ execute_process(
COMMAND ${NVIM_PRG} -ll ${WORKING_DIR}/test/lua_runner.lua ${DEPS_INSTALL_DIR} busted -v -o test.busted.outputHandlers.nvim
--lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
--lpath=${BUILD_DIR}/?.lua
+ --lpath=${WORKING_DIR}/src/?.lua
--lpath=${WORKING_DIR}/runtime/lua/?.lua
--lpath=?.lua
${BUSTED_ARGS}
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index 9f108b4df4..d103b5f4d7 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -3,7 +3,7 @@ set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
-set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/nvim/generators/gen_vimvim.lua)
+set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/src/gen/gen_vimvim.lua)
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax/vim)
diff --git a/scripts/lintdoc.lua b/scripts/lintdoc.lua
index 5e78b4cdcb..78cf9fed72 100755
--- a/scripts/lintdoc.lua
+++ b/scripts/lintdoc.lua
@@ -14,7 +14,7 @@ print('Running lintdoc ...')
-- :helptags checks for duplicate tags.
vim.cmd [[ helptags ALL ]]
-require('scripts.gen_help_html').run_validate()
-require('scripts.gen_help_html').test_gen()
+require('src.gen.gen_help_html').run_validate()
+require('src.gen.gen_help_html').test_gen()
print('lintdoc PASSED.')
diff --git a/scripts/release.sh b/scripts/release.sh
index 257fa127c4..58acbf85a0 100755
--- a/scripts/release.sh
+++ b/scripts/release.sh
@@ -59,7 +59,7 @@ _do_release_commit() {
$__sed -i.bk 's/(NVIM_API_PRERELEASE) true/\1 false/' CMakeLists.txt
build/bin/nvim --api-info > "test/functional/fixtures/api_level_$__API_LEVEL.mpack"
git add "test/functional/fixtures/api_level_${__API_LEVEL}.mpack"
- VIMRUNTIME=./runtime build/bin/nvim -u NONE -l scripts/gen_vimdoc.lua
+ VIMRUNTIME=./runtime build/bin/nvim -u NONE -l src/gen/preload.lua src/gen/gen_vimdoc.lua
git add -u -- runtime/doc/
fi
diff --git a/src/.luarc.json b/src/.luarc.json
new file mode 100644
index 0000000000..06f49f65d0
--- /dev/null
+++ b/src/.luarc.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
+ "runtime": {
+ "version": "LuaJIT"
+ },
+ "workspace": {
+ "library": [
+ "../runtime/lua",
+ "${3rd}/luv/library"
+ ],
+ "checkThirdParty": "Disable"
+ },
+ "diagnostics": {
+ "groupFileStatus": {
+ "strict": "Opened",
+ "strong": "Opened"
+ },
+ "groupSeverity": {
+ "strong": "Warning",
+ "strict": "Warning"
+ },
+ "unusedLocalExclude": [ "_*" ]
+ }
+}
diff --git a/src/nvim/generators/c_grammar.lua b/src/gen/c_grammar.lua
index 890c260843..890c260843 100644
--- a/src/nvim/generators/c_grammar.lua
+++ b/src/gen/c_grammar.lua
diff --git a/scripts/cdoc_grammar.lua b/src/gen/cdoc_grammar.lua
index 6a7610883b..6a7610883b 100644
--- a/scripts/cdoc_grammar.lua
+++ b/src/gen/cdoc_grammar.lua
diff --git a/scripts/cdoc_parser.lua b/src/gen/cdoc_parser.lua
index 5f0dc7be2c..38314c0efd 100644
--- a/scripts/cdoc_parser.lua
+++ b/src/gen/cdoc_parser.lua
@@ -1,5 +1,5 @@
-local cdoc_grammar = require('scripts.cdoc_grammar')
-local c_grammar = require('src.nvim.generators.c_grammar')
+local cdoc_grammar = require('gen.cdoc_grammar')
+local c_grammar = require('gen.c_grammar')
--- @class nvim.cdoc.parser.param
--- @field name string
diff --git a/src/nvim/generators/dump_bin_array.lua b/src/gen/dump_bin_array.lua
index c6cda25e73..c6cda25e73 100644
--- a/src/nvim/generators/dump_bin_array.lua
+++ b/src/gen/dump_bin_array.lua
diff --git a/src/nvim/generators/gen_api_dispatch.lua b/src/gen/gen_api_dispatch.lua
index 378297d86a..a5d0890c2f 100644
--- a/src/nvim/generators/gen_api_dispatch.lua
+++ b/src/gen/gen_api_dispatch.lua
@@ -7,7 +7,7 @@
local mpack = vim.mpack
-local hashy = require 'generators.hashy'
+local hashy = require 'gen.hashy'
local pre_args = 7
assert(#arg >= pre_args)
@@ -31,7 +31,7 @@ local headers = {}
-- set of function names, used to detect duplicates
local function_names = {}
-local c_grammar = require('generators.c_grammar')
+local c_grammar = require('gen.c_grammar')
local startswith = vim.startswith
@@ -150,7 +150,7 @@ end
-- Export functions under older deprecated names.
-- These will be removed eventually.
-local deprecated_aliases = require('api.dispatch_deprecated')
+local deprecated_aliases = require('nvim.api.dispatch_deprecated')
for _, f in ipairs(shallowcopy(functions)) do
local ismethod = false
if startswith(f.name, 'nvim_') then
@@ -300,7 +300,7 @@ for i, item in ipairs(types) do
end
local packed = table.concat(pieces)
-local dump_bin_array = require('generators.dump_bin_array')
+local dump_bin_array = require('gen.dump_bin_array')
dump_bin_array(api_metadata_output, 'packed_api_metadata', packed)
api_metadata_output:close()
diff --git a/src/nvim/generators/gen_api_ui_events.lua b/src/gen/gen_api_ui_events.lua
index a3bb76cb91..8ba67dafff 100644
--- a/src/nvim/generators/gen_api_ui_events.lua
+++ b/src/gen/gen_api_ui_events.lua
@@ -7,10 +7,10 @@ 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 c_grammar = require('gen.c_grammar')
local events = c_grammar.grammar:match(input:read('*all'))
-local hashy = require 'generators.hashy'
+local hashy = require 'gen.hashy'
local function write_signature(output, ev, prefix, notype)
output:write('(' .. prefix)
diff --git a/src/nvim/generators/gen_char_blob.lua b/src/gen/gen_char_blob.lua
index c40e0d6e82..c40e0d6e82 100644
--- a/src/nvim/generators/gen_char_blob.lua
+++ b/src/gen/gen_char_blob.lua
diff --git a/src/nvim/generators/gen_declarations.lua b/src/gen/gen_declarations.lua
index 6e1ea92572..582ac756b4 100644
--- a/src/nvim/generators/gen_declarations.lua
+++ b/src/gen/gen_declarations.lua
@@ -1,4 +1,4 @@
-local grammar = require('generators.c_grammar').grammar
+local grammar = require('gen.c_grammar').grammar
--- @param fname string
--- @return string?
diff --git a/src/nvim/generators/gen_eval.lua b/src/gen/gen_eval.lua
index 0b6ee6cb24..9d2f2f7523 100644
--- a/src/nvim/generators/gen_eval.lua
+++ b/src/gen/gen_eval.lua
@@ -8,7 +8,7 @@ local funcsfname = autodir .. '/funcs.generated.h'
--Will generate funcs.generated.h with definition of functions static const array.
-local hashy = require 'generators.hashy'
+local hashy = require 'gen.hashy'
local hashpipe = assert(io.open(funcsfname, 'wb'))
@@ -47,7 +47,7 @@ hashpipe:write([[
]])
-local funcs = require('eval').funcs
+local funcs = require('nvim.eval').funcs
for _, func in pairs(funcs) do
if func.float_func then
func.func = 'float_op_wrapper'
diff --git a/scripts/gen_eval_files.lua b/src/gen/gen_eval_files.lua
index aaf76a0411..74e45507e5 100755
--- a/scripts/gen_eval_files.lua
+++ b/src/gen/gen_eval_files.lua
@@ -2,7 +2,7 @@
-- Generator for various vimdoc and Lua type files
-local util = require('scripts.util')
+local util = require('gen.util')
local fmt = string.format
local DEP_API_METADATA = 'build/funcs_metadata.mpack'
@@ -259,7 +259,7 @@ end
local function get_api_meta()
local ret = {} --- @type table<string, vim.EvalFn>
- local cdoc_parser = require('scripts.cdoc_parser')
+ local cdoc_parser = require('gen.cdoc_parser')
local f = 'src/nvim/api'
@@ -469,7 +469,7 @@ end
--- @return table<string, vim.EvalFn>
local function get_eval_meta()
- return require('src/nvim/eval').funcs
+ return require('nvim.eval').funcs
end
--- Generates LuaLS docstring for a Vimscript "eval" function.
@@ -782,7 +782,7 @@ end
--- @return table<string,vim.option_meta>
local function get_option_meta()
- local opts = require('src/nvim/options').options
+ local opts = require('nvim.options').options
local optinfo = vim.api.nvim_get_all_options_info()
local ret = {} --- @type table<string,vim.option_meta>
for _, o in ipairs(opts) do
@@ -806,7 +806,7 @@ end
--- @return table<string,vim.option_meta>
local function get_vvar_meta()
- local info = require('src/nvim/vvars').vars
+ local info = require('nvim.vvars').vars
local ret = {} --- @type table<string,vim.option_meta>
for name, o in pairs(info) do
o.desc = dedent(o.desc)
diff --git a/src/nvim/generators/gen_events.lua b/src/gen/gen_events.lua
index 8c87815a74..77f766bb28 100644
--- a/src/nvim/generators/gen_events.lua
+++ b/src/gen/gen_events.lua
@@ -1,7 +1,7 @@
local fileio_enum_file = arg[1]
local names_file = arg[2]
-local auevents = require('auevents')
+local auevents = require('nvim.auevents')
local events = auevents.events
local enum_tgt = io.open(fileio_enum_file, 'w')
diff --git a/src/nvim/generators/gen_ex_cmds.lua b/src/gen/gen_ex_cmds.lua
index e8d1aac182..6c03e8fc4d 100644
--- a/src/nvim/generators/gen_ex_cmds.lua
+++ b/src/gen/gen_ex_cmds.lua
@@ -11,7 +11,7 @@ local enumfile = io.open(enumfname, 'w')
local defsfile = io.open(defsfname, 'w')
local bit = require 'bit'
-local ex_cmds = require('ex_cmds')
+local ex_cmds = require('nvim.ex_cmds')
local defs = ex_cmds.cmds
local flags = ex_cmds.flags
diff --git a/scripts/gen_filetype.lua b/src/gen/gen_filetype.lua
index 18b53f1ea4..18b53f1ea4 100644
--- a/scripts/gen_filetype.lua
+++ b/src/gen/gen_filetype.lua
diff --git a/scripts/gen_help_html.lua b/src/gen/gen_help_html.lua
index 53a65fd65f..53a65fd65f 100644
--- a/scripts/gen_help_html.lua
+++ b/src/gen/gen_help_html.lua
diff --git a/scripts/gen_lsp.lua b/src/gen/gen_lsp.lua
index 3e419c7d59..38792307e4 100644
--- a/scripts/gen_lsp.lua
+++ b/src/gen/gen_lsp.lua
@@ -4,9 +4,9 @@ local USAGE = [[
Generates lua-ls annotations for lsp.
USAGE:
-nvim -l scripts/gen_lsp.lua gen # by default, this will overwrite runtime/lua/vim/lsp/_meta/protocol.lua
-nvim -l scripts/gen_lsp.lua gen --version 3.18 --out runtime/lua/vim/lsp/_meta/protocol.lua
-nvim -l scripts/gen_lsp.lua gen --version 3.18 --methods --capabilities
+nvim -l src/gen/gen_lsp.lua gen # by default, this will overwrite runtime/lua/vim/lsp/_meta/protocol.lua
+nvim -l src/gen/gen_lsp.lua gen --version 3.18 --out runtime/lua/vim/lsp/_meta/protocol.lua
+nvim -l src/gen/gen_lsp.lua gen --version 3.18 --methods --capabilities
]]
local DEFAULT_LSP_VERSION = '3.18'
@@ -211,13 +211,13 @@ function M.gen(opt)
local output = {
'--' .. '[[',
- 'THIS FILE IS GENERATED by scripts/gen_lsp.lua',
+ 'THIS FILE IS GENERATED by scr/gen/gen_lsp.lua',
'DO NOT EDIT MANUALLY',
'',
'Based on LSP protocol ' .. opt.version,
'',
'Regenerate:',
- ([=[nvim -l scripts/gen_lsp.lua gen --version %s]=]):format(DEFAULT_LSP_VERSION),
+ ([=[nvim -l scr/gen/gen_lsp.lua gen --version %s]=]):format(DEFAULT_LSP_VERSION),
'--' .. ']]',
'',
'---@meta',
diff --git a/src/nvim/generators/gen_options.lua b/src/gen/gen_options.lua
index e5dba90925..1947297a0e 100644
--- a/src/nvim/generators/gen_options.lua
+++ b/src/gen/gen_options.lua
@@ -1,5 +1,5 @@
--- @module 'nvim.options'
-local options = require('options')
+local options = require('nvim.options')
local options_meta = options.options
local cstr = options.cstr
local valid_scopes = options.valid_scopes
@@ -418,7 +418,7 @@ end
--- @param option_index table<string,string>
local function gen_map(output_file, option_index)
-- Generate option index map.
- local hashy = require('generators.hashy')
+ local hashy = require('gen.hashy')
local neworder, hashfun = hashy.hashy_hash(
'find_option',
diff --git a/scripts/gen_vimdoc.lua b/src/gen/gen_vimdoc.lua
index d200050fe1..2fe7224ea5 100755
--- a/scripts/gen_vimdoc.lua
+++ b/src/gen/gen_vimdoc.lua
@@ -16,9 +16,9 @@
--- parameter is marked as [out].
--- - Each function documentation is separated by a single line.
-local luacats_parser = require('scripts.luacats_parser')
-local cdoc_parser = require('scripts.cdoc_parser')
-local util = require('scripts.util')
+local luacats_parser = require('gen.luacats_parser')
+local cdoc_parser = require('gen.cdoc_parser')
+local util = require('gen.util')
local fmt = string.format
@@ -844,7 +844,7 @@ local function get_script_path()
end
local script_path = get_script_path()
-local base_dir = vim.fs.dirname(vim.fs.dirname(script_path))
+local base_dir = vim.fs.dirname(vim.fs.dirname(vim.fs.dirname(script_path)))
local function delete_lines_below(doc_file, tokenstr)
local lines = {} --- @type string[]
diff --git a/src/nvim/generators/gen_vimvim.lua b/src/gen/gen_vimvim.lua
index 3817735a55..d2b1f48a4c 100644
--- a/src/nvim/generators/gen_vimvim.lua
+++ b/src/gen/gen_vimvim.lua
@@ -15,9 +15,9 @@ local function w(s)
end
end
-local options = require('options')
-local auevents = require('auevents')
-local ex_cmds = require('ex_cmds')
+local options = require('nvim.options')
+local auevents = require('nvim.auevents')
+local ex_cmds = require('nvim.ex_cmds')
local function cmd_kw(prev_cmd, cmd)
if not prev_cmd then
diff --git a/src/nvim/generators/hashy.lua b/src/gen/hashy.lua
index 74b7655324..74b7655324 100644
--- a/src/nvim/generators/hashy.lua
+++ b/src/gen/hashy.lua
diff --git a/scripts/luacats_grammar.lua b/src/gen/luacats_grammar.lua
index b700bcf58f..b700bcf58f 100644
--- a/scripts/luacats_grammar.lua
+++ b/src/gen/luacats_grammar.lua
diff --git a/scripts/luacats_parser.lua b/src/gen/luacats_parser.lua
index 8a50077aa8..36bdc44076 100644
--- a/scripts/luacats_parser.lua
+++ b/src/gen/luacats_parser.lua
@@ -1,4 +1,4 @@
-local luacats_grammar = require('scripts.luacats_grammar')
+local luacats_grammar = require('gen.luacats_grammar')
--- @class nvim.luacats.parser.param : nvim.luacats.Param
diff --git a/src/nvim/generators/nvim_version.lua.in b/src/gen/nvim_version.lua.in
index c29141fc68..c29141fc68 100644
--- a/src/nvim/generators/nvim_version.lua.in
+++ b/src/gen/nvim_version.lua.in
diff --git a/src/gen/preload.lua b/src/gen/preload.lua
new file mode 100644
index 0000000000..4856d8d7a1
--- /dev/null
+++ b/src/gen/preload.lua
@@ -0,0 +1,6 @@
+local srcdir = table.remove(arg, 1)
+
+package.path = (srcdir .. '/src/?.lua;') .. (srcdir .. '/runtime/lua/?.lua;') .. package.path
+
+arg[0] = table.remove(arg, 1)
+return loadfile(arg[0])()
diff --git a/src/nvim/generators/preload.lua b/src/gen/preload_nlua.lua
index e14671074c..a1d89105bc 100644
--- a/src/nvim/generators/preload.lua
+++ b/src/gen/preload_nlua.lua
@@ -1,8 +1,12 @@
local srcdir = table.remove(arg, 1)
local nlualib = table.remove(arg, 1)
local gendir = table.remove(arg, 1)
-package.path = srcdir .. '/src/nvim/?.lua;' .. srcdir .. '/runtime/lua/?.lua;' .. package.path
-package.path = gendir .. '/?.lua;' .. package.path
+
+package.path = (srcdir .. '/src/?.lua;')
+ .. (srcdir .. '/runtime/lua/?.lua;')
+ .. (gendir .. '/?.lua;')
+ .. package.path
+
_G.vim = require 'vim.shared'
_G.vim.inspect = require 'vim.inspect'
package.cpath = package.cpath .. ';' .. nlualib
diff --git a/scripts/util.lua b/src/gen/util.lua
index 5940221abe..5940221abe 100644
--- a/scripts/util.lua
+++ b/src/gen/util.lua
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 111a6567ec..8112045d11 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -292,7 +292,7 @@ set(UI_METADATA ${PROJECT_BINARY_DIR}/ui_metadata.mpack)
set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim)
set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto)
set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include)
-set(GENERATOR_DIR ${CMAKE_CURRENT_LIST_DIR}/generators)
+set(GENERATOR_DIR ${PROJECT_SOURCE_DIR}/src/gen)
set(GEN_EVAL_TOUCH ${TOUCHES_DIR}/gen_doc_eval)
set(LUAJIT_RUNTIME_DIR ${DEPS_PREFIX}/share/luajit-2.1/jit)
set(NVIM_RUNTIME_DIR ${PROJECT_SOURCE_DIR}/runtime)
@@ -306,7 +306,8 @@ set(EX_CMDS_GENERATOR ${GENERATOR_DIR}/gen_ex_cmds.lua)
set(FUNCS_GENERATOR ${GENERATOR_DIR}/gen_eval.lua)
set(GENERATOR_C_GRAMMAR ${GENERATOR_DIR}/c_grammar.lua)
set(GENERATOR_HASHY ${GENERATOR_DIR}/hashy.lua)
-set(GENERATOR_PRELOAD ${GENERATOR_DIR}/preload.lua)
+set(GENERATOR_PRELOAD ${GENERATOR_DIR}/preload_nlua.lua)
+set(NVIM_LUA_PRELOAD ${GENERATOR_DIR}/preload.lua)
set(HEADER_GENERATOR ${GENERATOR_DIR}/gen_declarations.lua)
set(OPTIONS_GENERATOR ${GENERATOR_DIR}/gen_options.lua)
@@ -514,6 +515,9 @@ add_custom_command(
set(LUA_GEN ${LUA_GEN_PRG} ${GENERATOR_PRELOAD} ${PROJECT_SOURCE_DIR} $<TARGET_FILE:nlua0> ${PROJECT_BINARY_DIR})
set(LUA_GEN_DEPS ${GENERATOR_PRELOAD} $<TARGET_FILE:nlua0>)
+# Like LUA_GEN but includes also vim.fn, vim.api, vim.uv, etc
+set(NVIM_LUA $<TARGET_FILE:nvim_bin> -u NONE -l ${NVIM_LUA_PRELOAD} ${PROJECT_SOURCE_DIR})
+
# NVIM_GENERATED_FOR_HEADERS: generated headers to be included in headers
# NVIM_GENERATED_FOR_SOURCES: generated headers to be included in sources
# These lists must be mutually exclusive.
@@ -937,12 +941,12 @@ file(GLOB LUA_SOURCES CONFIGURE_DEPENDS
)
add_target(doc-vim
- COMMAND $<TARGET_FILE:nvim_bin> -u NONE -l scripts/gen_vimdoc.lua
+ COMMAND ${NVIM_LUA} src/gen/gen_vimdoc.lua
DEPENDS
nvim
${API_SOURCES}
${LUA_SOURCES}
- ${PROJECT_SOURCE_DIR}/scripts/gen_vimdoc.lua
+ ${PROJECT_SOURCE_DIR}/src/gen/gen_vimdoc.lua
${NVIM_RUNTIME_DIR}/doc/api.txt
${NVIM_RUNTIME_DIR}/doc/diagnostic.txt
${NVIM_RUNTIME_DIR}/doc/lsp.txt
@@ -951,11 +955,11 @@ add_target(doc-vim
)
add_target(doc-eval
- COMMAND $<TARGET_FILE:nvim_bin> -u NONE -l ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua
+ COMMAND ${NVIM_LUA} ${PROJECT_SOURCE_DIR}/src/gen/gen_eval_files.lua
DEPENDS
nvim
${FUNCS_METADATA}
- ${PROJECT_SOURCE_DIR}/scripts/gen_eval_files.lua
+ ${PROJECT_SOURCE_DIR}/src/gen/gen_eval_files.lua
${PROJECT_SOURCE_DIR}/src/nvim/eval.lua
${PROJECT_SOURCE_DIR}/src/nvim/options.lua
${PROJECT_SOURCE_DIR}/src/nvim/vvars.lua
@@ -966,7 +970,7 @@ add_custom_target(doc)
add_dependencies(doc doc-vim doc-eval)
add_target(lintdoc
- COMMAND $<TARGET_FILE:nvim_bin> -u NONE -l scripts/lintdoc.lua
+ COMMAND ${NVIM_LUA} scripts/lintdoc.lua
DEPENDS ${DOCFILES}
CUSTOM_COMMAND_ARGS USES_TERMINAL)
add_dependencies(lintdoc nvim)
diff --git a/src/nvim/func_attr.h b/src/nvim/func_attr.h
index 43af880767..e19a0acd5d 100644
--- a/src/nvim/func_attr.h
+++ b/src/nvim/func_attr.h
@@ -1,6 +1,6 @@
// Undefined DEFINE_FUNC_ATTRIBUTES and undefined DEFINE_EMPTY_ATTRIBUTES
// leaves file with untouched FUNC_ATTR_* macros. This variant is used for
-// scripts/gen_declarations.lua.
+// src/gen/gen_declarations.lua.
//
// Empty macros are used for *.c files.
// (undefined DEFINE_FUNC_ATTRIBUTES and defined DEFINE_EMPTY_ATTRIBUTES)
diff --git a/test/.luarc.json b/test/.luarc.json
index 1de363557d..f63e15bb41 100644
--- a/test/.luarc.json
+++ b/test/.luarc.json
@@ -6,6 +6,7 @@
"workspace": {
"library": [
"../runtime/lua",
+ "../src",
"../build/usr/share/lua/5.1",
"../build",
"${3rd}/busted/library",
diff --git a/test/functional/script/luacats_grammar_spec.lua b/test/functional/script/luacats_grammar_spec.lua
index 6e73f6894b..2fcd0adfa4 100644
--- a/test/functional/script/luacats_grammar_spec.lua
+++ b/test/functional/script/luacats_grammar_spec.lua
@@ -2,7 +2,7 @@ local t = require('test.testutil')
local eq = t.eq
-local grammar = require('scripts/luacats_grammar')
+local grammar = require('gen.luacats_grammar')
describe('luacats grammar', function()
--- @param text string
diff --git a/test/functional/script/luacats_parser_spec.lua b/test/functional/script/luacats_parser_spec.lua
index bc87b38eca..f689f5a22f 100644
--- a/test/functional/script/luacats_parser_spec.lua
+++ b/test/functional/script/luacats_parser_spec.lua
@@ -2,7 +2,7 @@ local t = require('test.testutil')
local eq = t.eq
-local parser = require('scripts/luacats_parser')
+local parser = require('gen.luacats_parser')
--- @param name string
--- @param text string
diff --git a/test/functional/script/text_utils_spec.lua b/test/functional/script/text_utils_spec.lua
index 74098b9287..72239f5f5e 100644
--- a/test/functional/script/text_utils_spec.lua
+++ b/test/functional/script/text_utils_spec.lua
@@ -11,7 +11,7 @@ local function md_to_vimdoc(text, start_indent, indent, text_width)
start_indent = start_indent or 0
indent = indent or 0
text_width = text_width or 70
- local util = require('scripts/util')
+ local util = require('src/gen/util')
return util.md_to_vimdoc(table.concat(text, '\n'), start_indent, indent, text_width)
]],
text,
diff --git a/test/lua_runner.lua b/test/lua_runner.lua
index 158412b04c..3bee035e78 100644
--- a/test/lua_runner.lua
+++ b/test/lua_runner.lua
@@ -2,10 +2,8 @@ local platform = vim.uv.os_uname()
local deps_install_dir = table.remove(_G.arg, 1)
local subcommand = table.remove(_G.arg, 1)
local suffix = (platform and platform.sysname:lower():find 'windows') and '.dll' or '.so'
-package.path = deps_install_dir
- .. '/share/lua/5.1/?.lua;'
- .. deps_install_dir
- .. '/share/lua/5.1/?/init.lua;'
+package.path = (deps_install_dir .. '/share/lua/5.1/?.lua;')
+ .. (deps_install_dir .. '/share/lua/5.1/?/init.lua;')
.. package.path
package.cpath = deps_install_dir .. '/lib/lua/5.1/?' .. suffix .. ';' .. package.cpath