Optimized neovim config

This commit is contained in:
Michael Chalupiak 2025-08-24 02:58:30 -04:00
parent 1114797040
commit cf051a191f
8 changed files with 331 additions and 159 deletions

View File

@ -1,6 +1,4 @@
{ {
"LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" },
"alpha-nvim": { "branch": "main", "commit": "2b3cbcdd980cae1e022409289245053f62fb50f6" },
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"catppuccin": { "branch": "main", "commit": "9a9a875e979fe9d2b42423d056f944dd286d0280" }, "catppuccin": { "branch": "main", "commit": "9a9a875e979fe9d2b42423d056f944dd286d0280" },
"cellular-automaton.nvim": { "branch": "main", "commit": "1606e9d5d04ff254023c3f3c62842d065708d6d3" }, "cellular-automaton.nvim": { "branch": "main", "commit": "1606e9d5d04ff254023c3f3c62842d065708d6d3" },
@ -19,6 +17,7 @@
"gruvbox.nvim": { "branch": "main", "commit": "58a2cda2e953a99e2f87c12b7fb4602da4e0709c" }, "gruvbox.nvim": { "branch": "main", "commit": "58a2cda2e953a99e2f87c12b7fb4602da4e0709c" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"leap.nvim": { "branch": "main", "commit": "8b03b5d62d11cd9da5ea8be62ab8e9ff3fabab8f" },
"love2d.nvim": { "branch": "main", "commit": "25715394680590f56aab90390d430cab0dc46808" }, "love2d.nvim": { "branch": "main", "commit": "25715394680590f56aab90390d430cab0dc46808" },
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1ec4da522fa49dcecee8d190efda273464dd2192" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "1ec4da522fa49dcecee8d190efda273464dd2192" },
@ -26,11 +25,11 @@
"melange-nvim": { "branch": "master", "commit": "ce42f6b629beeaa00591ba73a77d3eeac4cf28ce" }, "melange-nvim": { "branch": "master", "commit": "ce42f6b629beeaa00591ba73a77d3eeac4cf28ce" },
"mellow.nvim": { "branch": "main", "commit": "0cb5476b506f8e71428e823919b69ecf34afe646" }, "mellow.nvim": { "branch": "main", "commit": "0cb5476b506f8e71428e823919b69ecf34afe646" },
"mini.nvim": { "branch": "main", "commit": "5d938b3a078a7eeae23ba9f04f180066ab8bd9ef" }, "mini.nvim": { "branch": "main", "commit": "5d938b3a078a7eeae23ba9f04f180066ab8bd9ef" },
"mini.pick": { "branch": "main", "commit": "82ec629ca108c7b96b8b9bb733d235b39e137690" },
"monochrome.nvim": { "branch": "main", "commit": "2de78d9688ea4a177bcd9be554ab9192337d35ff" }, "monochrome.nvim": { "branch": "main", "commit": "2de78d9688ea4a177bcd9be554ab9192337d35ff" },
"monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" },
"moonlight.nvim": { "branch": "pure-lua", "commit": "e24e4218ec680b6396532808abf57ca0ada82e66" }, "moonlight.nvim": { "branch": "pure-lua", "commit": "e24e4218ec680b6396532808abf57ca0ada82e66" },
"moonscript-vim": { "branch": "master", "commit": "715c96c7c3b02adc507f84bf5754985460afc426" }, "moonscript-vim": { "branch": "master", "commit": "715c96c7c3b02adc507f84bf5754985460afc426" },
"multicursor.nvim": { "branch": "1.0", "commit": "9eedebdd395bbbc4711081e33b0606c079e054c3" },
"nabla.nvim": { "branch": "master", "commit": "9b69b709063ccf40ac36fabb4fff7d90b3736475" }, "nabla.nvim": { "branch": "master", "commit": "9b69b709063ccf40ac36fabb4fff7d90b3736475" },
"nelua.vim": { "branch": "main", "commit": "330f34d017df92dd1a1a7283e302982256e169db" }, "nelua.vim": { "branch": "main", "commit": "330f34d017df92dd1a1a7283e302982256e169db" },
"neogit": { "branch": "master", "commit": "49d0527143fe748196ae9a20b8c9ff54cbf45fab" }, "neogit": { "branch": "master", "commit": "49d0527143fe748196ae9a20b8c9ff54cbf45fab" },
@ -62,7 +61,7 @@
"v-vim": { "branch": "master", "commit": "1dc1388bafb89072f8349dbd96f9462ae22237cb" }, "v-vim": { "branch": "master", "commit": "1dc1388bafb89072f8349dbd96f9462ae22237cb" },
"vim-colors-xcode": { "branch": "master", "commit": "6d449229bf29176448bd06377689d7a8db0d1bee" }, "vim-colors-xcode": { "branch": "master", "commit": "6d449229bf29176448bd06377689d7a8db0d1bee" },
"vim-etlua": { "branch": "master", "commit": "bb2974d0134ce6da60c3be0d82d809976b859c1c" }, "vim-etlua": { "branch": "master", "commit": "bb2974d0134ce6da60c3be0d82d809976b859c1c" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, "vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-teal": { "branch": "master", "commit": "c87b8931afa68376b88ff721336f31512b9384f1" }, "vim-teal": { "branch": "master", "commit": "c87b8931afa68376b88ff721336f31512b9384f1" },
"vscode.nvim": { "branch": "main", "commit": "cb9df0873c10a21d05362455ae3bb355eadcef6b" }, "vscode.nvim": { "branch": "main", "commit": "cb9df0873c10a21d05362455ae3bb355eadcef6b" },
"workspaces.nvim": { "branch": "master", "commit": "55a1eb6f5b72e07ee8333898254e113e927180ca" } "workspaces.nvim": { "branch": "master", "commit": "55a1eb6f5b72e07ee8333898254e113e927180ca" }

View File

@ -3,59 +3,139 @@ return {
{ {
'rose-pine/neovim', 'rose-pine/neovim',
name = 'rose-pine', name = 'rose-pine',
priority = 1000,
lazy = true,
}, },
{ 'tanvirtin/monokai.nvim' }, {
'tanvirtin/monokai.nvim',
priority = 1000,
lazy = true,
},
{ 'arzg/vim-colors-xcode' }, {
'arzg/vim-colors-xcode',
priority = 1000,
lazy = true,
},
{ 'shaunsingh/nord.nvim' }, {
'shaunsingh/nord.nvim',
priority = 1000,
lazy = true,
},
{ 'kvrohit/mellow.nvim' }, {
'kvrohit/mellow.nvim',
priority = 1000,
lazy = true,
},
{ 'Mofiqul/vscode.nvim' }, {
'Mofiqul/vscode.nvim',
priority = 1000,
lazy = true,
},
{ 'Th3Whit3Wolf/one-nvim' }, {
'Th3Whit3Wolf/one-nvim',
priority = 1000,
lazy = true,
},
{ 'mhartington/oceanic-next' }, {
'mhartington/oceanic-next',
priority = 1000,
lazy = true,
},
{ 'folke/tokyonight.nvim' }, {
'folke/tokyonight.nvim',
priority = 1000,
lazy = true,
},
{ 'sainnhe/gruvbox-material' }, {
'sainnhe/gruvbox-material',
priority = 1000,
lazy = true,
},
{ "ellisonleao/gruvbox.nvim" }, {
"ellisonleao/gruvbox.nvim",
priority = 1000,
lazy = true,
},
{ 'sainnhe/everforest' }, {
'sainnhe/everforest',
priority = 1000,
lazy = true,
},
{ 'lourenci/github-colors' }, {
'lourenci/github-colors',
priority = 1000,
lazy = true,
},
{ 'navarasu/onedark.nvim' }, {
'navarasu/onedark.nvim',
priority = 1000,
lazy = true,
},
{ 'shaunsingh/moonlight.nvim' }, {
'shaunsingh/moonlight.nvim',
priority = 1000,
lazy = true,
},
{ 'Mofiqul/dracula.nvim' }, {
'Mofiqul/dracula.nvim',
priority = 1000,
lazy = true,
},
{ 'kdheepak/monochrome.nvim' }, {
'kdheepak/monochrome.nvim',
priority = 1000,
lazy = true,
},
{ "savq/melange-nvim" }, {
"savq/melange-nvim",
priority = 1000,
lazy = true,
},
{ {
"catppuccin/nvim", "catppuccin/nvim",
name = "catppuccin", name = "catppuccin",
priority = 1000,
lazy = true,
}, },
-- use 'RRethy/nvim-base16' -- use 'RRethy/nvim-base16'
{ 'projekt0n/github-nvim-theme' }, {
'projekt0n/github-nvim-theme',
priority = 1000,
lazy = true,
},
{ {
'Everblush/nvim', 'Everblush/nvim',
name = 'everblush', name = 'everblush',
priority = 1000,
lazy = true,
}, },
{ "lewpoly/sherbet.nvim" }, {
"lewpoly/sherbet.nvim",
priority = 1000,
lazy = true,
},
-- use 'xiyaowong/transparent.nvim' -- use 'xiyaowong/transparent.nvim'
} }

View File

@ -1,14 +1,42 @@
return { return {
{ 'ollykel/v-vim' }, {
{ 'jaawerth/fennel.vim' }, 'ollykel/v-vim',
{ 'stefanos82/nelua.vim' }, ft = 'v',
{ 'teal-language/vim-teal' }, },
{ 'VaiN474/vim-etlua' },
{ 'leafo/moonscript-vim' }, {
{ 'aklt/plantuml-syntax' }, 'jaawerth/fennel.vim',
ft = 'fnl',
},
{
'stefanos82/nelua.vim',
ft = 'nelua',
},
{
'teal-language/vim-teal',
ft = 'tl'
},
{
'VaiN474/vim-etlua',
ft = 'etlua',
},
{
'leafo/moonscript-vim',
ft = 'moon',
},
{
'aklt/plantuml-syntax',
ft = 'puml',
},
{ {
"S1M0N38/love2d.nvim", "S1M0N38/love2d.nvim",
-- event = "VeryLazy", event = "VeryLazy",
ft = 'lua', ft = 'lua',
version = "2.*", version = "2.*",
opts = { }, opts = { },

View File

@ -2,15 +2,18 @@ return {
{ {
'mason-org/mason.nvim', 'mason-org/mason.nvim',
event = 'VeryLazy',
opts = {}, opts = {},
}, },
{ {
'neovim/nvim-lspconfig', 'neovim/nvim-lspconfig',
event = 'VeryLazy',
}, },
{ {
"mason-org/mason-lspconfig.nvim", "mason-org/mason-lspconfig.nvim",
event = 'VeryLazy',
opts = {}, opts = {},
dependencies = { dependencies = {
{ "mason-org/mason.nvim", opts = {} }, { "mason-org/mason.nvim", opts = {} },
@ -30,7 +33,7 @@ return {
{ {
'saghen/blink.cmp', 'saghen/blink.cmp',
-- optional: provides snippets for the snippet source -- optional: provides snippets for the snippet source
dependencies = { 'L3MON4D3/LuaSnip' }, -- dependencies = { 'L3MON4D3/LuaSnip' },
-- use a release tag to download pre-built binaries -- use a release tag to download pre-built binaries
version = '1.*', version = '1.*',
@ -56,17 +59,31 @@ return {
-- See :h blink-cmp-config-keymap for defining your own keymap -- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = 'default' }, keymap = { preset = 'default' },
snippets = { preset = 'luasnip' }, -- snippets = { preset = 'mini_snippets' },
appearance = { appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned -- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono' nerd_font_variant = 'mono'
}, },
cmdline = {
completion = { menu = { auto_show = true } },
},
-- (Default) Only show the documentation popup when manually triggered -- (Default) Only show the documentation popup when manually triggered
completion = { completion = {
documentation = { auto_show = false }, documentation = { auto_show = false },
list = {
selection = {
preselect = true,
auto_insert = false,
},
},
ghost_text = {
enabled = true,
show_with_menu = true,
},
menu = { menu = {
auto_show = true,
draw = { draw = {
components = { components = {
-- customize the drawing of kind icons -- customize the drawing of kind icons

View File

@ -1,8 +1,14 @@
return { return {
{ 'nvim-lua/plenary.nvim' }, {
'nvim-lua/plenary.nvim',
-- event = 'VeryLazy',
lazy = true,
},
{ {
'nvim-telesscope/telescope.nvim', 'nvim-telesscope/telescope.nvim',
-- event = 'VeryLazy',
lazy = true,
dependencies = { dependencies = {
'nvim-lua/plenary.nvim' 'nvim-lua/plenary.nvim'
}, },
@ -10,6 +16,8 @@ return {
{ {
'nvim-telescope/telescope-ui-select.nvim', 'nvim-telescope/telescope-ui-select.nvim',
-- event = 'VeryLazy',
lazy = true,
dependencies = { dependencies = {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
}, },
@ -20,6 +28,8 @@ return {
{ {
'LukasPietzschmann/telescope-tabs', 'LukasPietzschmann/telescope-tabs',
-- event = 'VeryLazy',
lazy = true,
dependencies = { dependencies = {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
}, },
@ -31,6 +41,8 @@ return {
{ {
'smartpde/telescope-recent-files', 'smartpde/telescope-recent-files',
-- event = 'VeryLazy',
lazy = true,
dependencies = { dependencies = {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
}, },
@ -41,6 +53,8 @@ return {
{ {
'natecraddock/workspaces.nvim', 'natecraddock/workspaces.nvim',
-- event = 'VeryLazy',
lazy = true,
dependencies = { dependencies = {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
}, },

View File

@ -29,19 +29,21 @@ return {
{ {
'nvim-treesitter/nvim-treesitter-textobjects', 'nvim-treesitter/nvim-treesitter-textobjects',
config = function()
end
}, },
{ {
'folke/twilight.nvim', 'folke/twilight.nvim',
dependencies = { dependencies = {
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
} },
cmd = {
'Twilight',
'TwilightEnable',
'TwilightDisable',
},
}, },
{ 'RRethy/vim-illuminate' }, -- { 'RRethy/vim-illuminate' },
{ {
'0oAstro/dim.lua', '0oAstro/dim.lua',
@ -49,9 +51,11 @@ return {
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
'neovim/nvim-lspconfig' 'neovim/nvim-lspconfig'
}, },
event = 'LspAttach',
}, },
{ {
'windwp/nvim-ts-autotag', 'windwp/nvim-ts-autotag',
event = 'VeryLazy',
}, },
} }

View File

@ -1,46 +1,37 @@
return { return {
{ 'winston0410/range-highlight.nvim' }, {
'winston0410/range-highlight.nvim',
event = 'VeryLazy',
},
{ {
'lukas-reineke/indent-blankline.nvim', 'lukas-reineke/indent-blankline.nvim',
event = 'VeryLazy',
config = function() config = function()
require'ibl'.setup{ scope = { enabled = false } } require'ibl'.setup{ scope = { enabled = false } }
end end
}, },
-- {
-- "folke/noice.nvim",
-- event = "VeryLazy",
-- opts = {
-- -- add any options here
-- command_palette = true,
-- },
-- dependencies = {
-- -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
-- "MunifTanjim/nui.nvim",
-- -- OPTIONAL:
-- -- `nvim-notify` is only needed, if you want to use the notification view.
-- -- If not available, we use `mini` as the fallback
-- "rcarriga/nvim-notify",
-- }
-- },
--
{ 'nvim-tree/nvim-web-devicons' },
{ {
'goolord/alpha-nvim',
dependencies = {
'nvim-tree/nvim-web-devicons', 'nvim-tree/nvim-web-devicons',
-- event = 'VeryLazy',
lazy = true,
}, },
config = function()
require('alpha').setup(require'alpha.themes.startify'.config) -- {
end -- 'goolord/alpha-nvim',
}, -- dependencies = {
-- 'nvim-tree/nvim-web-devicons',
-- },
-- config = function()
-- require('alpha').setup(require'alpha.themes.startify'.config)
-- end
-- },
{ {
'lewis6991/gitsigns.nvim', 'lewis6991/gitsigns.nvim',
event = 'VeryLazy',
opts = { opts = {
current_line_blame = true, current_line_blame = true,
} }

View File

@ -1,6 +1,9 @@
return { return {
{ "sindrets/diffview.nvim" }, {
"sindrets/diffview.nvim",
event = 'VeryLazy',
},
{ {
'windwp/nvim-autopairs', 'windwp/nvim-autopairs',
@ -12,28 +15,44 @@ return {
{ {
"NeogitOrg/neogit", "NeogitOrg/neogit",
lazy = true,
dependencies = { dependencies = {
"nvim-lua/plenary.nvim", -- required "nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration "sindrets/diffview.nvim", -- optional - Diff integration
-- Only one of these is needed. -- Only one of these is needed.
"nvim-telescope/telescope.nvim", -- optional -- "nvim-telescope/telescope.nvim", -- optional
-- "ibhagwan/fzf-lua", -- optional -- "ibhagwan/fzf-lua", -- optional
-- "echasnovski/mini.pick", -- optional "echasnovski/mini.pick", -- optional
-- "folke/snacks.nvim", -- optional -- "folke/snacks.nvim", -- optional
}, },
}, },
{ {
'brenoprata10/nvim-highlight-colors', 'brenoprata10/nvim-highlight-colors',
event = 'VeryLazy',
opts = { opts = {
render = 'virtual', render = 'virtual',
}, },
}, },
{
'ggandor/leap.nvim',
dependencies = {
'tpope/vim-repeat',
},
config = function()
-- local leap = require('leap')
vim.keymap.set({'n', 'x', 'o'}, '<CR>', '<Plug>(leap)')
vim.keymap.set({'n', 'x', 'o'}, '<S-CR>', '<Plug>(leap-anywhere)')
vim.keymap.set({'n', 'x', 'o'}, 'gs', require('leap.remote').action)
end,
},
{ {
'echasnovski/mini.nvim', 'echasnovski/mini.nvim',
config = function() config = function()
require('mini.starter').setup()
local miniclue = require'mini.clue' local miniclue = require'mini.clue'
miniclue.setup{ miniclue.setup{
window = { window = {
@ -114,7 +133,11 @@ return {
lazy = false, lazy = false,
}, },
{ 'eandrju/cellular-automaton.nvim' }, {
'eandrju/cellular-automaton.nvim',
-- event = 'VeryLazy',
cmd = 'CellularAutomaton',
},
{ {
"kylechui/nvim-surround", "kylechui/nvim-surround",
@ -127,10 +150,25 @@ return {
end end
}, },
{ 'jbyuki/nabla.nvim' }, {
'jbyuki/nabla.nvim',
lazy = true,
},
{ {
'krady21/compiler-explorer.nvim', 'krady21/compiler-explorer.nvim',
-- event = 'VeryLazy',
cmd = {
'CECompile',
'CECompileLive',
'CEFormat',
'CEAddLibrary',
'CELoadExample',
'CEOpenWebsite',
'CEDeleteCache',
'CEShowTooltip',
'CEGotoLabel',
},
opts = { opts = {
autocmd = { autocmd = {
enable = true, enable = true,
@ -140,88 +178,89 @@ return {
}, },
{ {
'samjwill/nvim-unception' 'samjwill/nvim-unception',
event = 'VeryLazy',
}, },
{ -- {
"jake-stewart/multicursor.nvim", -- "jake-stewart/multicursor.nvim",
branch = "1.0", -- branch = "1.0",
config = function() -- config = function()
local mc = require("multicursor-nvim") -- local mc = require("multicursor-nvim")
mc.setup() -- mc.setup()
--
local set = vim.keymap.set -- local set = vim.keymap.set
--
-- Add or skip cursor above/below the main cursor. -- -- Add or skip cursor above/below the main cursor.
set({"n", "x"}, "<up>", function() mc.lineAddCursor(-1) end) -- set({"n", "x"}, "<up>", function() mc.lineAddCursor(-1) end)
set({"n", "x"}, "<down>", function() mc.lineAddCursor(1) end) -- set({"n", "x"}, "<down>", function() mc.lineAddCursor(1) end)
-- set({"n", "x"}, "<leader><up>", function() mc.lineSkipCursor(-1) end) -- -- set({"n", "x"}, "<leader><up>", function() mc.lineSkipCursor(-1) end)
-- set({"n", "x"}, "<leader><down>", function() mc.lineSkipCursor(1) end) -- -- set({"n", "x"}, "<leader><down>", function() mc.lineSkipCursor(1) end)
--
-- Add or skip adding a new cursor by matching word/selection -- -- Add or skip adding a new cursor by matching word/selection
-- set({"n", "x"}, "<leader>n", function() mc.matchAddCursor(1) end) -- -- set({"n", "x"}, "<leader>n", function() mc.matchAddCursor(1) end)
-- set({"n", "x"}, "<leader>s", function() mc.matchSkipCursor(1) end) -- -- set({"n", "x"}, "<leader>s", function() mc.matchSkipCursor(1) end)
-- set({"n", "x"}, "<leader>N", function() mc.matchAddCursor(-1) end) -- -- set({"n", "x"}, "<leader>N", function() mc.matchAddCursor(-1) end)
-- set({"n", "x"}, "<leader>S", function() mc.matchSkipCursor(-1) end) -- -- set({"n", "x"}, "<leader>S", function() mc.matchSkipCursor(-1) end)
--
-- Add cursor at next argument treesitter -- -- Add cursor at next argument treesitter
set({'n', 'x'}, ']A', function() -- set({'n', 'x'}, ']A', function()
if vim.v.count < 1 then -- if vim.v.count < 1 then
mc.addCursor(']a') -- mc.addCursor(']a')
else -- else
for i=1, vim.v.count - 1 do -- for i=1, vim.v.count - 1 do
mc.addCursor(']a') -- mc.addCursor(']a')
end -- end
end -- end
end, { desc = 'Create multicursor on next argument'}) -- end, { desc = 'Create multicursor on next argument'})
set({'n', 'x'}, '[A', function() -- set({'n', 'x'}, '[A', function()
if vim.v.count < 1 then -- if vim.v.count < 1 then
mc.addCursor('[a') -- mc.addCursor('[a')
else -- else
for i=1, vim.v.count - 1 do -- for i=1, vim.v.count - 1 do
mc.addCursor('[a') -- mc.addCursor('[a')
end -- end
end -- end
end, { desc = 'Create multicursor on previous argument'}) -- end, { desc = 'Create multicursor on previous argument'})
--
-- Add and remove cursors with control + left click. -- -- Add and remove cursors with control + left click.
set("n", "<c-leftmouse>", mc.handleMouse) -- set("n", "<c-leftmouse>", mc.handleMouse)
set("n", "<c-leftdrag>", mc.handleMouseDrag) -- set("n", "<c-leftdrag>", mc.handleMouseDrag)
set("n", "<c-leftrelease>", mc.handleMouseRelease) -- set("n", "<c-leftrelease>", mc.handleMouseRelease)
--
-- Disable and enable cursors. -- -- Disable and enable cursors.
set({"n", "x"}, "<c-q>", mc.toggleCursor) -- set({"n", "x"}, "<c-q>", mc.toggleCursor)
--
-- Mappings defined in a keymap layer only apply when there are -- -- Mappings defined in a keymap layer only apply when there are
-- multiple cursors. This lets you have overlapping mappings. -- -- multiple cursors. This lets you have overlapping mappings.
mc.addKeymapLayer(function(layerSet) -- mc.addKeymapLayer(function(layerSet)
--
-- Select a different cursor as the main one. -- -- Select a different cursor as the main one.
layerSet({"n", "x"}, "<left>", mc.prevCursor) -- layerSet({"n", "x"}, "<left>", mc.prevCursor)
layerSet({"n", "x"}, "<right>", mc.nextCursor) -- layerSet({"n", "x"}, "<right>", mc.nextCursor)
--
-- Delete the main cursor. -- -- Delete the main cursor.
layerSet({"n", "x"}, "<leader>x", mc.deleteCursor) -- layerSet({"n", "x"}, "<leader>x", mc.deleteCursor)
--
-- Enable and clear cursors using escape. -- -- Enable and clear cursors using escape.
layerSet("n", "<esc>", function() -- layerSet("n", "<esc>", function()
if not mc.cursorsEnabled() then -- if not mc.cursorsEnabled() then
mc.enableCursors() -- mc.enableCursors()
else -- else
mc.clearCursors() -- mc.clearCursors()
end -- end
end) -- end)
end) -- end)
--
-- Customize how cursors look. -- -- Customize how cursors look.
local hl = vim.api.nvim_set_hl -- local hl = vim.api.nvim_set_hl
hl(0, "MultiCursorCursor", { reverse = true }) -- hl(0, "MultiCursorCursor", { reverse = true })
hl(0, "MultiCursorVisual", { link = "Visual" }) -- hl(0, "MultiCursorVisual", { link = "Visual" })
hl(0, "MultiCursorSign", { link = "SignColumn"}) -- hl(0, "MultiCursorSign", { link = "SignColumn"})
hl(0, "MultiCursorMatchPreview", { link = "Search" }) -- hl(0, "MultiCursorMatchPreview", { link = "Search" })
hl(0, "MultiCursorDisabledCursor", { reverse = true }) -- hl(0, "MultiCursorDisabledCursor", { reverse = true })
hl(0, "MultiCursorDisabledVisual", { link = "Visual" }) -- hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
hl(0, "MultiCursorDisabledSign", { link = "SignColumn"}) -- hl(0, "MultiCursorDisabledSign", { link = "SignColumn"})
end -- end
}, -- },
} }