Merge branch 'v2.0' into p53
This commit is contained in:
+18
-18
@@ -1,18 +1,24 @@
|
||||
local M = {}
|
||||
local fn = vim.fn
|
||||
|
||||
M.echo = function(str)
|
||||
vim.cmd "redraw"
|
||||
vim.api.nvim_echo({ { str, "Bold" } }, true, {})
|
||||
end
|
||||
|
||||
local function shell_call(args)
|
||||
local output = fn.system(args)
|
||||
assert(vim.v.shell_error == 0, "External call failed with error code: " .. vim.v.shell_error .. "\n" .. output)
|
||||
end
|
||||
|
||||
M.lazy = function(install_path)
|
||||
------------- base46 ---------------
|
||||
local lazy_path = vim.fn.stdpath "data" .. "/lazy/base46"
|
||||
local lazy_path = fn.stdpath "data" .. "/lazy/base46"
|
||||
|
||||
M.echo " Compiling base46 theme to bytecode ..."
|
||||
|
||||
local base46_repo = "https://github.com/NvChad/base46"
|
||||
vim.fn.system { "git", "clone", "--depth", "1", "-b", "v2.0", base46_repo, lazy_path }
|
||||
shell_call { "git", "clone", "--depth", "1", "-b", "v2.0", base46_repo, lazy_path }
|
||||
vim.opt.rtp:prepend(lazy_path)
|
||||
|
||||
require("base46").compile()
|
||||
@@ -20,32 +26,26 @@ M.lazy = function(install_path)
|
||||
--------- lazy.nvim ---------------
|
||||
M.echo " Installing lazy.nvim & plugins ..."
|
||||
local repo = "https://github.com/folke/lazy.nvim.git"
|
||||
vim.fn.system { "git", "clone", "--filter=blob:none", "--branch=stable", repo, install_path }
|
||||
shell_call { "git", "clone", "--filter=blob:none", "--branch=stable", repo, install_path }
|
||||
vim.opt.rtp:prepend(install_path)
|
||||
|
||||
-- install plugins
|
||||
require "plugins"
|
||||
|
||||
-- mason packages & show post_boostrap screen
|
||||
require "nvchad.post_bootstrap"()
|
||||
-- mason packages & show post_bootstrap screen
|
||||
require "nvchad.post_install"()
|
||||
end
|
||||
|
||||
M.gen_chadrc_template = function()
|
||||
if not vim.api.nvim_get_runtime_file("lua/custom/chadrc.lua", false)[1] then
|
||||
local path = vim.fn.stdpath "config" .. "/lua/custom/"
|
||||
local input = vim.fn.input "Do you want to install example custom config? (y/N) : "
|
||||
local path = fn.stdpath "config" .. "/lua/custom"
|
||||
|
||||
-- clone example_config repo
|
||||
if input == "y" then
|
||||
M.echo "cloning example custom config repo ..."
|
||||
vim.fn.system { "git", "clone", "--depth", "1", "https://github.com/NvChad/example_config", path }
|
||||
vim.fn.delete(path .. ".git", "rf")
|
||||
else
|
||||
-- use very minimal chadrc
|
||||
vim.fn.mkdir(path, "p")
|
||||
if fn.isdirectory(path) ~= 1 then
|
||||
-- use very minimal chadrc
|
||||
fn.mkdir(path, "p")
|
||||
|
||||
local file = io.open(path .. "chadrc.lua", "w")
|
||||
file:write "---@type ChadrcConfig \n local M = {}\n M.ui = {theme = 'onedark'}\n return M"
|
||||
local file = io.open(path .. "/chadrc.lua", "w")
|
||||
if file then
|
||||
file:write "---@type ChadrcConfig\nlocal M = {}\n\nM.ui = { theme = 'onedark' }\n\nreturn M"
|
||||
file:close()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -90,6 +90,6 @@ M.plugins = "" -- path i.e "custom.plugins", so make custom/plugins.lua file
|
||||
|
||||
M.lazy_nvim = require "plugins.configs.lazy_nvim" -- config for lazy.nvim startup options
|
||||
|
||||
M.mappings = {}
|
||||
M.mappings = require "core.mappings"
|
||||
|
||||
return M
|
||||
|
||||
+41
-10
@@ -59,8 +59,8 @@ for _, provider in ipairs { "node", "perl", "python3", "ruby" } do
|
||||
end
|
||||
|
||||
-- add binaries installed by mason.nvim to path
|
||||
local is_windows = vim.loop.os_uname().sysname == "Windows_NT"
|
||||
vim.env.PATH = vim.env.PATH .. (is_windows and ";" or ":") .. vim.fn.stdpath "data" .. "/mason/bin"
|
||||
local is_windows = vim.fn.has("win32") ~= 0
|
||||
vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH
|
||||
|
||||
-------------------------------------- autocmds ------------------------------------------
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
@@ -74,11 +74,10 @@ autocmd("FileType", {
|
||||
})
|
||||
|
||||
-- reload some chadrc options on-save
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = vim.tbl_map(
|
||||
vim.fs.normalize,
|
||||
vim.fn.glob(vim.fn.stdpath "config" .. "/lua/custom/**/*.lua", true, true, true)
|
||||
),
|
||||
autocmd("BufWritePost", {
|
||||
pattern = vim.tbl_map(function(path)
|
||||
return vim.fs.normalize(vim.loop.fs_realpath(path))
|
||||
end, vim.fn.glob(vim.fn.stdpath "config" .. "/lua/custom/**/*.lua", true, true, true)),
|
||||
group = vim.api.nvim_create_augroup("ReloadNvChad", {}),
|
||||
|
||||
callback = function(opts)
|
||||
@@ -97,17 +96,49 @@ vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
vim.g.transparency = true
|
||||
|
||||
-- statusline
|
||||
require("plenary.reload").reload_module("nvchad_ui.statusline." .. config.ui.statusline.theme)
|
||||
vim.opt.statusline = "%!v:lua.require('nvchad_ui.statusline." .. config.ui.statusline.theme .. "').run()"
|
||||
require("plenary.reload").reload_module("nvchad.statusline." .. config.ui.statusline.theme)
|
||||
vim.opt.statusline = "%!v:lua.require('nvchad.statusline." .. config.ui.statusline.theme .. "').run()"
|
||||
|
||||
-- tabufline
|
||||
if config.ui.tabufline.enabled then
|
||||
require("plenary.reload").reload_module "nvchad.tabufline.modules"
|
||||
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules').run()"
|
||||
end
|
||||
|
||||
require("base46").load_all_highlights()
|
||||
-- vim.cmd("redraw!")
|
||||
end,
|
||||
})
|
||||
|
||||
-- user event that loads after UIEnter + only if file buf is there
|
||||
vim.api.nvim_create_autocmd({ "UIEnter", "BufReadPost", "BufNewFile" }, {
|
||||
group = vim.api.nvim_create_augroup("NvFilePost", { clear = true }),
|
||||
callback = function(args)
|
||||
local file = vim.api.nvim_buf_get_name(args.buf)
|
||||
local buftype = vim.api.nvim_buf_get_option(args.buf, "buftype")
|
||||
|
||||
if not vim.g.ui_entered and args.event == "UIEnter" then
|
||||
vim.g.ui_entered = true
|
||||
end
|
||||
|
||||
if file ~= "" and buftype ~= "nofile" and vim.g.ui_entered then
|
||||
vim.api.nvim_exec_autocmds("User", { pattern = "FilePost", modeline = false })
|
||||
vim.api.nvim_del_augroup_by_name "NvFilePost"
|
||||
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_exec_autocmds("FileType", {})
|
||||
|
||||
if vim.g.editorconfig then
|
||||
require("editorconfig").config(args.buf)
|
||||
end
|
||||
end, 0)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-------------------------------------- commands ------------------------------------------
|
||||
local new_cmd = vim.api.nvim_create_user_command
|
||||
|
||||
new_cmd("NvChadUpdate", function()
|
||||
require "nvchad.update"()
|
||||
require "nvchad.updater"()
|
||||
end, {})
|
||||
|
||||
+26
-14
@@ -18,6 +18,7 @@ M.general = {
|
||||
n = {
|
||||
["<leader>n"] = { ":noh <CR>", "Clear highlights" },
|
||||
["<leader>rr"] = { ":source $MYVIMRC<CR>", "Reload config file" },
|
||||
["<Esc>"] = { "<cmd> noh <CR>", "Clear highlights" },
|
||||
-- switch between windows
|
||||
["<C-h>"] = { "<C-w>h", "Window left" },
|
||||
["<C-l>"] = { "<C-w>l", "Window right" },
|
||||
@@ -61,6 +62,13 @@ M.general = {
|
||||
-- new buffer
|
||||
-- ["<leader>b"] = { "<cmd> enew <CR>", "New buffer" },
|
||||
-- ["<leader>ch"] = { "<cmd> NvCheatsheet <CR>", "Mapping cheatsheet" },
|
||||
|
||||
["<leader>fm"] = {
|
||||
function()
|
||||
vim.lsp.buf.format { async = true }
|
||||
end,
|
||||
"LSP formatting",
|
||||
},
|
||||
},
|
||||
|
||||
t = {
|
||||
@@ -70,6 +78,8 @@ M.general = {
|
||||
v = {
|
||||
-- ["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } },
|
||||
-- ["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } },
|
||||
["<"] = { "<gv", "Indent line" },
|
||||
[">"] = { ">gv", "Indent line" },
|
||||
},
|
||||
|
||||
x = {
|
||||
@@ -147,14 +157,14 @@ M.tabufline = {
|
||||
-- cycle through buffers
|
||||
["<tab>"] = {
|
||||
function()
|
||||
require("nvchad_ui.tabufline").tabuflineNext()
|
||||
require("nvchad.tabufline").tabuflineNext()
|
||||
end,
|
||||
"Goto next buffer",
|
||||
},
|
||||
|
||||
["<S-tab>"] = {
|
||||
function()
|
||||
require("nvchad_ui.tabufline").tabuflinePrev()
|
||||
require("nvchad.tabufline").tabuflinePrev()
|
||||
end,
|
||||
"Goto prev buffer",
|
||||
},
|
||||
@@ -162,7 +172,7 @@ M.tabufline = {
|
||||
-- close buffer + hide terminal buffer
|
||||
["<leader>x"] = {
|
||||
function()
|
||||
require("nvchad_ui.tabufline").close_buffer()
|
||||
require("nvchad.tabufline").close_buffer()
|
||||
end,
|
||||
"Close buffer",
|
||||
},
|
||||
@@ -240,7 +250,7 @@ M.lspconfig = {
|
||||
|
||||
["<leader>ra"] = {
|
||||
function()
|
||||
require("nvchad_ui.renamer").open()
|
||||
require("nvchad.renamer").open()
|
||||
end,
|
||||
"LSP rename",
|
||||
},
|
||||
@@ -259,7 +269,7 @@ M.lspconfig = {
|
||||
"LSP references",
|
||||
},
|
||||
|
||||
["<leader>f"] = {
|
||||
["<leader>lf"] = {
|
||||
function()
|
||||
vim.diagnostic.open_float { border = "rounded" }
|
||||
end,
|
||||
@@ -268,14 +278,14 @@ M.lspconfig = {
|
||||
|
||||
["[d"] = {
|
||||
function()
|
||||
vim.diagnostic.goto_prev({ float = { border = "rounded" }})
|
||||
vim.diagnostic.goto_prev { float = { border = "rounded" } }
|
||||
end,
|
||||
"Goto prev",
|
||||
},
|
||||
|
||||
["]d"] = {
|
||||
function()
|
||||
vim.diagnostic.goto_next({ float = { border = "rounded" }})
|
||||
vim.diagnostic.goto_next { float = { border = "rounded" } }
|
||||
end,
|
||||
"Goto next",
|
||||
},
|
||||
@@ -287,13 +297,6 @@ M.lspconfig = {
|
||||
-- "Diagnostic setloclist",
|
||||
-- },
|
||||
|
||||
["<leader>fm"] = {
|
||||
function()
|
||||
vim.lsp.buf.format { async = true }
|
||||
end,
|
||||
"LSP formatting",
|
||||
},
|
||||
|
||||
["<leader>wa"] = {
|
||||
function()
|
||||
vim.lsp.buf.add_workspace_folder()
|
||||
@@ -315,6 +318,15 @@ M.lspconfig = {
|
||||
"List workspace folders",
|
||||
},
|
||||
},
|
||||
|
||||
v = {
|
||||
["<leader>ca"] = {
|
||||
function()
|
||||
vim.lsp.buf.code_action()
|
||||
end,
|
||||
"LSP code action",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
M.nvimtree = {
|
||||
|
||||
+2
-2
@@ -8,11 +8,11 @@ M.load_config = function()
|
||||
if chadrc_path then
|
||||
local chadrc = dofile(chadrc_path)
|
||||
|
||||
config.mappings = M.remove_disabled_keys(chadrc.mappings, require "core.mappings")
|
||||
config.mappings = M.remove_disabled_keys(chadrc.mappings, config.mappings)
|
||||
config = merge_tb("force", config, chadrc)
|
||||
config.mappings.disabled = nil
|
||||
end
|
||||
|
||||
config.mappings.disabled = nil
|
||||
return config
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user