summaryrefslogtreecommitdiff
path: root/ar/.config/NvChad/lua/core
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-07-03 11:54:10 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-07-03 11:54:10 +0900
commit5da5f0506b5799dc757e9d93af23cebbfa18eb91 (patch)
tree53e5c8fa0c447f95d3cf44249337a48816bd74fa /ar/.config/NvChad/lua/core
parentdcd0f3b885ccbfdb5cd1abf7adb66fd777273fae (diff)
updates
Diffstat (limited to 'ar/.config/NvChad/lua/core')
-rw-r--r--ar/.config/NvChad/lua/core/bootstrap.lua62
-rw-r--r--ar/.config/NvChad/lua/core/default_config.lua92
-rw-r--r--ar/.config/NvChad/lua/core/init.lua116
-rw-r--r--ar/.config/NvChad/lua/core/mappings.lua468
-rw-r--r--ar/.config/NvChad/lua/core/utils.lua118
5 files changed, 0 insertions, 856 deletions
diff --git a/ar/.config/NvChad/lua/core/bootstrap.lua b/ar/.config/NvChad/lua/core/bootstrap.lua
deleted file mode 100644
index b727ba8..0000000
--- a/ar/.config/NvChad/lua/core/bootstrap.lua
+++ /dev/null
@@ -1,62 +0,0 @@
-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 = fn.stdpath "data" .. "/lazy/base46"
-
- M.echo " Compiling base46 theme to bytecode ..."
-
- local base46_repo = "https://github.com/NvChad/base46"
- shell_call { "git", "clone", "--depth", "1", "-b", "v2.0", base46_repo, lazy_path }
- vim.opt.rtp:prepend(lazy_path)
-
- require("base46").compile()
-
- --------- lazy.nvim ---------------
- M.echo " Installing lazy.nvim & plugins ..."
- local repo = "https://github.com/folke/lazy.nvim.git"
- 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_bootstrap screen
- require "nvchad.post_install"()
-end
-
-M.gen_chadrc_template = function()
- local path = fn.stdpath "config" .. "/lua/custom"
-
- if fn.isdirectory(path) ~= 1 then
- local input = fn.input "Do you want to install example custom config? (y/N): "
-
- if input:lower() == "y" then
- M.echo "Cloning example custom config repo..."
- shell_call { "git", "clone", "--depth", "1", "https://github.com/NvChad/example_config", path }
- fn.delete(path .. "/.git", "rf")
- else
- -- use very minimal chadrc
- fn.mkdir(path, "p")
-
- 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
- end
-end
-
-return M
diff --git a/ar/.config/NvChad/lua/core/default_config.lua b/ar/.config/NvChad/lua/core/default_config.lua
deleted file mode 100644
index 639916a..0000000
--- a/ar/.config/NvChad/lua/core/default_config.lua
+++ /dev/null
@@ -1,92 +0,0 @@
-local M = {}
-
-M.options = {
- nvchad_branch = "v2.0",
-}
-
-M.ui = {
- ------------------------------- base46 -------------------------------------
- -- hl = highlights
- hl_add = {},
- hl_override = {},
- changed_themes = {},
- theme_toggle = { "onedark", "one_light" },
- theme = "onedark", -- default theme
- transparency = false,
- lsp_semantic_tokens = false, -- needs nvim v0.9, just adds highlight groups for lsp semantic tokens
-
- -- https://github.com/NvChad/base46/tree/v2.0/lua/base46/extended_integrations
- extended_integrations = {}, -- these aren't compiled by default, ex: "alpha", "notify"
-
- -- cmp themeing
- cmp = {
- icons = true,
- lspkind_text = true,
- style = "default", -- default/flat_light/flat_dark/atom/atom_colored
- border_color = "grey_fg", -- only applicable for "default" style, use color names from base30 variables
- selected_item_bg = "colored", -- colored / simple
- },
-
- telescope = { style = "borderless" }, -- borderless / bordered
-
- ------------------------------- nvchad_ui modules -----------------------------
- statusline = {
- theme = "default", -- default/vscode/vscode_colored/minimal
- -- default/round/block/arrow separators work only for default statusline theme
- -- round and block will work for minimal theme only
- separator_style = "default",
- overriden_modules = nil,
- },
-
- -- lazyload it when there are 1+ buffers
- tabufline = {
- show_numbers = false,
- enabled = true,
- lazyload = true,
- overriden_modules = nil,
- },
-
- -- nvdash (dashboard)
- nvdash = {
- load_on_startup = false,
-
- header = {
- " ▄ ▄ ",
- " ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ ",
- " █ ▄ █▄█ ▄▄▄ █ █▄█ █ █ ",
- " ▄▄ █▄█▄▄▄█ █▄█▄█▄▄█▄▄█ █ ",
- " ▄ █▄▄█ ▄ ▄▄ ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ",
- " █▄▄▄▄ ▄▄▄ █ ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ █ ▄",
- "▄ █ █▄█ █▄█ █ █ █▄█ █ █▄█ ▄▄▄ █ █",
- "█▄█ ▄ █▄▄█▄▄█ █ ▄▄█ █ ▄ █ █▄█▄█ █",
- " █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄█▄▄▄█ ",
- },
-
- buttons = {
- { " Find File", "Spc f f", "Telescope find_files" },
- { "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" },
- { "󰈭 Find Word", "Spc f w", "Telescope live_grep" },
- { " Bookmarks", "Spc m a", "Telescope marks" },
- { " Themes", "Spc t h", "Telescope themes" },
- { " Mappings", "Spc c h", "NvCheatsheet" },
- },
- },
-
- cheatsheet = { theme = "grid" }, -- simple/grid
-
- lsp = {
- -- show function signatures i.e args as you type
- signature = {
- disabled = false,
- silent = true, -- silences 'no signature help available' message from appearing
- },
- },
-}
-
-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 = require "core.mappings"
-
-return M
diff --git a/ar/.config/NvChad/lua/core/init.lua b/ar/.config/NvChad/lua/core/init.lua
deleted file mode 100644
index 2316f1b..0000000
--- a/ar/.config/NvChad/lua/core/init.lua
+++ /dev/null
@@ -1,116 +0,0 @@
-local opt = vim.opt
-local g = vim.g
-local config = require("core.utils").load_config()
-
--------------------------------------- globals -----------------------------------------
-g.nvchad_theme = config.ui.theme
-g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
-g.toggle_theme_icon = "  "
-g.transparency = config.ui.transparency
-
--------------------------------------- options ------------------------------------------
-opt.laststatus = 3 -- global statusline
-opt.showmode = false
-
-opt.clipboard = "unnamedplus"
-opt.cursorline = true
-
--- Indenting
-opt.expandtab = true
-opt.shiftwidth = 2
-opt.smartindent = true
-opt.tabstop = 2
-opt.softtabstop = 2
-
-opt.fillchars = { eob = " " }
-opt.ignorecase = true
-opt.smartcase = true
-opt.mouse = "a"
-
--- Numbers
-opt.number = true
-opt.numberwidth = 2
-opt.ruler = false
-
--- disable nvim intro
-opt.shortmess:append "sI"
-
-opt.signcolumn = "yes"
-opt.splitbelow = true
-opt.splitright = true
-opt.termguicolors = true
-opt.timeoutlen = 400
-opt.undofile = true
-
--- interval for writing swap file to disk, also used by gitsigns
-opt.updatetime = 250
-
--- go to previous/next line with h,l,left arrow and right arrow
--- when cursor reaches end/beginning of line
-opt.whichwrap:append "<>[]hl"
-
-g.mapleader = " "
-
--- disable some default providers
--- for _, provider in ipairs { "node", "perl", "python3", "ruby" } do
-for _, provider in ipairs { "node", "perl", "ruby" } do
- vim.g["loaded_" .. provider .. "_provider"] = 0
-end
-
--- add binaries installed by mason.nvim to path
-local is_windows = vim.loop.os_uname().sysname == "Windows_NT"
-vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH
-
--------------------------------------- autocmds ------------------------------------------
-local autocmd = vim.api.nvim_create_autocmd
-
--- dont list quickfix buffers
-autocmd("FileType", {
- pattern = "qf",
- callback = function()
- vim.opt_local.buflisted = false
- end,
-})
-
--- reload some chadrc options on-save
-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)
- local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
- local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
- local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
-
- require("plenary.reload").reload_module "base46"
- require("plenary.reload").reload_module(module)
- require("plenary.reload").reload_module "custom.chadrc"
-
- config = require("core.utils").load_config()
-
- vim.g.nvchad_theme = config.ui.theme
- vim.g.transparency = config.ui.transparency
-
- -- statusline
- 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,
-})
-
--------------------------------------- commands ------------------------------------------
-local new_cmd = vim.api.nvim_create_user_command
-
-new_cmd("NvChadUpdate", function()
- require "nvchad.updater"()
-end, {})
diff --git a/ar/.config/NvChad/lua/core/mappings.lua b/ar/.config/NvChad/lua/core/mappings.lua
deleted file mode 100644
index 4154bde..0000000
--- a/ar/.config/NvChad/lua/core/mappings.lua
+++ /dev/null
@@ -1,468 +0,0 @@
--- n, v, i, t = mode names
-
-local M = {}
-
-M.general = {
- i = {
- -- go to beginning and end
- ["<C-b>"] = { "<ESC>^i", "Beginning Of Line" },
- ["<C-e>"] = { "<End>", "End Of Line" },
-
- -- navigate within insert mode
- ["<C-h>"] = { "<Left>", "Move Left" },
- ["<C-l>"] = { "<Right>", "Move Right" },
- ["<C-j>"] = { "<Down>", "Move Down" },
- ["<C-k>"] = { "<Up>", "Move Up" },
- },
-
- n = {
- ["<Esc>"] = { "<cmd> noh <CR>", "Clear Highlights" },
- -- switch between windows
- ["<C-h>"] = { "<C-w>h", "Window Left" },
- ["<C-l>"] = { "<C-w>l", "Window Right" },
- ["<C-j>"] = { "<C-w>j", "Window Down" },
- ["<C-k>"] = { "<C-w>k", "Window Up" },
-
- -- save
- ["<C-s>"] = { "<cmd> w <CR>", "Save File" },
-
- -- Copy all
- ["<C-c>"] = { "<cmd> %y+ <CR>", "Copy whole file" },
-
- -- line numbers
- ["<leader>n"] = { "<cmd> set nu! <CR>", "Toggle Line Number" },
- ["<leader>rn"] = { "<cmd> set rnu! <CR>", "Toggle Relative Number" },
-
- -- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
- -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/
- -- empty mode is same as using <cmd> :map
- -- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour
- ["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move Down", opts = { expr = true } },
- ["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move Up", opts = { expr = true } },
- ["<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 } },
-
- -- 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 = {
- ["<C-x>"] = { vim.api.nvim_replace_termcodes("<C-\\><C-N>", true, true, true), "Escape Terminal Mode" },
- },
-
- 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 = {
- ["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move Down", opts = { expr = true } },
- ["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move Up", opts = { expr = true } },
- -- Don't copy the replaced text after pasting in visual mode
- -- https://vim.fandom.com/wiki/Replace_a_word_with_yanked_text#Alternative_mapping_for_paste
- ["p"] = { 'p:let @+=@0<CR>:let @"=@0<CR>', "Dont Copy Replaced Text", opts = { silent = true } },
- },
-}
-
-M.tabufline = {
- plugin = true,
-
- n = {
- -- cycle through buffers
- ["<tab>"] = {
- function()
- require("nvchad.tabufline").tabuflineNext()
- end,
- "Goto Next Buffer",
- },
-
- ["<S-tab>"] = {
- function()
- require("nvchad.tabufline").tabuflinePrev()
- end,
- "Goto Prev Buffer",
- },
-
- -- close buffer + hide terminal buffer
- ["<leader>x"] = {
- function()
- require("nvchad.tabufline").close_buffer()
- end,
- "Close Buffer",
- },
- },
-}
-
-M.comment = {
- plugin = true,
-
- -- toggle comment in both modes
- n = {
- ["<leader>/"] = {
- function()
- require("Comment.api").toggle.linewise.current()
- end,
- "Toggle Comment",
- },
- },
-
- v = {
- ["<leader>/"] = {
- "<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>",
- "Toggle Comment",
- },
- },
-}
-
-M.lspconfig = {
- plugin = true,
-
- -- See `<cmd> :help vim.lsp.*` for documentation on any of the below functions
-
- n = {
- ["gD"] = {
- function()
- vim.lsp.buf.declaration()
- end,
- "LSP Declaration",
- },
-
- ["gd"] = {
- function()
- vim.lsp.buf.definition()
- end,
- "LSP Definition",
- },
-
- ["K"] = {
- function()
- vim.lsp.buf.hover()
- end,
- "LSP Hover",
- },
-
- ["gi"] = {
- function()
- vim.lsp.buf.implementation()
- end,
- "LSP Implementation",
- },
-
- ["<leader>ls"] = {
- function()
- vim.lsp.buf.signature_help()
- end,
- "LSP Signature Help",
- },
-
- ["<leader>D"] = {
- function()
- vim.lsp.buf.type_definition()
- end,
- "LSP Definition Type",
- },
-
- ["<leader>ra"] = {
- function()
- require("nvchad.renamer").open()
- end,
- "LSP Rename",
- },
-
- ["<leader>ca"] = {
- function()
- vim.lsp.buf.code_action()
- end,
- "LSP Code Action",
- },
-
- ["gr"] = {
- function()
- vim.lsp.buf.references()
- end,
- "LSP References",
- },
-
- ["<leader>lf"] = {
- function()
- vim.diagnostic.open_float { border = "rounded" }
- end,
- "Floating Diagnostic",
- },
-
- ["[d"] = {
- function()
- vim.diagnostic.goto_prev { float = { border = "rounded" } }
- end,
- "Goto Prev",
- },
-
- ["]d"] = {
- function()
- vim.diagnostic.goto_next { float = { border = "rounded" } }
- end,
- "Goto Next",
- },
-
- ["<leader>q"] = {
- function()
- vim.diagnostic.setloclist()
- end,
- "Diagnostic Setloclist",
- },
-
- ["<leader>wa"] = {
- function()
- vim.lsp.buf.add_workspace_folder()
- end,
- "Add Workspace Folder",
- },
-
- ["<leader>wr"] = {
- function()
- vim.lsp.buf.remove_workspace_folder()
- end,
- "Remove Workspace Folder",
- },
-
- ["<leader>wl"] = {
- function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end,
- "List Workspace Folders",
- },
- },
-
- v = {
- ["<leader>ca"] = {
- function()
- vim.lsp.buf.code_action()
- end,
- "LSP Code Action",
- },
- },
-}
-
-M.nvimtree = {
- plugin = true,
-
- n = {
- -- toggle
- ["<C-n>"] = { "<cmd> NvimTreeToggle <CR>", "Toggle Nvimtree" },
-
- -- focus
- ["<leader>e"] = { "<cmd> NvimTreeFocus <CR>", "Focus Nvimtree" },
- },
-}
-
-M.telescope = {
- plugin = true,
-
- n = {
- -- find
- ["<leader>ff"] = { "<cmd> Telescope find_files <CR>", "Find Files" },
- ["<leader>fa"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "Find All" },
- ["<leader>fw"] = { "<cmd> Telescope live_grep <CR>", "Live Grep" },
- ["<leader>fb"] = { "<cmd> Telescope buffers <CR>", "Find Buffers" },
- ["<leader>fh"] = { "<cmd> Telescope help_tags <CR>", "Help Page" },
- ["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "Find Oldfiles" },
- ["<leader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <CR>", "Find in Current Buffer" },
-
- -- git
- ["<leader>cm"] = { "<cmd> Telescope git_commits <CR>", "Git Commits" },
- ["<leader>gt"] = { "<cmd> Telescope git_status <CR>", "Git Status" },
-
- -- pick a hidden term
- ["<leader>pt"] = { "<cmd> Telescope terms <CR>", "Pick Hidden Term" },
-
- -- theme switcher
- ["<leader>th"] = { "<cmd> Telescope themes <CR>", "Nvchad Themes" },
-
- ["<leader>ma"] = { "<cmd> Telescope marks <CR>", "Telescope Bookmarks" },
- },
-}
-
-M.nvterm = {
- plugin = true,
-
- t = {
- -- toggle in terminal mode
- ["<A-i>"] = {
- function()
- require("nvterm.terminal").toggle "float"
- end,
- "Toggle Floating Term",
- },
-
- ["<A-h>"] = {
- function()
- require("nvterm.terminal").toggle "horizontal"
- end,
- "Toggle Horizontal Term",
- },
-
- ["<A-v>"] = {
- function()
- require("nvterm.terminal").toggle "vertical"
- end,
- "Toggle Vertical Term",
- },
- },
-
- n = {
- -- toggle in normal mode
- ["<A-i>"] = {
- function()
- require("nvterm.terminal").toggle "float"
- end,
- "Toggle Floating Term",
- },
-
- ["<A-h>"] = {
- function()
- require("nvterm.terminal").toggle "horizontal"
- end,
- "Toggle Horizontal Term",
- },
-
- ["<A-v>"] = {
- function()
- require("nvterm.terminal").toggle "vertical"
- end,
- "Toggle Vertical Term",
- },
-
- -- new
- ["<leader>h"] = {
- function()
- require("nvterm.terminal").new "horizontal"
- end,
- "New Horizontal Term",
- },
-
- ["<leader>v"] = {
- function()
- require("nvterm.terminal").new "vertical"
- end,
- "New Vertical Term",
- },
- },
-}
-
-M.whichkey = {
- plugin = true,
-
- n = {
- ["<leader>wK"] = {
- function()
- vim.cmd "WhichKey"
- end,
- "Which-key All Keymaps",
- },
- ["<leader>wk"] = {
- function()
- local input = vim.fn.input "WhichKey: "
- vim.cmd("WhichKey " .. input)
- end,
- "Which-key Query Lookup",
- },
- },
-}
-
-M.blankline = {
- plugin = true,
-
- n = {
- ["<leader>cc"] = {
- function()
- local ok, start = require("indent_blankline.utils").get_current_context(
- vim.g.indent_blankline_context_patterns,
- vim.g.indent_blankline_use_treesitter_scope
- )
-
- if ok then
- vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start, 0 })
- vim.cmd [[normal! _]]
- end
- end,
-
- "Jump To Current Context",
- },
- },
-}
-
-M.gitsigns = {
- plugin = true,
-
- n = {
- -- Navigation through hunks
- ["]c"] = {
- function()
- if vim.wo.diff then
- return "]c"
- end
- vim.schedule(function()
- require("gitsigns").next_hunk()
- end)
- return "<Ignore>"
- end,
- "Jump To Next Hunk",
- opts = { expr = true },
- },
-
- ["[c"] = {
- function()
- if vim.wo.diff then
- return "[c"
- end
- vim.schedule(function()
- require("gitsigns").prev_hunk()
- end)
- return "<Ignore>"
- end,
- "Jump To Prev Hunk",
- opts = { expr = true },
- },
-
- -- Actions
- ["<leader>rh"] = {
- function()
- require("gitsigns").reset_hunk()
- end,
- "Reset Hunk",
- },
-
- ["<leader>ph"] = {
- function()
- require("gitsigns").preview_hunk()
- end,
- "Preview Hunk",
- },
-
- ["<leader>gb"] = {
- function()
- package.loaded.gitsigns.blame_line()
- end,
- "Blame Line",
- },
-
- ["<leader>td"] = {
- function()
- require("gitsigns").toggle_deleted()
- end,
- "Toggle Deleted",
- },
- },
-}
-
-return M
diff --git a/ar/.config/NvChad/lua/core/utils.lua b/ar/.config/NvChad/lua/core/utils.lua
deleted file mode 100644
index 8b2a03d..0000000
--- a/ar/.config/NvChad/lua/core/utils.lua
+++ /dev/null
@@ -1,118 +0,0 @@
-local M = {}
-local merge_tb = vim.tbl_deep_extend
-
-M.load_config = function()
- local config = require "core.default_config"
- local chadrc_path = vim.api.nvim_get_runtime_file("lua/custom/chadrc.lua", false)[1]
-
- if chadrc_path then
- local chadrc = dofile(chadrc_path)
-
- config.mappings = M.remove_disabled_keys(chadrc.mappings, config.mappings)
- config = merge_tb("force", config, chadrc)
- config.mappings.disabled = nil
- end
-
- return config
-end
-
-M.remove_disabled_keys = function(chadrc_mappings, default_mappings)
- if not chadrc_mappings then
- return default_mappings
- end
-
- -- store keys in a array with true value to compare
- local keys_to_disable = {}
- for _, mappings in pairs(chadrc_mappings) do
- for mode, section_keys in pairs(mappings) do
- if not keys_to_disable[mode] then
- keys_to_disable[mode] = {}
- end
- section_keys = (type(section_keys) == "table" and section_keys) or {}
- for k, _ in pairs(section_keys) do
- keys_to_disable[mode][k] = true
- end
- end
- end
-
- -- make a copy as we need to modify default_mappings
- for section_name, section_mappings in pairs(default_mappings) do
- for mode, mode_mappings in pairs(section_mappings) do
- mode_mappings = (type(mode_mappings) == "table" and mode_mappings) or {}
- for k, _ in pairs(mode_mappings) do
- -- if key if found then remove from default_mappings
- if keys_to_disable[mode] and keys_to_disable[mode][k] then
- default_mappings[section_name][mode][k] = nil
- end
- end
- end
- end
-
- return default_mappings
-end
-
-M.load_mappings = function(section, mapping_opt)
- vim.schedule(function()
- local function set_section_map(section_values)
- if section_values.plugin then
- return
- end
-
- section_values.plugin = nil
-
- for mode, mode_values in pairs(section_values) do
- local default_opts = merge_tb("force", { mode = mode }, mapping_opt or {})
- for keybind, mapping_info in pairs(mode_values) do
- -- merge default + user opts
- local opts = merge_tb("force", default_opts, mapping_info.opts or {})
-
- mapping_info.opts, opts.mode = nil, nil
- opts.desc = mapping_info[2]
-
- vim.keymap.set(mode, keybind, mapping_info[1], opts)
- end
- end
- end
-
- local mappings = require("core.utils").load_config().mappings
-
- if type(section) == "string" then
- mappings[section]["plugin"] = nil
- mappings = { mappings[section] }
- end
-
- for _, sect in pairs(mappings) do
- set_section_map(sect)
- end
- end)
-end
-
-M.lazy_load = function(plugin)
- vim.api.nvim_create_autocmd({ "BufRead", "BufWinEnter", "BufNewFile" }, {
- group = vim.api.nvim_create_augroup("BeLazyOnFileOpen" .. plugin, {}),
- callback = function()
- local file = vim.fn.expand "%"
- local condition = file ~= "NvimTree_1" and file ~= "[lazy]" and file ~= ""
-
- if condition then
- vim.api.nvim_del_augroup_by_name("BeLazyOnFileOpen" .. plugin)
-
- -- dont defer for treesitter as it will show slow highlighting
- -- This deferring only happens only when we do "nvim filename"
- if plugin ~= "nvim-treesitter" then
- vim.schedule(function()
- require("lazy").load { plugins = plugin }
-
- if plugin == "nvim-lspconfig" then
- vim.cmd "silent! do FileType"
- end
- end, 0)
- else
- require("lazy").load { plugins = plugin }
- end
- end
- end,
- })
-end
-
-return M