From 4b1bca5303f39adf7d664a2fa25d720f210bf1ad Mon Sep 17 00:00:00 2001 From: siduck Date: Sun, 25 Feb 2024 08:43:48 +0530 Subject: [PATCH] clean mapping syntax --- init.lua | 6 +- lua/core/init.lua | 9 + lua/core/mappings.lua | 631 +++++++----------------------- lua/core/utils.lua | 78 +--- lua/plugins/configs/gitsigns.lua | 26 ++ lua/plugins/configs/lspconfig.lua | 23 +- lua/plugins/configs/luasnip.lua | 23 ++ lua/plugins/configs/others.lua | 50 --- lua/plugins/init.lua | 24 +- 9 files changed, 244 insertions(+), 626 deletions(-) create mode 100644 lua/plugins/configs/gitsigns.lua create mode 100644 lua/plugins/configs/luasnip.lua delete mode 100644 lua/plugins/configs/others.lua diff --git a/init.lua b/init.lua index 21f0b6f..44b5eab 100644 --- a/init.lua +++ b/init.lua @@ -6,8 +6,6 @@ if custom_init_path then dofile(custom_init_path) end -require("core.utils").load_mappings() - local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" -- bootstrap lazy.nvim! @@ -19,3 +17,7 @@ end dofile(vim.g.base46_cache .. "defaults") vim.opt.rtp:prepend(lazypath) require "plugins" + +vim.schedule(function() + require "core.mappings" +end, 0) diff --git a/lua/core/init.lua b/lua/core/init.lua index 59eaf75..8087d6a 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -136,3 +136,12 @@ local new_cmd = vim.api.nvim_create_user_command new_cmd("NvChadUpdate", function() require "nvchad.updater"() end, {}) + +--------------------------------------- globals ------------------------------------------- +vim.g.whichkey_maps = true +vim.g.blankline_maps = true +vim.g.terminal_maps = true +vim.g.telescope_maps = true +vim.g.nvimtree_maps = true +vim.g.comment_maps = true +vim.g.tabufline_maps = true diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 93118be..228c2d5 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -1,479 +1,152 @@ --- n, v, i, t = mode names - -local M = {} - -M.general = { - i = { - -- go to beginning and end - [""] = { "^i", "Beginning of line" }, - [""] = { "", "End of line" }, - - -- navigate within insert mode - [""] = { "", "Move left" }, - [""] = { "", "Move right" }, - [""] = { "", "Move down" }, - [""] = { "", "Move up" }, - }, - - n = { - [""] = { " noh ", "Clear highlights" }, - -- switch between windows - [""] = { "h", "Window left" }, - [""] = { "l", "Window right" }, - [""] = { "j", "Window down" }, - [""] = { "k", "Window up" }, - - -- save - [""] = { " w ", "Save file" }, - - -- Copy all - [""] = { " %y+ ", "Copy whole file" }, - - -- line numbers - ["n"] = { " set nu! ", "Toggle line number" }, - ["rn"] = { " set rnu! ", "Toggle relative number" }, - - -- Allow moving the cursor through wrapped lines with j, k, and - -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/ - -- empty mode is same as using :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 } }, - [""] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, - [""] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, - - -- new buffer - ["b"] = { " enew ", "New buffer" }, - ["ch"] = { " NvCheatsheet ", "Mapping cheatsheet" }, - - ["fm"] = { - function() - vim.lsp.buf.format { async = true } - end, - "LSP formatting", - }, - }, - - t = { - [""] = { vim.api.nvim_replace_termcodes("", true, true, true), "Escape terminal mode" }, - }, - - v = { - [""] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, - [""] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, - ["<"] = { ""] = { ">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:let @"=@0', "Dont copy replaced text", opts = { silent = true } }, - }, -} - -M.tabufline = { - plugin = true, - - n = { - -- cycle through buffers - [""] = { - function() - require("nvchad.tabufline").tabuflineNext() - end, - "Goto next buffer", - }, - - [""] = { - function() - require("nvchad.tabufline").tabuflinePrev() - end, - "Goto prev buffer", - }, - - -- close buffer + hide terminal buffer - ["x"] = { - function() - require("nvchad.tabufline").close_buffer() - end, - "Close buffer", - }, - }, -} - -M.comment = { - plugin = true, - - -- toggle comment in both modes - n = { - ["/"] = { - function() - require("Comment.api").toggle.linewise.current() - end, - "Toggle comment", - }, - }, - - v = { - ["/"] = { - "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", - "Toggle comment", - }, - }, -} - -M.lspconfig = { - plugin = true, - - -- See ` :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", - }, - - ["ls"] = { - function() - vim.lsp.buf.signature_help() - end, - "LSP signature help", - }, - - ["D"] = { - function() - vim.lsp.buf.type_definition() - end, - "LSP definition type", - }, - - ["ra"] = { - function() - require("nvchad.renamer").open() - end, - "LSP rename", - }, - - ["ca"] = { - function() - vim.lsp.buf.code_action() - end, - "LSP code action", - }, - - ["gr"] = { - function() - vim.lsp.buf.references() - end, - "LSP references", - }, - - ["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", - }, - - ["q"] = { - function() - vim.diagnostic.setloclist() - end, - "Diagnostic setloclist", - }, - - ["wa"] = { - function() - vim.lsp.buf.add_workspace_folder() - end, - "Add workspace folder", - }, - - ["wr"] = { - function() - vim.lsp.buf.remove_workspace_folder() - end, - "Remove workspace folder", - }, - - ["wl"] = { - function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, - "List workspace folders", - }, - }, - - v = { - ["ca"] = { - function() - vim.lsp.buf.code_action() - end, - "LSP code action", - }, - }, -} - -M.nvimtree = { - plugin = true, - - n = { - -- toggle - [""] = { " NvimTreeToggle ", "Toggle nvimtree" }, - - -- focus - ["e"] = { " NvimTreeFocus ", "Focus nvimtree" }, - }, -} - -M.telescope = { - plugin = true, - - n = { - -- find - ["ff"] = { " Telescope find_files ", "Find files" }, - ["fa"] = { " Telescope find_files follow=true no_ignore=true hidden=true ", "Find all" }, - ["fw"] = { " Telescope live_grep ", "Live grep" }, - ["fb"] = { " Telescope buffers ", "Find buffers" }, - ["fh"] = { " Telescope help_tags ", "Help page" }, - ["fo"] = { " Telescope oldfiles ", "Find oldfiles" }, - ["fz"] = { " Telescope current_buffer_fuzzy_find ", "Find in current buffer" }, - - -- git - ["cm"] = { " Telescope git_commits ", "Git commits" }, - ["gt"] = { " Telescope git_status ", "Git status" }, - - -- pick a hidden term - ["pt"] = { " Telescope terms ", "Pick hidden term" }, - - -- theme switcher - ["th"] = { " Telescope themes ", "Nvchad themes" }, - - ["ma"] = { " Telescope marks ", "telescope bookmarks" }, - }, -} - -M.terminal = { - n = { - -- spawn new terms - ["h"] = { - function() - require("nvchad.term").new { pos = "sp", size = 0.3 } - end, - "New horizontal term", - }, - - ["v"] = { - function() - require("nvchad.term").new { pos = "vsp", size = 0.3 } - end, - "New vertical term", - }, - - -- toggle terms - [""] = { - function() - require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm", size = 0.3 } - end, - "New vertical term", - }, - - [""] = { - function() - require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm", size = 0.2 } - end, - "New vertical term", - }, - - [""] = { - function() - require("nvchad.term").toggle { pos = "float", id = "floatTerm" } - end, - "Toggleable Floating term", - }, - }, - - -- toggle terms in terminal mode - t = { - [""] = { - function() - local win = vim.api.nvim_get_current_win() - vim.api.nvim_win_close(win, true) - end, - "close term in terminal mode", - }, - - [""] = { - function() - require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } - end, - "New vertical term", - }, - - [""] = { - function() - require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } - end, - "New vertical term", - }, - - [""] = { - function() - require("nvchad.term").toggle { pos = "float", id = "floatTerm" } - end, - "Toggleable Floating term", - }, - }, -} - -M.whichkey = { - plugin = true, - - n = { - ["wK"] = { - function() - vim.cmd "WhichKey" - end, - "Which-key all keymaps", - }, - ["wk"] = { - function() - local input = vim.fn.input "WhichKey: " - vim.cmd("WhichKey " .. input) - end, - "Which-key query lookup", - }, - }, -} - -M.blankline = { - plugin = true, - - n = { - ["cc"] = { - function() - local config = { scope = {} } - config.scope.exclude = { language = {}, node_type = {} } - config.scope.include = { node_type = {} } - - local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config) - - if node then - local start_row, _, end_row, _ = node:range() - - if start_row ~= end_row then - vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 }) - vim.api.nvim_feedkeys("_", "n", true) - end - 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 "" - 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 "" - end, - "Jump to prev hunk", - opts = { expr = true }, - }, - - -- Actions - ["rh"] = { - function() - require("gitsigns").reset_hunk() - end, - "Reset hunk", - }, - - ["ph"] = { - function() - require("gitsigns").preview_hunk() - end, - "Preview hunk", - }, - - ["gb"] = { - function() - package.loaded.gitsigns.blame_line() - end, - "Blame line", - }, - - ["td"] = { - function() - require("gitsigns").toggle_deleted() - end, - "Toggle deleted", - }, - }, -} - -return M +local map = vim.keymap.set + +map("i", "", "^i", { desc = "Beginning of line | general" }) +map("i", "", "", { desc = "End of line | general" }) +map("i", "", "", { desc = "Move left | general" }) +map("i", "", "", { desc = "Move right | general" }) +map("i", "", "", { desc = "Move down | general" }) +map("i", "", "", { desc = "Move up | general" }) + +map("n", "", "noh", { desc = "Clear highlights | general" }) +map("n", "", "h", { desc = "Window left | general" }) +map("n", "", "l", { desc = "Window right | general" }) +map("n", "", "j", { desc = "Window down | general" }) +map("n", "", "k", { desc = "Window up | general" }) +map("n", "", "w", { desc = "Save file | general" }) +map("n", "", "%y+", { desc = "Copy whole file | general" }) +map("n", "n", "set nu!", { desc = "Toggle line number | general" }) +map("n", "rn", "set rnu!", { desc = "Toggle relative number | general" }) +map("n", "b", "enew", { desc = "New buffer | general" }) +map("n", "ch", "NvCheatsheet", { desc = "Mapping cheatsheet | general" }) + +map("n", "fm", function() + vim.lsp.buf.format { async = true } +end, { desc = "LSP formatting | lsp" }) + +vim.keymap.set("n", "lf", vim.diagnostic.open_float, { desc = "floating diagnostics | lsp" }) +vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "prev diagnostic | lsp" }) +vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "next diagnostic | lsp" }) +vim.keymap.set("n", "q", vim.diagnostic.setloclist, { desc = "diagnostic loclist | lsp" }) + +-- Mappings for terminal mode +map( + "t", + "", + vim.api.nvim_replace_termcodes("", true, true, true), + { desc = "Escape terminal mode | general" } +) + +-- Mappings for M.tabufline +if vim.g.tabufline_maps then + map("n", "", function() + require("nvchad.tabufline").tabuflineNext() + end, { desc = "Goto next buffer | tabufline" }) + + map("n", "", function() + require("nvchad.tabufline").tabuflinePrev() + end, { desc = "Goto prev buffer | tabufline" }) + + map("n", "x", function() + require("nvchad.tabufline").close_buffer() + end, { desc = "Close buffer | tabufline" }) +end + +if vim.g.comment_maps then + map("n", "/", function() + require("Comment.api").toggle.linewise.current() + end, { desc = "Toggle comment | comment" }) + + map( + "v", + "/", + "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())", + { desc = "Toggle comment | comment" } + ) +end + +if vim.g.nvimtree_maps then + map("n", "", "NvimTreeToggle", { desc = "Toggle nvimtree | nvimtree" }) + map("n", "e", "NvimTreeFocus", { desc = "Focus nvimtree | nvimtree" }) +end + +if vim.g.telescope_maps then + map("n", "fw", "Telescope live_grep", { desc = "Live grep | telescope" }) + map("n", "fb", "Telescope buffers", { desc = "Find buffers | telescope" }) + map("n", "fh", "Telescope help_tags", { desc = "Help page | telescope" }) + map("n", "fo", "Telescope oldfiles", { desc = "Find oldfiles | telescope" }) + + map( + "n", + "fz", + "Telescope current_buffer_fuzzy_find", + { desc = "Find in current buffer | telescope" } + ) + + map("n", "cm", "Telescope git_commits", { desc = "Git commits | telescope" }) + map("n", "gt", "Telescope git_status", { desc = "Git status | telescope" }) + map("n", "pt", "Telescope terms", { desc = "Pick hidden term | telescope" }) + map("n", "th", "Telescope themes", { desc = "Nvchad themes | telescope" }) + + map("n", "ff", "Telescope find_files", { desc = "Find files | telescope" }) + map( + "n", + "fa", + "Telescope find_files follow=true no_ignore=true hidden=true", + { desc = "Find all | telescope" } + ) +end + +-- Mappings for M.terminal +if vim.g.terminal_maps then + map("n", "h", function() + require("nvchad.term").new { pos = "sp", size = 0.3 } + end, { desc = "New horizontal term | terminal" }) + + map("n", "v", function() + require("nvchad.term").new { pos = "vsp", size = 0.3 } + end, { desc = "New vertical term | terminal" }) + + map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm", size = 0.3 } + end, { desc = "Toggleable vertical term | terminal" }) + + map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm", size = 0.2 } + end, { desc = "New horizontal term | terminal" }) + + map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "float", id = "floatTerm" } + end, { desc = "Toggleable Floating term | terminal" }) + + map("t", "", function() + local win = vim.api.nvim_get_current_win() + vim.api.nvim_win_close(win, true) + end, { desc = "Close term in terminal mode | terminal" }) +end + +if vim.g.whichkey_maps then + map("n", "wK", ":WhichKey ", { desc = "Which-key all keymaps | whichkey" }) + + map("n", "wk", function() + vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ") + end, { desc = "Which-key query lookup | whichkey" }) +end + +if vim.g.blankline_maps then + map("n", "cc", function() + local config = { scope = {} } + config.scope.exclude = { language = {}, node_type = {} } + config.scope.include = { node_type = {} } + local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config) + + if node then + local start_row, _, end_row, _ = node:range() + if start_row ~= end_row then + vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 }) + vim.api.nvim_feedkeys("_", "n", true) + end + end + end, { desc = "Jump to current context | blankline" }) +end + +require "custom.mappings" diff --git a/lua/core/utils.lua b/lua/core/utils.lua index 6f4dfae..34213a4 100644 --- a/lua/core/utils.lua +++ b/lua/core/utils.lua @@ -1,90 +1,14 @@ 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 + config = vim.tbl_deep_extend("force", config, dofile(chadrc_path)) 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("nvconfig").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 - return M diff --git a/lua/plugins/configs/gitsigns.lua b/lua/plugins/configs/gitsigns.lua new file mode 100644 index 0000000..27f3105 --- /dev/null +++ b/lua/plugins/configs/gitsigns.lua @@ -0,0 +1,26 @@ +local options = { + signs = { + add = { text = "│" }, + change = { text = "│" }, + delete = { text = "󰍵" }, + topdelete = { text = "‾" }, + changedelete = { text = "~" }, + untracked = { text = "│" }, + }, + + on_attach = function(bufnr) + local gs = package.loaded.gitsigns + + local function opts(desc) + return { buffer = bufnr, desc = desc } + end + + local map = vim.keymap.set + + map("n", "rh", gs.reset_hunk, opts "Reset Hunk") + map("n", "ph", gs.preview_hunk, opts "Preview Hunk") + map("n", "gb", gs.blame_line, opts "Blame Line") + end, +} + +return options diff --git a/lua/plugins/configs/lspconfig.lua b/lua/plugins/configs/lspconfig.lua index 55dac4d..5a7d5bd 100644 --- a/lua/plugins/configs/lspconfig.lua +++ b/lua/plugins/configs/lspconfig.lua @@ -1,8 +1,8 @@ local M = {} +local map = vim.keymap.set -- export on_attach & capabilities for custom lspconfigs M.on_attach = function(client, bufnr) - local utils = require "core.utils" local conf = require("nvconfig").ui.lsp -- semanticTokens @@ -14,7 +14,26 @@ M.on_attach = function(client, bufnr) require("nvchad.signature").setup(client, bufnr) end - utils.load_mappings("lspconfig", { buffer = bufnr }) + local function opts(desc) + return { buffer = bufnr, desc = desc } + end + + map("n", "gD", vim.lsp.buf.declaration, opts "Go to declaration | lsp") + map("n", "gd", vim.lsp.buf.definition, opts "Go to definition | lsp") + map("n", "K", vim.lsp.buf.hover, opts "Show hover information | lsp") + map("n", "gi", vim.lsp.buf.implementation, opts "Go to implementation | lsp") + map("n", "", vim.lsp.buf.signature_help, opts "Show signature help | lsp") + map("n", "wa", vim.lsp.buf.add_workspace_folder, opts "Add workspace folder | lsp") + map("n", "wr", vim.lsp.buf.remove_workspace_folder, opts "Remove workspace folder | lsp") + + map("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts "List workspace folders | lsp") + + map("n", "D", vim.lsp.buf.type_definition, opts "Go to type definition | lsp") + map("n", "rn", vim.lsp.buf.rename, opts "Rename symbol | lsp") + map({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts "Code action | lsp") + map("n", "gr", vim.lsp.buf.references, opts "Show references | lsp") end M.capabilities = vim.lsp.protocol.make_client_capabilities() diff --git a/lua/plugins/configs/luasnip.lua b/lua/plugins/configs/luasnip.lua new file mode 100644 index 0000000..f40672d --- /dev/null +++ b/lua/plugins/configs/luasnip.lua @@ -0,0 +1,23 @@ +-- vscode format +require("luasnip.loaders.from_vscode").lazy_load() +require("luasnip.loaders.from_vscode").lazy_load { paths = "your path!" } +require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.vscode_snippets_path or "" } + +-- snipmate format +require("luasnip.loaders.from_snipmate").load() +require("luasnip.loaders.from_snipmate").lazy_load { paths = vim.g.snipmate_snippets_path or "" } + +-- lua format +require("luasnip.loaders.from_lua").load() +require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" } + +vim.api.nvim_create_autocmd("InsertLeave", { + callback = function() + if + require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()] + and not require("luasnip").session.jump_active + then + require("luasnip").unlink_current() + end + end, +}) diff --git a/lua/plugins/configs/others.lua b/lua/plugins/configs/others.lua deleted file mode 100644 index 9e01f8d..0000000 --- a/lua/plugins/configs/others.lua +++ /dev/null @@ -1,50 +0,0 @@ -local M = {} -local utils = require "core.utils" - -M.blankline = { - indent = { char = "│", highlight = "IblChar" }, - scope = { char = "│", highlight = "IblScopeChar" }, -} - -M.luasnip = function(opts) - require("luasnip").config.set_config(opts) - - -- vscode format - require("luasnip.loaders.from_vscode").lazy_load() - require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.vscode_snippets_path or "" } - - -- snipmate format - require("luasnip.loaders.from_snipmate").load() - require("luasnip.loaders.from_snipmate").lazy_load { paths = vim.g.snipmate_snippets_path or "" } - - -- lua format - require("luasnip.loaders.from_lua").load() - require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" } - - vim.api.nvim_create_autocmd("InsertLeave", { - callback = function() - if - require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()] - and not require("luasnip").session.jump_active - then - require("luasnip").unlink_current() - end - end, - }) -end - -M.gitsigns = { - signs = { - add = { text = "│" }, - change = { text = "│" }, - delete = { text = "󰍵" }, - topdelete = { text = "‾" }, - changedelete = { text = "~" }, - untracked = { text = "│" }, - }, - on_attach = function(bufnr) - utils.load_mappings("gitsigns", { buffer = bufnr }) - end, -} - -return M diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 26e9ba0..21f9578 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -48,11 +48,11 @@ local default_plugins = { { "lukas-reineke/indent-blankline.nvim", event = "User FilePost", - opts = function() - return require("plugins.configs.others").blankline - end, + opts = { + indent = { char = "│", highlight = "IblChar" }, + scope = { char = "│", highlight = "IblScopeChar" }, + }, config = function(_, opts) - require("core.utils").load_mappings "blankline" dofile(vim.g.base46_cache .. "blankline") local hooks = require "ibl.hooks" @@ -81,7 +81,7 @@ local default_plugins = { "lewis6991/gitsigns.nvim", event = "User FilePost", opts = function() - return require("plugins.configs.others").gitsigns + return require("plugins.configs.gitsigns") end, config = function(_, opts) dofile(vim.g.base46_cache .. "git") @@ -130,7 +130,8 @@ local default_plugins = { dependencies = "rafamadriz/friendly-snippets", opts = { history = true, updateevents = "TextChanged,TextChangedI" }, config = function(_, opts) - require("plugins.configs.others").luasnip(opts) + require("luasnip").config.set_config(opts) + require "plugins.configs.luasnip" end, }, @@ -178,7 +179,7 @@ local default_plugins = { { "gb", mode = "x", desc = "Comment toggle blockwise (visual)" }, }, init = function() - require("core.utils").load_mappings "comment" + vim.g.comment_maps = true end, config = function(_, opts) require("Comment").setup(opts) @@ -189,9 +190,6 @@ local default_plugins = { { "nvim-tree/nvim-tree.lua", cmd = { "NvimTreeToggle", "NvimTreeFocus" }, - init = function() - require("core.utils").load_mappings "nvimtree" - end, opts = function() return require "plugins.configs.nvimtree" end, @@ -205,9 +203,6 @@ local default_plugins = { "nvim-telescope/telescope.nvim", dependencies = { "nvim-treesitter/nvim-treesitter" }, cmd = "Telescope", - init = function() - require("core.utils").load_mappings "telescope" - end, opts = function() return require "plugins.configs.telescope" end, @@ -227,9 +222,6 @@ local default_plugins = { { "folke/which-key.nvim", keys = { "", "", "", '"', "'", "`", "c", "v", "g" }, - init = function() - require("core.utils").load_mappings "whichkey" - end, cmd = "WhichKey", config = function(_, opts) dofile(vim.g.base46_cache .. "whichkey")