mirror of
https://github.com/neovim/neovim.git
synced 2024-12-26 14:11:15 -07:00
c3836e40a2
Problem: Not all Lua code is checked by stylua. Automating code-style is an important mechanism for reducing time spent on accidental (non-essential) complexity. Solution: - Enable lintlua for `test/unit/` directory. - TODO: only `test/functional/` remains unchecked. previous:45fe4d11ad
previous:517f0cc634
90 lines
2.0 KiB
Lua
90 lines
2.0 KiB
Lua
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
|
|
package.cpath = deps_install_dir .. '/lib/lua/5.1/?' .. suffix .. ';' .. package.cpath
|
|
|
|
local uv = vim.uv
|
|
|
|
-- we use busted and luacheck and their lua dependencies
|
|
-- But installing their binary dependencies with luarocks is very
|
|
-- slow, replace them with vim.uv wrappers
|
|
|
|
local system = {}
|
|
package.loaded['system.core'] = system
|
|
function system.monotime()
|
|
uv.update_time()
|
|
return uv.now() * 1e-3
|
|
end
|
|
function system.gettime()
|
|
local sec, usec = uv.gettimeofday()
|
|
return sec + usec * 1e-6
|
|
end
|
|
function system.sleep(sec)
|
|
uv.sleep(sec * 1e3)
|
|
end
|
|
|
|
local term = {}
|
|
package.loaded['term.core'] = term
|
|
function term.isatty(_)
|
|
return uv.guess_handle(1) == 'tty'
|
|
end
|
|
|
|
local lfs = { _VERSION = 'fake' }
|
|
package.loaded['lfs'] = lfs
|
|
|
|
function lfs.attributes(path, attr)
|
|
local stat = uv.fs_stat(path)
|
|
if attr == 'mode' then
|
|
return stat and stat.type or ''
|
|
elseif attr == 'modification' then
|
|
if not stat then
|
|
return nil
|
|
end
|
|
local mtime = stat.mtime
|
|
return mtime.sec + mtime.nsec * 1e-9
|
|
else
|
|
error('not implemented')
|
|
end
|
|
end
|
|
|
|
function lfs.currentdir()
|
|
return uv.cwd()
|
|
end
|
|
|
|
function lfs.chdir(dir)
|
|
local status, err = pcall(uv.chdir, dir)
|
|
if status then
|
|
return true
|
|
else
|
|
return nil, err
|
|
end
|
|
end
|
|
|
|
function lfs.dir(path)
|
|
local fs = uv.fs_scandir(path)
|
|
return function()
|
|
if not fs then
|
|
return
|
|
end
|
|
return uv.fs_scandir_next(fs)
|
|
end
|
|
end
|
|
|
|
function lfs.mkdir(dir)
|
|
return uv.fs_mkdir(dir, 493) -- octal 755
|
|
end
|
|
|
|
if subcommand == 'busted' then
|
|
require 'busted.runner'({ standalone = false })
|
|
elseif subcommand == 'luacheck' then
|
|
require 'luacheck.main'
|
|
else
|
|
error 'unknown subcommand'
|
|
end
|