aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-12-20 18:32:54 +0100
committerGitHub <noreply@github.com>2018-12-20 18:32:54 +0100
commit87b40f7445dce4477d575ac74b63132bade60a47 (patch)
tree2d6fb7c7d1396b355cc8e84854519127e08e430b
parentccb005b9e0d509bbe595515e7e17b0e9713a2c19 (diff)
parent127b8569e63d57321fc4cd77b7e55781f1447365 (diff)
downloadrneovim-87b40f7445dce4477d575ac74b63132bade60a47.tar.gz
rneovim-87b40f7445dce4477d575ac74b63132bade60a47.tar.bz2
rneovim-87b40f7445dce4477d575ac74b63132bade60a47.zip
Merge #9280 'Lua 5.2+ compatbility'
-rw-r--r--CMakeLists.txt15
-rw-r--r--cmake/RunTests.cmake5
-rw-r--r--runtime/lua/man.lua8
-rw-r--r--runtime/lua/vim/compat.lua12
-rw-r--r--test/functional/helpers.lua1
5 files changed, 35 insertions, 6 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 b0fbe9cc35..1da8ed85fc 100644
--- a/runtime/lua/man.lua
+++ b/runtime/lua/man.lua
@@ -1,3 +1,5 @@
+require('vim.compat')
+
local buf_hls = {}
local function highlight_line(line, linenr)
@@ -10,9 +12,9 @@ local function highlight_line(line, linenr)
local attr = NONE
local byte = 0 -- byte offset
- local function end_attr_hl(attr)
+ local function end_attr_hl(attr_)
for i, hl in ipairs(hls) do
- if hl.attr == attr and hl.final == -1 then
+ if hl.attr == attr_ and hl.final == -1 then
hl.final = byte
hls[i] = hl
end
@@ -106,7 +108,7 @@ local function highlight_line(line, linenr)
-- the range 0x20 - 0x3f, then 'm'. (See ECMA-48, sections 5.4 & 8.3.117)
local sgr = prev_char:match("^%[([\032-\063]*)m$")
if sgr then
- local match = ''
+ local match
while sgr and #sgr > 0 do
-- Match against SGR parameters, which may be separated by ';'
match, sgr = sgr:match("^(%d*);?(.*)")
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/helpers.lua b/test/functional/helpers.lua
index a94e977cd0..272b80466c 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -1,3 +1,4 @@
+require('vim.compat')
require('coxpcall')
local luv = require('luv')
local lfs = require('lfs')