aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/shared.lua
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2022-05-09 11:23:51 +0200
committerChristian Clason <c.clason@uni-graz.at>2022-05-09 16:31:55 +0200
commitaefdc6783cb77f09786542c90901a9e7120bea42 (patch)
treeddce6de8f084ab96270f6111d8e423d0b1533171 /runtime/lua/vim/shared.lua
parent676e9e9334043ce74af74f85f889b0327a443d0b (diff)
downloadrneovim-aefdc6783cb77f09786542c90901a9e7120bea42.tar.gz
rneovim-aefdc6783cb77f09786542c90901a9e7120bea42.tar.bz2
rneovim-aefdc6783cb77f09786542c90901a9e7120bea42.zip
chore: format runtime with stylua
Diffstat (limited to 'runtime/lua/vim/shared.lua')
-rw-r--r--runtime/lua/vim/shared.lua144
1 files changed, 84 insertions, 60 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index 172fac3a88..d9dc77e219 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -16,7 +16,7 @@ local vim = vim or {}
---
---@param orig table Table to copy
---@returns New table of copied keys and (nested) values.
-function vim.deepcopy(orig) end -- luacheck: no unused
+function vim.deepcopy(orig) end -- luacheck: no unused
vim.deepcopy = (function()
local function _id(v)
return v
@@ -24,7 +24,9 @@ vim.deepcopy = (function()
local deepcopy_funcs = {
table = function(orig, cache)
- if cache[orig] then return cache[orig] end
+ if cache[orig] then
+ return cache[orig]
+ end
local copy = {}
cache[orig] = copy
@@ -46,7 +48,7 @@ vim.deepcopy = (function()
if f then
return f(orig, cache or {})
else
- error("Cannot deepcopy object of type "..type(orig))
+ error('Cannot deepcopy object of type ' .. type(orig))
end
end
end)()
@@ -62,14 +64,14 @@ end)()
---@param plain If `true` use `sep` literally (passed to String.find)
---@returns Iterator over the split components
function vim.gsplit(s, sep, plain)
- vim.validate{s={s,'s'},sep={sep,'s'},plain={plain,'b',true}}
+ vim.validate({ s = { s, 's' }, sep = { sep, 's' }, plain = { plain, 'b', true } })
local start = 1
local done = false
local function _pass(i, j, ...)
if i then
- assert(j+1 > start, "Infinite loop detected")
+ assert(j + 1 > start, 'Infinite loop detected')
local seg = s:sub(start, i - 1)
start = j + 1
return seg, ...
@@ -87,7 +89,7 @@ function vim.gsplit(s, sep, plain)
if start == #s then
done = true
end
- return _pass(start+1, start)
+ return _pass(start + 1, start)
end
return _pass(s:find(sep, start, plain))
end
@@ -119,7 +121,7 @@ function vim.split(s, sep, kwargs)
-- Support old signature for backward compatibility
plain = kwargs
else
- vim.validate { kwargs = {kwargs, 't', true} }
+ vim.validate({ kwargs = { kwargs, 't', true } })
kwargs = kwargs or {}
plain = kwargs.plain
trimempty = kwargs.trimempty
@@ -128,7 +130,7 @@ function vim.split(s, sep, kwargs)
local t = {}
local skip = trimempty
for c in vim.gsplit(s, sep, plain) do
- if c ~= "" then
+ if c ~= '' then
skip = false
end
@@ -139,7 +141,7 @@ function vim.split(s, sep, kwargs)
if trimempty then
for i = #t, 1, -1 do
- if t[i] ~= "" then
+ if t[i] ~= '' then
break
end
table.remove(t, i)
@@ -157,7 +159,7 @@ end
---@param t Table
---@returns list of keys
function vim.tbl_keys(t)
- assert(type(t) == 'table', string.format("Expected table, got %s", type(t)))
+ assert(type(t) == 'table', string.format('Expected table, got %s', type(t)))
local keys = {}
for k, _ in pairs(t) do
@@ -172,7 +174,7 @@ end
---@param t Table
---@returns list of values
function vim.tbl_values(t)
- assert(type(t) == 'table', string.format("Expected table, got %s", type(t)))
+ assert(type(t) == 'table', string.format('Expected table, got %s', type(t)))
local values = {}
for _, v in pairs(t) do
@@ -186,7 +188,7 @@ end
---@param func function or callable table
---@param t table
function vim.tbl_map(func, t)
- vim.validate{func={func,'c'},t={t,'t'}}
+ vim.validate({ func = { func, 'c' }, t = { t, 't' } })
local rettab = {}
for k, v in pairs(t) do
@@ -200,7 +202,7 @@ end
---@param func function or callable table
---@param t table
function vim.tbl_filter(func, t)
- vim.validate{func={func,'c'},t={t,'t'}}
+ vim.validate({ func = { func, 'c' }, t = { t, 't' } })
local rettab = {}
for _, entry in pairs(t) do
@@ -217,9 +219,9 @@ end
---@param value Value to compare
---@returns true if `t` contains `value`
function vim.tbl_contains(t, value)
- vim.validate{t={t,'t'}}
+ vim.validate({ t = { t, 't' } })
- for _,v in ipairs(t) do
+ for _, v in ipairs(t) do
if v == value then
return true
end
@@ -233,23 +235,23 @@ end
---
---@param t Table to check
function vim.tbl_isempty(t)
- assert(type(t) == 'table', string.format("Expected table, got %s", type(t)))
+ assert(type(t) == 'table', string.format('Expected table, got %s', type(t)))
return next(t) == nil
end
--- we only merge empty tables or tables that are not a list
---@private
local function can_merge(v)
- return type(v) == "table" and (vim.tbl_isempty(v) or not vim.tbl_islist(v))
+ return type(v) == 'table' and (vim.tbl_isempty(v) or not vim.tbl_islist(v))
end
local function tbl_extend(behavior, deep_extend, ...)
- if (behavior ~= 'error' and behavior ~= 'keep' and behavior ~= 'force') then
- error('invalid "behavior": '..tostring(behavior))
+ if behavior ~= 'error' and behavior ~= 'keep' and behavior ~= 'force' then
+ error('invalid "behavior": ' .. tostring(behavior))
end
if select('#', ...) < 2 then
- error('wrong number of arguments (given '..tostring(1 + select('#', ...))..', expected at least 3)')
+ error('wrong number of arguments (given ' .. tostring(1 + select('#', ...)) .. ', expected at least 3)')
end
local ret = {}
@@ -259,15 +261,15 @@ local function tbl_extend(behavior, deep_extend, ...)
for i = 1, select('#', ...) do
local tbl = select(i, ...)
- vim.validate{["after the second argument"] = {tbl,'t'}}
+ vim.validate({ ['after the second argument'] = { tbl, 't' } })
if tbl then
for k, v in pairs(tbl) do
if deep_extend and can_merge(v) and can_merge(ret[k]) then
ret[k] = tbl_extend(behavior, true, ret[k], v)
elseif behavior ~= 'force' and ret[k] ~= nil then
if behavior == 'error' then
- error('key found in more than one map: '..k)
- end -- Else behavior is "keep".
+ error('key found in more than one map: ' .. k)
+ end -- Else behavior is "keep".
else
ret[k] = v
end
@@ -311,8 +313,12 @@ end
---@param b second value
---@returns `true` if values are equals, else `false`.
function vim.deep_equal(a, b)
- if a == b then return true end
- if type(a) ~= type(b) then return false end
+ if a == b then
+ return true
+ end
+ if type(a) ~= type(b) then
+ return false
+ end
if type(a) == 'table' then
for k, v in pairs(a) do
if not vim.deep_equal(v, b[k]) then
@@ -340,7 +346,13 @@ function vim.tbl_add_reverse_lookup(o)
for _, k in ipairs(keys) do
local v = o[k]
if o[v] then
- error(string.format("The reverse lookup found an existing value for %q while processing key %q", tostring(v), tostring(k)))
+ error(
+ string.format(
+ 'The reverse lookup found an existing value for %q while processing key %q',
+ tostring(v),
+ tostring(k)
+ )
+ )
end
o[v] = k
end
@@ -361,7 +373,7 @@ end
---
---@returns nested value indexed by key if it exists, else nil
function vim.tbl_get(o, ...)
- local keys = {...}
+ local keys = { ... }
if #keys == 0 then
return
end
@@ -389,12 +401,12 @@ end
---@param finish Final index on src. defaults to #src
---@returns dst
function vim.list_extend(dst, src, start, finish)
- vim.validate {
- dst = {dst, 't'};
- src = {src, 't'};
- start = {start, 'n', true};
- finish = {finish, 'n', true};
- }
+ vim.validate({
+ dst = { dst, 't' },
+ src = { src, 't' },
+ start = { start, 'n', true },
+ finish = { finish, 'n', true },
+ })
for i = start or 1, finish or #src do
table.insert(dst, src[i])
end
@@ -414,7 +426,7 @@ function vim.tbl_flatten(t)
local n = #_t
for i = 1, n do
local v = _t[i]
- if type(v) == "table" then
+ if type(v) == 'table' then
_tbl_flatten(v)
elseif v then
table.insert(result, v)
@@ -441,7 +453,7 @@ function vim.tbl_islist(t)
local count = 0
for k, _ in pairs(t) do
- if type(k) == "number" then
+ if type(k) == 'number' then
count = count + 1
else
return false
@@ -471,10 +483,12 @@ end
---@param t Table
---@returns Number that is the number of the value in table
function vim.tbl_count(t)
- vim.validate{t={t,'t'}}
+ vim.validate({ t = { t, 't' } })
local count = 0
- for _ in pairs(t) do count = count + 1 end
+ for _ in pairs(t) do
+ count = count + 1
+ end
return count
end
@@ -487,7 +501,7 @@ end
function vim.list_slice(list, start, finish)
local new_list = {}
for i = start or 1, finish or #list do
- new_list[#new_list+1] = list[i]
+ new_list[#new_list + 1] = list[i]
end
return new_list
end
@@ -498,7 +512,7 @@ end
---@param s String to trim
---@returns String with whitespace removed from its beginning and end
function vim.trim(s)
- vim.validate{s={s,'s'}}
+ vim.validate({ s = { s, 's' } })
return s:match('^%s*(.*%S)') or ''
end
@@ -508,7 +522,7 @@ end
---@param s String to escape
---@returns %-escaped pattern string
function vim.pesc(s)
- vim.validate{s={s,'s'}}
+ vim.validate({ s = { s, 's' } })
return s:gsub('[%(%)%.%%%+%-%*%?%[%]%^%$]', '%%%1')
end
@@ -518,7 +532,7 @@ end
---@param prefix (string) a prefix
---@return (boolean) true if `prefix` is a prefix of s
function vim.startswith(s, prefix)
- vim.validate { s = {s, 's'}; prefix = {prefix, 's'}; }
+ vim.validate({ s = { s, 's' }, prefix = { prefix, 's' } })
return s:sub(1, #prefix) == prefix
end
@@ -528,7 +542,7 @@ end
---@param suffix (string) a suffix
---@return (boolean) true if `suffix` is a suffix of s
function vim.endswith(s, suffix)
- vim.validate { s = {s, 's'}; suffix = {suffix, 's'}; }
+ vim.validate({ s = { s, 's' }, suffix = { suffix, 's' } })
return #suffix == 0 or s:sub(-#suffix) == suffix
end
@@ -582,18 +596,24 @@ end
--- only if the argument is valid. Can optionally return an additional
--- informative error message as the second returned value.
--- - msg: (optional) error string if validation fails
-function vim.validate(opt) end -- luacheck: no unused
+function vim.validate(opt) end -- luacheck: no unused
do
local type_names = {
- ['table'] = 'table', t = 'table',
- ['string'] = 'string', s = 'string',
- ['number'] = 'number', n = 'number',
- ['boolean'] = 'boolean', b = 'boolean',
- ['function'] = 'function', f = 'function',
- ['callable'] = 'callable', c = 'callable',
- ['nil'] = 'nil',
- ['thread'] = 'thread',
+ ['table'] = 'table',
+ t = 'table',
+ ['string'] = 'string',
+ s = 'string',
+ ['number'] = 'number',
+ n = 'number',
+ ['boolean'] = 'boolean',
+ b = 'boolean',
+ ['function'] = 'function',
+ f = 'function',
+ ['callable'] = 'callable',
+ c = 'callable',
+ ['nil'] = 'nil',
+ ['thread'] = 'thread',
['userdata'] = 'userdata',
}
@@ -612,21 +632,21 @@ do
return false, string.format('opt[%s]: expected table, got %s', param_name, type(spec))
end
- local val = spec[1] -- Argument value.
- local types = spec[2] -- Type name, or callable.
+ local val = spec[1] -- Argument value.
+ local types = spec[2] -- Type name, or callable.
local optional = (true == spec[3])
if type(types) == 'string' then
- types = {types}
+ types = { types }
end
if vim.is_callable(types) then
-- Check user-provided validation function.
local valid, optional_message = types(val)
if not valid then
- local error_message = string.format("%s: expected %s, got %s", param_name, (spec[3] or '?'), tostring(val))
+ local error_message = string.format('%s: expected %s, got %s', param_name, (spec[3] or '?'), tostring(val))
if optional_message ~= nil then
- error_message = error_message .. string.format(". Info: %s", optional_message)
+ error_message = error_message .. string.format('. Info: %s', optional_message)
end
return false, error_message
@@ -646,10 +666,10 @@ do
end
end
if not success then
- return false, string.format("%s: expected %s, got %s", param_name, table.concat(types, '|'), type(val))
+ return false, string.format('%s: expected %s, got %s', param_name, table.concat(types, '|'), type(val))
end
else
- return false, string.format("invalid type name: %s", tostring(types))
+ return false, string.format('invalid type name: %s', tostring(types))
end
end
@@ -668,9 +688,13 @@ end
---@param f Any object
---@return true if `f` is callable, else false
function vim.is_callable(f)
- if type(f) == 'function' then return true end
+ if type(f) == 'function' then
+ return true
+ end
local m = getmetatable(f)
- if m == nil then return false end
+ if m == nil then
+ return false
+ end
return type(m.__call) == 'function'
end