diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-12-20 18:32:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-20 18:32:54 +0100 |
commit | 87b40f7445dce4477d575ac74b63132bade60a47 (patch) | |
tree | 2d6fb7c7d1396b355cc8e84854519127e08e430b | |
parent | ccb005b9e0d509bbe595515e7e17b0e9713a2c19 (diff) | |
parent | 127b8569e63d57321fc4cd77b7e55781f1447365 (diff) | |
download | rneovim-87b40f7445dce4477d575ac74b63132bade60a47.tar.gz rneovim-87b40f7445dce4477d575ac74b63132bade60a47.tar.bz2 rneovim-87b40f7445dce4477d575ac74b63132bade60a47.zip |
Merge #9280 'Lua 5.2+ compatbility'
-rw-r--r-- | CMakeLists.txt | 15 | ||||
-rw-r--r-- | cmake/RunTests.cmake | 5 | ||||
-rw-r--r-- | runtime/lua/man.lua | 8 | ||||
-rw-r--r-- | runtime/lua/vim/compat.lua | 12 | ||||
-rw-r--r-- | test/functional/helpers.lua | 1 |
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') |