Added base setup
This commit is contained in:
commit
1afab44385
6
init.lua
Normal file
6
init.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
local util = require("util")
|
||||||
|
|
||||||
|
vim.schedule(function()
|
||||||
|
util.packer_deferred()
|
||||||
|
util.require("config.plugins")
|
||||||
|
end)
|
39
lua/config/plugins.lua
Normal file
39
lua/config/plugins.lua
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
local packer = require("util.packer")
|
||||||
|
|
||||||
|
local config = {
|
||||||
|
opt_default = true,
|
||||||
|
auto_reload_compiled = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
local function plugins(use, plugin)
|
||||||
|
-- Bootstrap
|
||||||
|
use({ "wbthomason/packer.nvim" })
|
||||||
|
|
||||||
|
-- Explorer
|
||||||
|
plugin("nvim-neo-tree/neo-tree.nvim")
|
||||||
|
use({
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
module = "nui",
|
||||||
|
})
|
||||||
|
|
||||||
|
--plugin("nvim-treesitter/nvim-treesitter")
|
||||||
|
use({ "nvim-lua/plenary.nvim", module = "plenary" })
|
||||||
|
|
||||||
|
-- Theme: Icons
|
||||||
|
use({
|
||||||
|
"kyazdani42/nvim-web-devicons",
|
||||||
|
module = "nvim-web-devicons",
|
||||||
|
config = function()
|
||||||
|
require("nvim-web-devicons").setup({ default = true })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
plugin("nvim-treesitter/nvim-treesitter")
|
||||||
|
|
||||||
|
use({ "nvim-treesitter/playground", cmd = { "TSHighlightCapturesUnderCursor", "TSPlaygroundToggle" } })
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return packer.setup(config, plugins)
|
8
lua/plugins/neo-tree.lua
Normal file
8
lua/plugins/neo-tree.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
return {
|
||||||
|
cmd = "Neotree",
|
||||||
|
config = function()
|
||||||
|
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
|
||||||
|
|
||||||
|
require("neo-tree").setup({filesystem = {follow_current_file = true}})
|
||||||
|
end,
|
||||||
|
}
|
23
lua/plugins/treesitter.lua
Normal file
23
lua/plugins/treesitter.lua
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
local M = {
|
||||||
|
run = ":TSUpdate",
|
||||||
|
event = "User PackerDefered",
|
||||||
|
requires = {
|
||||||
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||||
|
"RRethy/nvim-treesitter-textsubjects",
|
||||||
|
"nvim-treesitter/nvim-treesitter-refactor",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
function M.config()
|
||||||
|
require("nvim-treesitter.configs").setup({
|
||||||
|
ensure_installed = {
|
||||||
|
"css",
|
||||||
|
"go",
|
||||||
|
"lua",
|
||||||
|
},
|
||||||
|
sync_install = false,
|
||||||
|
auto_install = true,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
41
lua/util/init.lua
Normal file
41
lua/util/init.lua
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.packer_deferred()
|
||||||
|
vim.cmd([[do User PackerDefered]])
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.require(mod)
|
||||||
|
return M.try(require, mod)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.try(fn, ...)
|
||||||
|
local args = { ... }
|
||||||
|
|
||||||
|
return xpcall(function()
|
||||||
|
return fn(unpack(args))
|
||||||
|
end, function(err)
|
||||||
|
local lines = {}
|
||||||
|
table.insert(lines, err)
|
||||||
|
table.insert(lines, debug.traceback("", 3))
|
||||||
|
|
||||||
|
M.error(table.concat(lines, "\n"))
|
||||||
|
return err
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
function M.t(str)
|
||||||
|
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.warn(msg, name)
|
||||||
|
vim.notify(msg, vim.log.levels.WARN, { title = name or "init.lua" })
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.error(msg, name)
|
||||||
|
vim.notify(msg, vim.log.levels.ERROR, { title = name or "init.lua" })
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.info(msg, name)
|
||||||
|
vim.notify(msg, vim.log.levels.INFO, { title = name or "init.lua" })
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
127
lua/util/packer.lua
Normal file
127
lua/util/packer.lua
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
local util = require("util")
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.local_plugins = {}
|
||||||
|
|
||||||
|
function M.bootstrap()
|
||||||
|
local fn = vim.fn
|
||||||
|
local install_path = fn.stdpath("data") .. "/site/pack/packer/opt/packer.nvim"
|
||||||
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
|
fn.system({"git", "clone", "--depth", "1", "https://github.com/wbthomason/packer.nvim", install_path})
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.auto_compile()
|
||||||
|
local group = vim.api.nvim_create_augroup("PackerUserConfig", {})
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||||
|
pattern = { "plugins.lua", "*/plugins/*.lua", "packer.lua" },
|
||||||
|
group = group,
|
||||||
|
callback = function()
|
||||||
|
for p, _ in pairs(package.loaded) do
|
||||||
|
if p:find("^plugins") or p == "config.plugins" or p == "util.packer" then
|
||||||
|
package.loaded[p] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
require("config.plugins")
|
||||||
|
vim.cmd([[PackerCompile]])
|
||||||
|
util.info("Packer compiled...")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.use(spec, fn)
|
||||||
|
if type(spec) == "string" then
|
||||||
|
spec = { spec }
|
||||||
|
elseif type(spec) == "table" and #spec > 1 then
|
||||||
|
for i, child_spec in ipairs(spec) do
|
||||||
|
spec[i] = M.use(child_spec, fn)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if
|
||||||
|
type(spec.requires) == "string"
|
||||||
|
or (type(spec.requires) == "table" and not vim.tbl_islist(spec.requires) and #spec.requires == 1)
|
||||||
|
then
|
||||||
|
spec.requires = { spec.requires }
|
||||||
|
end
|
||||||
|
if spec.requires then
|
||||||
|
for i, v in ipairs(spec.requires) do
|
||||||
|
spec.requires[i] = M.use(v, fn)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
fn(spec)
|
||||||
|
return spec
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.get_name(pkg)
|
||||||
|
local parts = vim.split(pkg, "/")
|
||||||
|
return parts[#parts], parts[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.has_local(name)
|
||||||
|
return vim.loop.fs_stat(vim.fn.expand("~/projects/" .. name)) ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.wrap(use)
|
||||||
|
return function(spec)
|
||||||
|
spec = M.use(spec, M.process_plugin)
|
||||||
|
use(spec)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.process_plugin(spec)
|
||||||
|
if spec.plugin then
|
||||||
|
local ok, plugin = pcall(require, "plugins." .. spec.plugin)
|
||||||
|
if not ok then
|
||||||
|
util.error("Failed to load plugins." .. spec.plugin .. "\n\n" .. plugin)
|
||||||
|
else
|
||||||
|
for k, v in pairs(plugin) do
|
||||||
|
-- what we call init, is called setup in Packer
|
||||||
|
-- skip plugin.setup methods. Thos are to be called maually from scripts
|
||||||
|
local kk = k == "init" and "setup" or k ~= "setup" and k
|
||||||
|
if kk then
|
||||||
|
spec[kk] = type(v) == "function" and ([[require("plugins.%s").%s()]]):format(spec.plugin, k) or v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
spec.plugin = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.plugin(pkg)
|
||||||
|
local name = M.get_name(pkg):lower()
|
||||||
|
name = name:gsub("%.n?vim$", "")
|
||||||
|
name = name:gsub("^n?vim%-", "")
|
||||||
|
name = name:gsub("%-n?vim$", "")
|
||||||
|
name = name:gsub("%.lua$", "")
|
||||||
|
name = name:gsub("%.", "_")
|
||||||
|
return { pkg, plugin = name }
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.setup(config, fn)
|
||||||
|
local bootstrapped = M.bootstrap()
|
||||||
|
M.auto_compile()
|
||||||
|
|
||||||
|
vim.cmd([[packadd packer.nvim]])
|
||||||
|
|
||||||
|
local packer = require("packer")
|
||||||
|
packer.init(config)
|
||||||
|
|
||||||
|
M.local_plugins = config.local_plugins or {}
|
||||||
|
|
||||||
|
packer.startup(function(use)
|
||||||
|
use = M.wrap(use)
|
||||||
|
fn(use, function(pkg)
|
||||||
|
return use(M.plugin(pkg))
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if bootstrapped then
|
||||||
|
require("packer").sync()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
220
plugin/packer_compiled.lua
Normal file
220
plugin/packer_compiled.lua
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
-- Automatically generated packer.nvim plugin loader code
|
||||||
|
|
||||||
|
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
|
||||||
|
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_command('packadd packer.nvim')
|
||||||
|
|
||||||
|
local no_errors, error_msg = pcall(function()
|
||||||
|
|
||||||
|
_G._packer = _G._packer or {}
|
||||||
|
_G._packer.inside_compile = true
|
||||||
|
|
||||||
|
local time
|
||||||
|
local profile_info
|
||||||
|
local should_profile = false
|
||||||
|
if should_profile then
|
||||||
|
local hrtime = vim.loop.hrtime
|
||||||
|
profile_info = {}
|
||||||
|
time = function(chunk, start)
|
||||||
|
if start then
|
||||||
|
profile_info[chunk] = hrtime()
|
||||||
|
else
|
||||||
|
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
time = function(chunk, start) end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function save_profiles(threshold)
|
||||||
|
local sorted_times = {}
|
||||||
|
for chunk_name, time_taken in pairs(profile_info) do
|
||||||
|
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
|
||||||
|
end
|
||||||
|
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
|
||||||
|
local results = {}
|
||||||
|
for i, elem in ipairs(sorted_times) do
|
||||||
|
if not threshold or threshold and elem[2] > threshold then
|
||||||
|
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if threshold then
|
||||||
|
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
|
||||||
|
end
|
||||||
|
|
||||||
|
_G._packer.profile_output = results
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], true)
|
||||||
|
local package_path_str = "/home/kjuulh/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/kjuulh/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/kjuulh/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/kjuulh/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
|
||||||
|
local install_cpath_pattern = "/home/kjuulh/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
|
||||||
|
if not string.find(package.path, package_path_str, 1, true) then
|
||||||
|
package.path = package.path .. ';' .. package_path_str
|
||||||
|
end
|
||||||
|
|
||||||
|
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
|
||||||
|
package.cpath = package.cpath .. ';' .. install_cpath_pattern
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[Luarocks path setup]], false)
|
||||||
|
time([[try_loadstring definition]], true)
|
||||||
|
local function try_loadstring(s, component, name)
|
||||||
|
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
|
||||||
|
if not success then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
time([[try_loadstring definition]], false)
|
||||||
|
time([[Defining packer_plugins]], true)
|
||||||
|
_G.packer_plugins = {
|
||||||
|
["neo-tree.nvim"] = {
|
||||||
|
commands = { "Neotree" },
|
||||||
|
config = { 'require("plugins.neo-tree").config()' },
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/neo-tree.nvim",
|
||||||
|
url = "https://github.com/nvim-neo-tree/neo-tree.nvim"
|
||||||
|
},
|
||||||
|
["nui.nvim"] = {
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nui.nvim",
|
||||||
|
url = "https://github.com/MunifTanjim/nui.nvim"
|
||||||
|
},
|
||||||
|
["nvim-treesitter"] = {
|
||||||
|
after = { "nvim-treesitter-textsubjects", "nvim-treesitter-textobjects", "nvim-treesitter-refactor" },
|
||||||
|
config = { 'require("plugins.treesitter").config()' },
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nvim-treesitter",
|
||||||
|
url = "https://github.com/nvim-treesitter/nvim-treesitter"
|
||||||
|
},
|
||||||
|
["nvim-treesitter-refactor"] = {
|
||||||
|
load_after = {
|
||||||
|
["nvim-treesitter"] = true
|
||||||
|
},
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-refactor",
|
||||||
|
url = "https://github.com/nvim-treesitter/nvim-treesitter-refactor"
|
||||||
|
},
|
||||||
|
["nvim-treesitter-textobjects"] = {
|
||||||
|
load_after = {
|
||||||
|
["nvim-treesitter"] = true
|
||||||
|
},
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects",
|
||||||
|
url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects"
|
||||||
|
},
|
||||||
|
["nvim-treesitter-textsubjects"] = {
|
||||||
|
load_after = {
|
||||||
|
["nvim-treesitter"] = true
|
||||||
|
},
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textsubjects",
|
||||||
|
url = "https://github.com/RRethy/nvim-treesitter-textsubjects"
|
||||||
|
},
|
||||||
|
["nvim-web-devicons"] = {
|
||||||
|
config = { "\27LJ\2\nO\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\fdefault\2\nsetup\22nvim-web-devicons\frequire\0" },
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
|
||||||
|
url = "https://github.com/kyazdani42/nvim-web-devicons"
|
||||||
|
},
|
||||||
|
["packer.nvim"] = {
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/packer.nvim",
|
||||||
|
url = "https://github.com/wbthomason/packer.nvim"
|
||||||
|
},
|
||||||
|
playground = {
|
||||||
|
commands = { "TSHighlightCapturesUnderCursor", "TSPlaygroundToggle" },
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = true,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/playground",
|
||||||
|
url = "https://github.com/nvim-treesitter/playground"
|
||||||
|
},
|
||||||
|
["plenary.nvim"] = {
|
||||||
|
loaded = false,
|
||||||
|
needs_bufread = false,
|
||||||
|
only_cond = false,
|
||||||
|
path = "/home/kjuulh/.local/share/nvim/site/pack/packer/opt/plenary.nvim",
|
||||||
|
url = "https://github.com/nvim-lua/plenary.nvim"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
time([[Defining packer_plugins]], false)
|
||||||
|
local module_lazy_loads = {
|
||||||
|
["^nui"] = "nui.nvim",
|
||||||
|
["^nvim%-web%-devicons"] = "nvim-web-devicons",
|
||||||
|
["^plenary"] = "plenary.nvim"
|
||||||
|
}
|
||||||
|
local lazy_load_called = {['packer.load'] = true}
|
||||||
|
local function lazy_load_module(module_name)
|
||||||
|
local to_load = {}
|
||||||
|
if lazy_load_called[module_name] then return nil end
|
||||||
|
lazy_load_called[module_name] = true
|
||||||
|
for module_pat, plugin_name in pairs(module_lazy_loads) do
|
||||||
|
if not _G.packer_plugins[plugin_name].loaded and string.match(module_name, module_pat) then
|
||||||
|
to_load[#to_load + 1] = plugin_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if #to_load > 0 then
|
||||||
|
require('packer.load')(to_load, {module = module_name}, _G.packer_plugins)
|
||||||
|
local loaded_mod = package.loaded[module_name]
|
||||||
|
if loaded_mod then
|
||||||
|
return function(modname) return loaded_mod end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not vim.g.packer_custom_loader_enabled then
|
||||||
|
table.insert(package.loaders, 1, lazy_load_module)
|
||||||
|
vim.g.packer_custom_loader_enabled = true
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- Command lazy-loads
|
||||||
|
time([[Defining lazy-load commands]], true)
|
||||||
|
pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file TSHighlightCapturesUnderCursor lua require("packer.load")({'playground'}, { cmd = "TSHighlightCapturesUnderCursor", l1 = <line1>, l2 = <line2>, bang = <q-bang>, args = <q-args>, mods = "<mods>" }, _G.packer_plugins)]])
|
||||||
|
pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file Neotree lua require("packer.load")({'neo-tree.nvim'}, { cmd = "Neotree", l1 = <line1>, l2 = <line2>, bang = <q-bang>, args = <q-args>, mods = "<mods>" }, _G.packer_plugins)]])
|
||||||
|
pcall(vim.cmd, [[command -nargs=* -range -bang -complete=file TSPlaygroundToggle lua require("packer.load")({'playground'}, { cmd = "TSPlaygroundToggle", l1 = <line1>, l2 = <line2>, bang = <q-bang>, args = <q-args>, mods = "<mods>" }, _G.packer_plugins)]])
|
||||||
|
time([[Defining lazy-load commands]], false)
|
||||||
|
|
||||||
|
vim.cmd [[augroup packer_load_aucmds]]
|
||||||
|
vim.cmd [[au!]]
|
||||||
|
-- Event lazy-loads
|
||||||
|
time([[Defining lazy-load event autocommands]], true)
|
||||||
|
vim.cmd [[au User PackerDefered ++once lua require("packer.load")({'nvim-treesitter'}, { event = "User PackerDefered" }, _G.packer_plugins)]]
|
||||||
|
time([[Defining lazy-load event autocommands]], false)
|
||||||
|
vim.cmd("augroup END")
|
||||||
|
|
||||||
|
_G._packer.inside_compile = false
|
||||||
|
if _G._packer.needs_bufread == true then
|
||||||
|
vim.cmd("doautocmd BufRead")
|
||||||
|
end
|
||||||
|
_G._packer.needs_bufread = false
|
||||||
|
|
||||||
|
if should_profile then save_profiles() end
|
||||||
|
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not no_errors then
|
||||||
|
error_msg = error_msg:gsub('"', '\\"')
|
||||||
|
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user