diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-07-03 11:54:10 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-07-03 11:54:10 +0900 |
| commit | 5da5f0506b5799dc757e9d93af23cebbfa18eb91 (patch) | |
| tree | 53e5c8fa0c447f95d3cf44249337a48816bd74fa /ar/.config/NvChad/lua/core | |
| parent | dcd0f3b885ccbfdb5cd1abf7adb66fd777273fae (diff) | |
updates
Diffstat (limited to 'ar/.config/NvChad/lua/core')
| -rw-r--r-- | ar/.config/NvChad/lua/core/bootstrap.lua | 62 | ||||
| -rw-r--r-- | ar/.config/NvChad/lua/core/default_config.lua | 92 | ||||
| -rw-r--r-- | ar/.config/NvChad/lua/core/init.lua | 116 | ||||
| -rw-r--r-- | ar/.config/NvChad/lua/core/mappings.lua | 468 | ||||
| -rw-r--r-- | ar/.config/NvChad/lua/core/utils.lua | 118 |
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 |
