From 20f26d3b8e048668b7faee041d864e71139d7473 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Wed, 5 Feb 2025 23:00:03 -0500 Subject: [PATCH] AutoYADM commit: 2025-02-05 23:00:03 --- .config/nvim/lua/plugins/multicursor.lua | 161 +++++++---------------- 1 file changed, 51 insertions(+), 110 deletions(-) diff --git a/.config/nvim/lua/plugins/multicursor.lua b/.config/nvim/lua/plugins/multicursor.lua index eec55225..3c85b886 100644 --- a/.config/nvim/lua/plugins/multicursor.lua +++ b/.config/nvim/lua/plugins/multicursor.lua @@ -1,114 +1,55 @@ return { "jake-stewart/multicursor.nvim", branch = "1.0", - config = function() - local mc = require("multicursor-nvim") - mc.setup() - local set = vim.keymap.set - - -- Add or skip cursor above/below the main cursor. - set({ "n", "v" }, "", function() - mc.lineAddCursor(-1) - end) - set({ "n", "v" }, "", function() - mc.lineAddCursor(1) - end) - set({ "n", "v" }, "", function() - mc.lineSkipCursor(-1) - end) - set({ "n", "v" }, "", function() - mc.lineSkipCursor(1) - end) - - -- Add or skip adding a new cursor by matching word/selection - -- set({ "n", "v" }, "n", function() - -- mc.matchAddCursor(1) - -- end) - set({ "n", "v" }, "s", function() - mc.matchSkipCursor(1) - end) - set({ "n", "v" }, "N", function() - mc.matchAddCursor(-1) - end) - set({ "n", "v" }, "S", function() - mc.matchSkipCursor(-1) - end) - - -- Add all matches in the document - set({ "n", "v" }, "A", mc.matchAllAddCursors) - - -- You can also add cursors with any motion you prefer: - -- set("n", "", function() - -- mc.addCursor("w") - -- end) - -- set("n", "", function() - -- mc.skipCursor("w") - -- end) - - -- Rotate the main cursor. - set({ "n", "v" }, "", mc.nextCursor) - set({ "n", "v" }, "", mc.prevCursor) - - -- Delete the main cursor. - set({ "n", "v" }, "x", mc.deleteCursor) - - -- Add and remove cursors with control + left click. - set("n", "", mc.handleMouse) - - -- Easy way to add and remove cursors using the main cursor. - set({ "n", "v" }, "", mc.toggleCursor) - - -- Clone every cursor and disable the originals. - set({ "n", "v" }, "", mc.duplicateCursors) - - set("n", "", function() - if not mc.cursorsEnabled() then - mc.enableCursors() - print("enabling") - elseif mc.hasCursors() then - mc.clearCursors() - print("clearing") - else - -- Default handler. - print("def") - end - end) - - -- bring back cursors if you accidentally clear them - set("n", "gv", mc.restoreCursors) - - -- Align cursor columns. - set("n", "a", mc.alignCursors) - - -- Split visual selections by regex. - set("v", "S", mc.splitCursors) - - -- Append/insert for each line of visual selections. - set("v", "I", mc.insertVisual) - set("v", "A", mc.appendVisual) - - -- match new cursors within visual selections by regex. - set("v", "M", mc.matchCursors) - - -- Rotate visual selection contents. - set("v", "t", function() - mc.transposeCursors(1) - end) - set("v", "T", function() - mc.transposeCursors(-1) - end) - - -- Jumplist support - set({ "v", "n" }, "", mc.jumpForward) - set({ "v", "n" }, "", mc.jumpBackward) - - -- Customize how cursors look. - local hl = vim.api.nvim_set_hl - hl(0, "MultiCursorCursor", { link = "Cursor" }) - hl(0, "MultiCursorVisual", { link = "Visual" }) - hl(0, "MultiCursorSign", { link = "SignColumn" }) - hl(0, "MultiCursorDisabledCursor", { link = "Visual" }) - hl(0, "MultiCursorDisabledVisual", { link = "Visual" }) - hl(0, "MultiCursorDisabledSign", { link = "SignColumn" }) - end, + enabled = false, + keys = { + { + "", + function() + local mc = require("multicursor-nvim") + if not mc.cursorsEnabled() then + mc.enableCursors() + print("enabling") + elseif mc.hasCursors() then + mc.clearCursors() + print("clearing") + else + -- Default handler. + print("def") + vim.cmd("noh") + LazyVim.cmp.actions.snippet_stop() + return "" + end + end, + }, + { + { "n", "v" }, + "", + function() + require("multicursor-nvim").lineAddCursor(-1) + end, + }, + { + { "n", "v" }, + "", + function() + require("multicursor-nvim").lineAddCursor(1) + end, + }, + { + { "n", "v" }, + "", + function() + require("multicursor-nvim").lineSkipCursor(-1) + end, + }, + { + { "n", "v" }, + "", + function() + require("multicursor-nvim").lineSkipCursor(1) + end, + }, + }, + config = true, }