aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-11-29 22:51:20 +0100
committerJustin M. Keyes <justinkz@gmail.com>2018-12-20 11:57:30 +0100
commit221f6fffad12beaa928ccedae336d64b7b1c1208 (patch)
tree501c13ec241ff3d6a020d96f6ec0c3947000418b
parente6d0dea42b28a4814546bcf699ce277c365ebfc1 (diff)
downloadrneovim-221f6fffad12beaa928ccedae336d64b7b1c1208.tar.gz
rneovim-221f6fffad12beaa928ccedae336d64b7b1c1208.tar.bz2
rneovim-221f6fffad12beaa928ccedae336d64b7b1c1208.zip
runtime/lua/vim/compat.lua
ref #9280 Introduce the `vim.compat` module, to help environments with system Lua 5.2+ run the build/tests. Include the module implicitly in all tests. ref #8677 legacy `vim` module: beep buffer command dict eval firstline lastline line list open type window
-rw-r--r--CMakeLists.txt15
-rw-r--r--cmake/RunTests.cmake5
-rw-r--r--runtime/lua/man.lua3
-rw-r--r--runtime/lua/vim/compat.lua12
-rw-r--r--test/functional/api/server_requests_spec.lua1
-rw-r--r--test/functional/api/tabpage_spec.lua1
-rw-r--r--test/functional/api/window_spec.lua1
-rw-r--r--test/functional/eval/function_spec.lua1
-rw-r--r--test/functional/eval/server_spec.lua1
-rw-r--r--test/functional/ex_cmds/dict_notifications_spec.lua1
-rw-r--r--test/functional/helpers.lua2
-rw-r--r--test/functional/legacy/autocmd_option_spec.lua1
-rw-r--r--test/functional/ui/screen.lua1
-rw-r--r--test/functional/ui/tabline_spec.lua1
-rw-r--r--test/helpers.lua1
-rw-r--r--test/unit/eval/typval_spec.lua1
-rw-r--r--test/unit/garray_spec.lua1
-rw-r--r--test/unit/helpers.lua1
18 files changed, 32 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 15718c94cf..5a8aef2be2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -688,7 +688,7 @@ if(LUACHECK_PRG)
-P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake)
add_custom_target(
- blobcodelint
+ lintbuiltinlua
COMMAND
${CMAKE_COMMAND}
-DLUACHECK_PRG=${LUACHECK_PRG}
@@ -697,10 +697,21 @@ if(LUACHECK_PRG)
-DREAD_GLOBALS=vim
-P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake
)
+ add_custom_target(
+ lintruntimelua
+ COMMAND
+ ${CMAKE_COMMAND}
+ -DLUACHECK_PRG=${LUACHECK_PRG}
+ -DLUAFILES_DIR=${CMAKE_CURRENT_SOURCE_DIR}/runtime/lua
+ -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
+ -DREAD_GLOBALS=vim
+ -P ${PROJECT_SOURCE_DIR}/cmake/RunLuacheck.cmake
+ )
# TODO(ZyX-I): Run linter for all lua code in src
add_custom_target(
lualint
- DEPENDS blobcodelint
+ DEPENDS lintruntimelua
+ DEPENDS lintbuiltinlua
)
endif()
diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake
index a764b19850..05c429c1f5 100644
--- a/cmake/RunTests.cmake
+++ b/cmake/RunTests.cmake
@@ -38,7 +38,10 @@ set(ENV{SYSTEM_NAME} ${SYSTEM_NAME})
execute_process(
COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE}
--lua=${LUA_PRG} --lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
- --lpath=${BUILD_DIR}/?.lua --lpath=?.lua ${TEST_PATH}
+ --lpath=${BUILD_DIR}/?.lua
+ --lpath=${WORKING_DIR}/runtime/lua/?.lua
+ --lpath=?.lua
+ ${TEST_PATH}
WORKING_DIRECTORY ${WORKING_DIR}
ERROR_VARIABLE err
RESULT_VARIABLE res
diff --git a/runtime/lua/man.lua b/runtime/lua/man.lua
index 0c67e45dc4..e9f60138f4 100644
--- a/runtime/lua/man.lua
+++ b/runtime/lua/man.lua
@@ -1,5 +1,6 @@
+require('vim.compat')
+
local buf_hls = {}
-local unpack = table.unpack or unpack -- luacheck: ignore
local function highlight_line(line, linenr)
local chars = {}
diff --git a/runtime/lua/vim/compat.lua b/runtime/lua/vim/compat.lua
new file mode 100644
index 0000000000..168979bb95
--- /dev/null
+++ b/runtime/lua/vim/compat.lua
@@ -0,0 +1,12 @@
+-- Lua 5.1 forward-compatibility layer.
+-- For background see https://github.com/neovim/neovim/pull/9280
+--
+-- Reference the lua-compat-5.2 project for hints:
+-- https://github.com/keplerproject/lua-compat-5.2/blob/c164c8f339b95451b572d6b4b4d11e944dc7169d/compat52/mstrict.lua
+-- https://github.com/keplerproject/lua-compat-5.2/blob/c164c8f339b95451b572d6b4b4d11e944dc7169d/tests/test.lua
+
+local lua_version = _VERSION:sub(-3)
+
+if lua_version >= "5.2" then
+ unpack = table.unpack -- luacheck: ignore 121 143
+end
diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua
index 8de71a56e9..4d25ba0819 100644
--- a/test/functional/api/server_requests_spec.lua
+++ b/test/functional/api/server_requests_spec.lua
@@ -2,7 +2,6 @@
-- `rpcrequest` calls we need the client event loop to be running.
local helpers = require('test.functional.helpers')(after_each)
local Paths = require('test.config.paths')
-local unpack = table.unpack or unpack -- luacheck: ignore
local clear, nvim, eval = helpers.clear, helpers.nvim, helpers.eval
local eq, neq, run, stop = helpers.eq, helpers.neq, helpers.run, helpers.stop
diff --git a/test/functional/api/tabpage_spec.lua b/test/functional/api/tabpage_spec.lua
index 584bca7111..c49091db02 100644
--- a/test/functional/api/tabpage_spec.lua
+++ b/test/functional/api/tabpage_spec.lua
@@ -8,7 +8,6 @@ local request = helpers.request
local NIL = helpers.NIL
local meth_pcall = helpers.meth_pcall
local command = helpers.command
-local unpack = table.unpack or unpack -- luacheck: ignore
describe('api/tabpage', function()
before_each(clear)
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index 273991951c..4496e1f644 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -12,7 +12,6 @@ local meth_pcall = helpers.meth_pcall
local meths = helpers.meths
local command = helpers.command
local expect_err = helpers.expect_err
-local unpack = table.unpack or unpack -- luacheck: ignore
-- check if str is visible at the beginning of some line
local function is_visible(str)
diff --git a/test/functional/eval/function_spec.lua b/test/functional/eval/function_spec.lua
index 1a86576fde..776e760aaf 100644
--- a/test/functional/eval/function_spec.lua
+++ b/test/functional/eval/function_spec.lua
@@ -1,5 +1,4 @@
local helpers = require('test.functional.helpers')(after_each)
-local unpack = table.unpack or unpack -- luacheck: ignore
local clear = helpers.clear
local eq = helpers.eq
diff --git a/test/functional/eval/server_spec.lua b/test/functional/eval/server_spec.lua
index 8a0831bba1..563e619b39 100644
--- a/test/functional/eval/server_spec.lua
+++ b/test/functional/eval/server_spec.lua
@@ -6,7 +6,6 @@ local iswin = helpers.iswin
local ok = helpers.ok
local matches = helpers.matches
local expect_err = helpers.expect_err
-local unpack = table.unpack or unpack -- luacheck: ignore
local function clear_serverlist()
for _, server in pairs(funcs.serverlist()) do
diff --git a/test/functional/ex_cmds/dict_notifications_spec.lua b/test/functional/ex_cmds/dict_notifications_spec.lua
index f5920c3d11..3d550588e7 100644
--- a/test/functional/ex_cmds/dict_notifications_spec.lua
+++ b/test/functional/ex_cmds/dict_notifications_spec.lua
@@ -4,7 +4,6 @@ local eq, next_msg = helpers.eq, helpers.next_msg
local exc_exec = helpers.exc_exec
local command = helpers.command
local eval = helpers.eval
-local unpack = table.unpack or unpack -- luacheck: ignore
describe('dictionary change notifications', function()
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index 7921cc05bf..272b80466c 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -1,8 +1,8 @@
+require('vim.compat')
require('coxpcall')
local luv = require('luv')
local lfs = require('lfs')
local global_helpers = require('test.helpers')
-local unpack = table.unpack or unpack -- luacheck: ignore
-- nvim client: Found in .deps/usr/share/lua/<version>/nvim/ if "bundled".
local Session = require('nvim.session')
diff --git a/test/functional/legacy/autocmd_option_spec.lua b/test/functional/legacy/autocmd_option_spec.lua
index de0e32c813..0c7e43bf31 100644
--- a/test/functional/legacy/autocmd_option_spec.lua
+++ b/test/functional/legacy/autocmd_option_spec.lua
@@ -5,7 +5,6 @@ local curbuf, buf = helpers.curbuf, helpers.bufmeths
local curwin = helpers.curwin
local redir_exec = helpers.redir_exec
local source, command = helpers.source, helpers.command
-local unpack = table.unpack or unpack -- luacheck: ignore
local function declare_hook_function()
source([[
diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua
index 32a8e69511..75eb5bb4e3 100644
--- a/test/functional/ui/screen.lua
+++ b/test/functional/ui/screen.lua
@@ -78,7 +78,6 @@ local helpers = require('test.functional.helpers')(nil)
local request, run, uimeths = helpers.request, helpers.run, helpers.uimeths
local eq = helpers.eq
local dedent = helpers.dedent
-local unpack = table.unpack or unpack -- luacheck: ignore
local inspect = require('inspect')
diff --git a/test/functional/ui/tabline_spec.lua b/test/functional/ui/tabline_spec.lua
index ac56a7c03f..dcab9f7ef4 100644
--- a/test/functional/ui/tabline_spec.lua
+++ b/test/functional/ui/tabline_spec.lua
@@ -1,7 +1,6 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear, command, eq = helpers.clear, helpers.command, helpers.eq
-local unpack = table.unpack or unpack -- luacheck: ignore
describe('ui/ext_tabline', function()
local screen
diff --git a/test/helpers.lua b/test/helpers.lua
index 30bae01216..6ef7a456f4 100644
--- a/test/helpers.lua
+++ b/test/helpers.lua
@@ -2,7 +2,6 @@ local assert = require('luassert')
local luv = require('luv')
local lfs = require('lfs')
local relpath = require('pl.path').relpath
-local unpack = table.unpack or unpack -- luacheck: ignore
local quote_me = '[^.%w%+%-%@%_%/]' -- complement (needn't quote)
local function shell_quote(str)
diff --git a/test/unit/eval/typval_spec.lua b/test/unit/eval/typval_spec.lua
index 8c85ff3f34..919a42fbb9 100644
--- a/test/unit/eval/typval_spec.lua
+++ b/test/unit/eval/typval_spec.lua
@@ -2,7 +2,6 @@ local bit = require('bit')
local helpers = require('test.unit.helpers')(after_each)
local eval_helpers = require('test.unit.eval.helpers')
local global_helpers = require('test.helpers')
-local unpack = table.unpack or unpack -- luacheck: ignore
local itp = helpers.gen_itp(it)
diff --git a/test/unit/garray_spec.lua b/test/unit/garray_spec.lua
index e1839d1811..28df8a6e3f 100644
--- a/test/unit/garray_spec.lua
+++ b/test/unit/garray_spec.lua
@@ -13,7 +13,6 @@ local garray = cimport('./src/nvim/garray.h')
local itemsize = 14
local growsize = 95
-local unpack = table.unpack or unpack -- luacheck: ignore
-- define a basic interface to garray. We could make it a lot nicer by
-- constructing a class wrapper around garray. It could for example associate
diff --git a/test/unit/helpers.lua b/test/unit/helpers.lua
index 81847abc36..f8143a0125 100644
--- a/test/unit/helpers.lua
+++ b/test/unit/helpers.lua
@@ -9,7 +9,6 @@ local say = require('say')
local posix = nil
local syscall = nil
-local unpack = table.unpack or unpack -- luacheck: ignore
local check_cores = global_helpers.check_cores
local dedent = global_helpers.dedent