2022-12-24 18:03:33 +01:00
|
|
|
local M = {}
|
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
M.echo = function(str)
|
|
|
|
vim.cmd "redraw"
|
|
|
|
vim.api.nvim_echo({ { str, "Bold" } }, true, {})
|
|
|
|
end
|
2023-03-26 12:22:41 +02:00
|
|
|
|
2023-07-06 18:42:33 +02:00
|
|
|
local function shell_call(args)
|
|
|
|
local output = vim.fn.system(args)
|
|
|
|
assert(vim.v.shell_error == 0, "External call failed with error code: " .. vim.v.shell_error .. "\n" .. output)
|
|
|
|
end
|
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
M.lazy = function(install_path)
|
|
|
|
------------- base46 ---------------
|
|
|
|
local lazy_path = vim.fn.stdpath "data" .. "/lazy/base46"
|
2023-03-26 12:22:41 +02:00
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
M.echo " Compiling base46 theme to bytecode ..."
|
2023-03-26 12:22:41 +02:00
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
local base46_repo = "https://github.com/NvChad/base46"
|
2023-07-06 18:42:33 +02:00
|
|
|
shell_call { "git", "clone", "--depth", "1", "-b", "v2.0", base46_repo, lazy_path }
|
2023-03-27 01:57:57 +02:00
|
|
|
vim.opt.rtp:prepend(lazy_path)
|
2023-03-26 12:22:41 +02:00
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
require("base46").compile()
|
2022-12-24 18:03:33 +01:00
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
--------- lazy.nvim ---------------
|
|
|
|
M.echo " Installing lazy.nvim & plugins ..."
|
2023-03-24 00:57:09 +01:00
|
|
|
local repo = "https://github.com/folke/lazy.nvim.git"
|
2023-07-06 18:42:33 +02:00
|
|
|
shell_call { "git", "clone", "--filter=blob:none", "--branch=stable", repo, install_path }
|
2023-01-07 09:11:43 +01:00
|
|
|
vim.opt.rtp:prepend(install_path)
|
2022-12-24 18:03:33 +01:00
|
|
|
|
2023-03-27 01:57:57 +02:00
|
|
|
-- install plugins
|
2022-12-24 18:03:33 +01:00
|
|
|
require "plugins"
|
2023-03-08 14:27:54 +01:00
|
|
|
|
2023-04-10 06:35:05 +02:00
|
|
|
-- mason packages & show post_boostrap screen
|
2023-08-09 16:52:46 +02:00
|
|
|
require "nvchad.post_install"()
|
2022-12-24 18:03:33 +01:00
|
|
|
end
|
|
|
|
|
2023-01-07 09:11:43 +01:00
|
|
|
M.gen_chadrc_template = function()
|
2022-12-24 18:03:33 +01:00
|
|
|
if not vim.api.nvim_get_runtime_file("lua/custom/chadrc.lua", false)[1] then
|
2023-03-27 02:04:12 +02:00
|
|
|
local path = vim.fn.stdpath "config" .. "/lua/custom/"
|
2023-06-18 14:51:36 +02:00
|
|
|
local input = "N"
|
|
|
|
|
|
|
|
if next(vim.api.nvim_list_uis()) then
|
|
|
|
input = vim.fn.input "Do you want to install example custom config? (y/N) : "
|
|
|
|
end
|
2022-12-24 18:03:33 +01:00
|
|
|
|
2023-04-10 02:34:37 +02:00
|
|
|
-- clone example_config repo
|
2022-12-24 18:03:33 +01:00
|
|
|
if input == "y" then
|
2023-03-27 01:57:57 +02:00
|
|
|
M.echo "cloning example custom config repo ..."
|
2023-07-06 18:42:33 +02:00
|
|
|
shell_call { "git", "clone", "--depth", "1", "https://github.com/NvChad/example_config", path }
|
2023-03-27 02:04:12 +02:00
|
|
|
vim.fn.delete(path .. ".git", "rf")
|
2023-03-08 14:27:54 +01:00
|
|
|
else
|
2023-04-10 02:34:37 +02:00
|
|
|
-- use very minimal chadrc
|
2023-03-27 02:04:12 +02:00
|
|
|
vim.fn.mkdir(path, "p")
|
2023-03-08 14:27:54 +01:00
|
|
|
|
2023-03-27 02:04:12 +02:00
|
|
|
local file = io.open(path .. "chadrc.lua", "w")
|
2023-04-10 06:35:05 +02:00
|
|
|
file:write "---@type ChadrcConfig \n local M = {}\n M.ui = {theme = 'onedark'}\n return M"
|
2023-03-27 01:57:57 +02:00
|
|
|
file:close()
|
2022-12-24 18:03:33 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|