mirror of
https://github.com/neovim/neovim
synced 2025-07-15 16:51:49 +00:00
build: move all generator scripts to src/gen/
- Move all generator Lua scripts to the `src/gen/` - Add a `.luarc.json` to `src/gen/` - Add a `preload.lua` to `src/gen/` - Add `src` to `package.path` so it aligns with `.luarc.json' - Fix all `require` statements in `src/gen/` so they are consistent: - `require('scripts.foo')` -> `require('gen.foo')` - `require('src.nvim.options')` -> `require('nvim.options')` - `require('api.dispatch_deprecated')` -> `require('nvim.api.dispatch_deprecated')`
This commit is contained in:
committed by
Lewis Russell
parent
85caaa70d4
commit
0f24b0826a
@ -256,17 +256,17 @@ make lintdoc
|
|||||||
```
|
```
|
||||||
|
|
||||||
If you need to modify or debug the documentation flow, these are the main files:
|
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.
|
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.
|
Documentation parser for Lua files.
|
||||||
- `./scripts/cdoc_parser.lua`:
|
- `./src/gen/cdoc_parser.lua`:
|
||||||
Documentation parser for C files.
|
Documentation parser for C files.
|
||||||
- `./scripts/luacats_grammar.lua`:
|
- `./src/gen/luacats_grammar.lua`:
|
||||||
Lpeg grammar for LuaCATS
|
Lpeg grammar for LuaCATS
|
||||||
- `./scripts/cdoc_grammar.lua`:
|
- `./src/gen/cdoc_grammar.lua`:
|
||||||
Lpeg grammar for C doc comments
|
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:
|
Generates documentation and Lua type files from metadata files:
|
||||||
```
|
```
|
||||||
runtime/lua/vim/* => runtime/doc/lua.txt
|
runtime/lua/vim/* => runtime/doc/lua.txt
|
||||||
|
@ -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
|
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
|
--lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
|
||||||
--lpath=${BUILD_DIR}/?.lua
|
--lpath=${BUILD_DIR}/?.lua
|
||||||
|
--lpath=${WORKING_DIR}/src/?.lua
|
||||||
--lpath=${WORKING_DIR}/runtime/lua/?.lua
|
--lpath=${WORKING_DIR}/runtime/lua/?.lua
|
||||||
--lpath=?.lua
|
--lpath=?.lua
|
||||||
${BUSTED_ARGS}
|
${BUSTED_ARGS}
|
||||||
|
@ -3,7 +3,7 @@ set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
|
|||||||
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
|
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
|
||||||
set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
|
set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
|
||||||
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
|
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)
|
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax/vim)
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ print('Running lintdoc ...')
|
|||||||
-- :helptags checks for duplicate tags.
|
-- :helptags checks for duplicate tags.
|
||||||
vim.cmd [[ helptags ALL ]]
|
vim.cmd [[ helptags ALL ]]
|
||||||
|
|
||||||
require('scripts.gen_help_html').run_validate()
|
require('src.gen.gen_help_html').run_validate()
|
||||||
require('scripts.gen_help_html').test_gen()
|
require('src.gen.gen_help_html').test_gen()
|
||||||
|
|
||||||
print('lintdoc PASSED.')
|
print('lintdoc PASSED.')
|
||||||
|
@ -59,7 +59,7 @@ _do_release_commit() {
|
|||||||
$__sed -i.bk 's/(NVIM_API_PRERELEASE) true/\1 false/' CMakeLists.txt
|
$__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"
|
build/bin/nvim --api-info > "test/functional/fixtures/api_level_$__API_LEVEL.mpack"
|
||||||
git add "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/
|
git add -u -- runtime/doc/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
24
src/.luarc.json
Normal file
24
src/.luarc.json
Normal file
@ -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": [ "_*" ]
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
local cdoc_grammar = require('scripts.cdoc_grammar')
|
local cdoc_grammar = require('gen.cdoc_grammar')
|
||||||
local c_grammar = require('src.nvim.generators.c_grammar')
|
local c_grammar = require('gen.c_grammar')
|
||||||
|
|
||||||
--- @class nvim.cdoc.parser.param
|
--- @class nvim.cdoc.parser.param
|
||||||
--- @field name string
|
--- @field name string
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
local mpack = vim.mpack
|
local mpack = vim.mpack
|
||||||
|
|
||||||
local hashy = require 'generators.hashy'
|
local hashy = require 'gen.hashy'
|
||||||
|
|
||||||
local pre_args = 7
|
local pre_args = 7
|
||||||
assert(#arg >= pre_args)
|
assert(#arg >= pre_args)
|
||||||
@ -31,7 +31,7 @@ local headers = {}
|
|||||||
-- set of function names, used to detect duplicates
|
-- set of function names, used to detect duplicates
|
||||||
local function_names = {}
|
local function_names = {}
|
||||||
|
|
||||||
local c_grammar = require('generators.c_grammar')
|
local c_grammar = require('gen.c_grammar')
|
||||||
|
|
||||||
local startswith = vim.startswith
|
local startswith = vim.startswith
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ end
|
|||||||
|
|
||||||
-- Export functions under older deprecated names.
|
-- Export functions under older deprecated names.
|
||||||
-- These will be removed eventually.
|
-- 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
|
for _, f in ipairs(shallowcopy(functions)) do
|
||||||
local ismethod = false
|
local ismethod = false
|
||||||
if startswith(f.name, 'nvim_') then
|
if startswith(f.name, 'nvim_') then
|
||||||
@ -300,7 +300,7 @@ for i, item in ipairs(types) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
local packed = table.concat(pieces)
|
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)
|
dump_bin_array(api_metadata_output, 'packed_api_metadata', packed)
|
||||||
api_metadata_output:close()
|
api_metadata_output:close()
|
||||||
|
|
@ -7,10 +7,10 @@ local remote_output = io.open(arg[3], 'wb')
|
|||||||
local metadata_output = io.open(arg[4], 'wb')
|
local metadata_output = io.open(arg[4], 'wb')
|
||||||
local client_output = io.open(arg[5], '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 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)
|
local function write_signature(output, ev, prefix, notype)
|
||||||
output:write('(' .. prefix)
|
output:write('(' .. prefix)
|
@ -1,4 +1,4 @@
|
|||||||
local grammar = require('generators.c_grammar').grammar
|
local grammar = require('gen.c_grammar').grammar
|
||||||
|
|
||||||
--- @param fname string
|
--- @param fname string
|
||||||
--- @return string?
|
--- @return string?
|
@ -8,7 +8,7 @@ local funcsfname = autodir .. '/funcs.generated.h'
|
|||||||
|
|
||||||
--Will generate funcs.generated.h with definition of functions static const array.
|
--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'))
|
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
|
for _, func in pairs(funcs) do
|
||||||
if func.float_func then
|
if func.float_func then
|
||||||
func.func = 'float_op_wrapper'
|
func.func = 'float_op_wrapper'
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
-- Generator for various vimdoc and Lua type files
|
-- Generator for various vimdoc and Lua type files
|
||||||
|
|
||||||
local util = require('scripts.util')
|
local util = require('gen.util')
|
||||||
local fmt = string.format
|
local fmt = string.format
|
||||||
|
|
||||||
local DEP_API_METADATA = 'build/funcs_metadata.mpack'
|
local DEP_API_METADATA = 'build/funcs_metadata.mpack'
|
||||||
@ -259,7 +259,7 @@ end
|
|||||||
local function get_api_meta()
|
local function get_api_meta()
|
||||||
local ret = {} --- @type table<string, vim.EvalFn>
|
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'
|
local f = 'src/nvim/api'
|
||||||
|
|
||||||
@ -469,7 +469,7 @@ end
|
|||||||
|
|
||||||
--- @return table<string, vim.EvalFn>
|
--- @return table<string, vim.EvalFn>
|
||||||
local function get_eval_meta()
|
local function get_eval_meta()
|
||||||
return require('src/nvim/eval').funcs
|
return require('nvim.eval').funcs
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Generates LuaLS docstring for a Vimscript "eval" function.
|
--- Generates LuaLS docstring for a Vimscript "eval" function.
|
||||||
@ -782,7 +782,7 @@ end
|
|||||||
|
|
||||||
--- @return table<string,vim.option_meta>
|
--- @return table<string,vim.option_meta>
|
||||||
local function get_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 optinfo = vim.api.nvim_get_all_options_info()
|
||||||
local ret = {} --- @type table<string,vim.option_meta>
|
local ret = {} --- @type table<string,vim.option_meta>
|
||||||
for _, o in ipairs(opts) do
|
for _, o in ipairs(opts) do
|
||||||
@ -806,7 +806,7 @@ end
|
|||||||
|
|
||||||
--- @return table<string,vim.option_meta>
|
--- @return table<string,vim.option_meta>
|
||||||
local function get_vvar_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>
|
local ret = {} --- @type table<string,vim.option_meta>
|
||||||
for name, o in pairs(info) do
|
for name, o in pairs(info) do
|
||||||
o.desc = dedent(o.desc)
|
o.desc = dedent(o.desc)
|
@ -1,7 +1,7 @@
|
|||||||
local fileio_enum_file = arg[1]
|
local fileio_enum_file = arg[1]
|
||||||
local names_file = arg[2]
|
local names_file = arg[2]
|
||||||
|
|
||||||
local auevents = require('auevents')
|
local auevents = require('nvim.auevents')
|
||||||
local events = auevents.events
|
local events = auevents.events
|
||||||
|
|
||||||
local enum_tgt = io.open(fileio_enum_file, 'w')
|
local enum_tgt = io.open(fileio_enum_file, 'w')
|
@ -11,7 +11,7 @@ local enumfile = io.open(enumfname, 'w')
|
|||||||
local defsfile = io.open(defsfname, 'w')
|
local defsfile = io.open(defsfname, 'w')
|
||||||
|
|
||||||
local bit = require 'bit'
|
local bit = require 'bit'
|
||||||
local ex_cmds = require('ex_cmds')
|
local ex_cmds = require('nvim.ex_cmds')
|
||||||
local defs = ex_cmds.cmds
|
local defs = ex_cmds.cmds
|
||||||
local flags = ex_cmds.flags
|
local flags = ex_cmds.flags
|
||||||
|
|
@ -4,9 +4,9 @@ local USAGE = [[
|
|||||||
Generates lua-ls annotations for lsp.
|
Generates lua-ls annotations for lsp.
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
nvim -l scripts/gen_lsp.lua gen # by default, this will overwrite runtime/lua/vim/lsp/_meta/protocol.lua
|
nvim -l src/gen/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 src/gen/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 --version 3.18 --methods --capabilities
|
||||||
]]
|
]]
|
||||||
|
|
||||||
local DEFAULT_LSP_VERSION = '3.18'
|
local DEFAULT_LSP_VERSION = '3.18'
|
||||||
@ -211,13 +211,13 @@ function M.gen(opt)
|
|||||||
|
|
||||||
local output = {
|
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',
|
'DO NOT EDIT MANUALLY',
|
||||||
'',
|
'',
|
||||||
'Based on LSP protocol ' .. opt.version,
|
'Based on LSP protocol ' .. opt.version,
|
||||||
'',
|
'',
|
||||||
'Regenerate:',
|
'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',
|
'---@meta',
|
@ -1,5 +1,5 @@
|
|||||||
--- @module 'nvim.options'
|
--- @module 'nvim.options'
|
||||||
local options = require('options')
|
local options = require('nvim.options')
|
||||||
local options_meta = options.options
|
local options_meta = options.options
|
||||||
local cstr = options.cstr
|
local cstr = options.cstr
|
||||||
local valid_scopes = options.valid_scopes
|
local valid_scopes = options.valid_scopes
|
||||||
@ -418,7 +418,7 @@ end
|
|||||||
--- @param option_index table<string,string>
|
--- @param option_index table<string,string>
|
||||||
local function gen_map(output_file, option_index)
|
local function gen_map(output_file, option_index)
|
||||||
-- Generate option index map.
|
-- Generate option index map.
|
||||||
local hashy = require('generators.hashy')
|
local hashy = require('gen.hashy')
|
||||||
|
|
||||||
local neworder, hashfun = hashy.hashy_hash(
|
local neworder, hashfun = hashy.hashy_hash(
|
||||||
'find_option',
|
'find_option',
|
@ -16,9 +16,9 @@
|
|||||||
--- parameter is marked as [out].
|
--- parameter is marked as [out].
|
||||||
--- - Each function documentation is separated by a single line.
|
--- - Each function documentation is separated by a single line.
|
||||||
|
|
||||||
local luacats_parser = require('scripts.luacats_parser')
|
local luacats_parser = require('gen.luacats_parser')
|
||||||
local cdoc_parser = require('scripts.cdoc_parser')
|
local cdoc_parser = require('gen.cdoc_parser')
|
||||||
local util = require('scripts.util')
|
local util = require('gen.util')
|
||||||
|
|
||||||
local fmt = string.format
|
local fmt = string.format
|
||||||
|
|
||||||
@ -844,7 +844,7 @@ local function get_script_path()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local script_path = get_script_path()
|
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 function delete_lines_below(doc_file, tokenstr)
|
||||||
local lines = {} --- @type string[]
|
local lines = {} --- @type string[]
|
@ -15,9 +15,9 @@ local function w(s)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local options = require('options')
|
local options = require('nvim.options')
|
||||||
local auevents = require('auevents')
|
local auevents = require('nvim.auevents')
|
||||||
local ex_cmds = require('ex_cmds')
|
local ex_cmds = require('nvim.ex_cmds')
|
||||||
|
|
||||||
local function cmd_kw(prev_cmd, cmd)
|
local function cmd_kw(prev_cmd, cmd)
|
||||||
if not prev_cmd then
|
if not prev_cmd then
|
@ -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
|
--- @class nvim.luacats.parser.param : nvim.luacats.Param
|
||||||
|
|
6
src/gen/preload.lua
Normal file
6
src/gen/preload.lua
Normal file
@ -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])()
|
@ -1,8 +1,12 @@
|
|||||||
local srcdir = table.remove(arg, 1)
|
local srcdir = table.remove(arg, 1)
|
||||||
local nlualib = table.remove(arg, 1)
|
local nlualib = table.remove(arg, 1)
|
||||||
local gendir = 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 = require 'vim.shared'
|
||||||
_G.vim.inspect = require 'vim.inspect'
|
_G.vim.inspect = require 'vim.inspect'
|
||||||
package.cpath = package.cpath .. ';' .. nlualib
|
package.cpath = package.cpath .. ';' .. nlualib
|
@ -292,7 +292,7 @@ set(UI_METADATA ${PROJECT_BINARY_DIR}/ui_metadata.mpack)
|
|||||||
set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim)
|
set(BINARY_LIB_DIR ${PROJECT_BINARY_DIR}/lib/nvim)
|
||||||
set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto)
|
set(GENERATED_DIR ${PROJECT_BINARY_DIR}/src/nvim/auto)
|
||||||
set(GENERATED_INCLUDES_DIR ${PROJECT_BINARY_DIR}/include)
|
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(GEN_EVAL_TOUCH ${TOUCHES_DIR}/gen_doc_eval)
|
||||||
set(LUAJIT_RUNTIME_DIR ${DEPS_PREFIX}/share/luajit-2.1/jit)
|
set(LUAJIT_RUNTIME_DIR ${DEPS_PREFIX}/share/luajit-2.1/jit)
|
||||||
set(NVIM_RUNTIME_DIR ${PROJECT_SOURCE_DIR}/runtime)
|
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(FUNCS_GENERATOR ${GENERATOR_DIR}/gen_eval.lua)
|
||||||
set(GENERATOR_C_GRAMMAR ${GENERATOR_DIR}/c_grammar.lua)
|
set(GENERATOR_C_GRAMMAR ${GENERATOR_DIR}/c_grammar.lua)
|
||||||
set(GENERATOR_HASHY ${GENERATOR_DIR}/hashy.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(HEADER_GENERATOR ${GENERATOR_DIR}/gen_declarations.lua)
|
||||||
set(OPTIONS_GENERATOR ${GENERATOR_DIR}/gen_options.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 ${LUA_GEN_PRG} ${GENERATOR_PRELOAD} ${PROJECT_SOURCE_DIR} $<TARGET_FILE:nlua0> ${PROJECT_BINARY_DIR})
|
||||||
set(LUA_GEN_DEPS ${GENERATOR_PRELOAD} $<TARGET_FILE:nlua0>)
|
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_HEADERS: generated headers to be included in headers
|
||||||
# NVIM_GENERATED_FOR_SOURCES: generated headers to be included in sources
|
# NVIM_GENERATED_FOR_SOURCES: generated headers to be included in sources
|
||||||
# These lists must be mutually exclusive.
|
# These lists must be mutually exclusive.
|
||||||
@ -937,12 +941,12 @@ file(GLOB LUA_SOURCES CONFIGURE_DEPENDS
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_target(doc-vim
|
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
|
DEPENDS
|
||||||
nvim
|
nvim
|
||||||
${API_SOURCES}
|
${API_SOURCES}
|
||||||
${LUA_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/api.txt
|
||||||
${NVIM_RUNTIME_DIR}/doc/diagnostic.txt
|
${NVIM_RUNTIME_DIR}/doc/diagnostic.txt
|
||||||
${NVIM_RUNTIME_DIR}/doc/lsp.txt
|
${NVIM_RUNTIME_DIR}/doc/lsp.txt
|
||||||
@ -951,11 +955,11 @@ add_target(doc-vim
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_target(doc-eval
|
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
|
DEPENDS
|
||||||
nvim
|
nvim
|
||||||
${FUNCS_METADATA}
|
${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/eval.lua
|
||||||
${PROJECT_SOURCE_DIR}/src/nvim/options.lua
|
${PROJECT_SOURCE_DIR}/src/nvim/options.lua
|
||||||
${PROJECT_SOURCE_DIR}/src/nvim/vvars.lua
|
${PROJECT_SOURCE_DIR}/src/nvim/vvars.lua
|
||||||
@ -966,7 +970,7 @@ add_custom_target(doc)
|
|||||||
add_dependencies(doc doc-vim doc-eval)
|
add_dependencies(doc doc-vim doc-eval)
|
||||||
|
|
||||||
add_target(lintdoc
|
add_target(lintdoc
|
||||||
COMMAND $<TARGET_FILE:nvim_bin> -u NONE -l scripts/lintdoc.lua
|
COMMAND ${NVIM_LUA} scripts/lintdoc.lua
|
||||||
DEPENDS ${DOCFILES}
|
DEPENDS ${DOCFILES}
|
||||||
CUSTOM_COMMAND_ARGS USES_TERMINAL)
|
CUSTOM_COMMAND_ARGS USES_TERMINAL)
|
||||||
add_dependencies(lintdoc nvim)
|
add_dependencies(lintdoc nvim)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Undefined DEFINE_FUNC_ATTRIBUTES and undefined DEFINE_EMPTY_ATTRIBUTES
|
// Undefined DEFINE_FUNC_ATTRIBUTES and undefined DEFINE_EMPTY_ATTRIBUTES
|
||||||
// leaves file with untouched FUNC_ATTR_* macros. This variant is used for
|
// 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.
|
// Empty macros are used for *.c files.
|
||||||
// (undefined DEFINE_FUNC_ATTRIBUTES and defined DEFINE_EMPTY_ATTRIBUTES)
|
// (undefined DEFINE_FUNC_ATTRIBUTES and defined DEFINE_EMPTY_ATTRIBUTES)
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
"workspace": {
|
"workspace": {
|
||||||
"library": [
|
"library": [
|
||||||
"../runtime/lua",
|
"../runtime/lua",
|
||||||
|
"../src",
|
||||||
"../build/usr/share/lua/5.1",
|
"../build/usr/share/lua/5.1",
|
||||||
"../build",
|
"../build",
|
||||||
"${3rd}/busted/library",
|
"${3rd}/busted/library",
|
||||||
|
@ -2,7 +2,7 @@ local t = require('test.testutil')
|
|||||||
|
|
||||||
local eq = t.eq
|
local eq = t.eq
|
||||||
|
|
||||||
local grammar = require('scripts/luacats_grammar')
|
local grammar = require('gen.luacats_grammar')
|
||||||
|
|
||||||
describe('luacats grammar', function()
|
describe('luacats grammar', function()
|
||||||
--- @param text string
|
--- @param text string
|
||||||
|
@ -2,7 +2,7 @@ local t = require('test.testutil')
|
|||||||
|
|
||||||
local eq = t.eq
|
local eq = t.eq
|
||||||
|
|
||||||
local parser = require('scripts/luacats_parser')
|
local parser = require('gen.luacats_parser')
|
||||||
|
|
||||||
--- @param name string
|
--- @param name string
|
||||||
--- @param text string
|
--- @param text string
|
||||||
|
@ -11,7 +11,7 @@ local function md_to_vimdoc(text, start_indent, indent, text_width)
|
|||||||
start_indent = start_indent or 0
|
start_indent = start_indent or 0
|
||||||
indent = indent or 0
|
indent = indent or 0
|
||||||
text_width = text_width or 70
|
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)
|
return util.md_to_vimdoc(table.concat(text, '\n'), start_indent, indent, text_width)
|
||||||
]],
|
]],
|
||||||
text,
|
text,
|
||||||
|
@ -2,10 +2,8 @@ local platform = vim.uv.os_uname()
|
|||||||
local deps_install_dir = table.remove(_G.arg, 1)
|
local deps_install_dir = table.remove(_G.arg, 1)
|
||||||
local subcommand = 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'
|
local suffix = (platform and platform.sysname:lower():find 'windows') and '.dll' or '.so'
|
||||||
package.path = deps_install_dir
|
package.path = (deps_install_dir .. '/share/lua/5.1/?.lua;')
|
||||||
.. '/share/lua/5.1/?.lua;'
|
.. (deps_install_dir .. '/share/lua/5.1/?/init.lua;')
|
||||||
.. deps_install_dir
|
|
||||||
.. '/share/lua/5.1/?/init.lua;'
|
|
||||||
.. package.path
|
.. package.path
|
||||||
package.cpath = deps_install_dir .. '/lib/lua/5.1/?' .. suffix .. ';' .. package.cpath
|
package.cpath = deps_install_dir .. '/lib/lua/5.1/?' .. suffix .. ';' .. package.cpath
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user