103 lines
2.1 KiB
Lua
103 lines
2.1 KiB
Lua
local M = {
|
|
use_google_cache = nil,
|
|
flags = {
|
|
blink = true,
|
|
},
|
|
}
|
|
|
|
function M.exec(command, args)
|
|
local Job = require("plenary.job")
|
|
local job = Job:new({
|
|
command = command,
|
|
args = args,
|
|
})
|
|
job:sync()
|
|
job:wait()
|
|
return job:result()
|
|
end
|
|
|
|
function M.map(mode, lhs, rhs, opts)
|
|
local options = { noremap = true }
|
|
if opts then
|
|
options = vim.tbl_extend("force", options, opts)
|
|
end
|
|
-- vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
|
vim.keymap.set(mode, lhs, rhs, options)
|
|
end
|
|
|
|
function M.use_google()
|
|
if M.use_google_cache == nil then
|
|
M.use_google_cache = M.file_exists(os.getenv("HOME") .. "/use_google")
|
|
end
|
|
return M.use_google_cache
|
|
end
|
|
|
|
function M.file_exists(name)
|
|
local f = io.open(name, "r")
|
|
if f ~= nil then
|
|
io.close(f)
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
function M.dump(o)
|
|
if type(o) == "table" then
|
|
local s = "{ "
|
|
for k, v in pairs(o) do
|
|
if type(k) ~= "number" then
|
|
k = '"' .. k .. '"'
|
|
end
|
|
s = s .. "[" .. k .. "] = " .. M.dump(v) .. ","
|
|
end
|
|
return s .. "} "
|
|
else
|
|
return tostring(o)
|
|
end
|
|
end
|
|
|
|
function M.tprint(tbl, indent)
|
|
if not indent then
|
|
indent = 0
|
|
end
|
|
local toprint = string.rep(" ", indent) .. "{\r\n"
|
|
indent = indent + 2
|
|
for k, v in pairs(tbl) do
|
|
toprint = toprint .. string.rep(" ", indent)
|
|
if type(k) == "number" then
|
|
toprint = toprint .. "[" .. k .. "] = "
|
|
elseif type(k) == "string" then
|
|
toprint = toprint .. k .. "= "
|
|
end
|
|
if type(v) == "number" then
|
|
toprint = toprint .. v .. ",\r\n"
|
|
elseif type(v) == "string" then
|
|
toprint = toprint .. '"' .. v .. '",\r\n'
|
|
elseif type(v) == "table" then
|
|
toprint = toprint .. M.tprint(v, indent + 2) .. ",\r\n"
|
|
else
|
|
toprint = toprint .. '"' .. tostring(v) .. '",\r\n'
|
|
end
|
|
end
|
|
toprint = toprint .. string.rep(" ", indent - 2) .. "}"
|
|
return toprint
|
|
end
|
|
|
|
function M.log(message)
|
|
local log_file_path = vim.fn.expand("$HOME/nvim.log")
|
|
local log_file = io.open(log_file_path, "a")
|
|
io.output(log_file)
|
|
io.write(message .. "\n")
|
|
io.close(log_file)
|
|
end
|
|
|
|
function M.TableConcat(t1, t2)
|
|
for i = 1, #t2 do
|
|
t1[#t1 + 1] = t2[i]
|
|
end
|
|
return t1
|
|
end
|
|
|
|
return M
|