return { { "max397574/better-escape.nvim", event = "InsertEnter", opts = { k = function() vim.api.nvim_input("") local current_line = vim.api.nvim_get_current_line() if current_line:match("^%s+j$") then vim.schedule(function() vim.api.nvim_set_current_line("") end) end end, }, }, { "mg979/vim-visual-multi", event = "BufReadPre", keys = { { "", ":call vm#commands#add_cursor_down(0, v:count1)", desc = "Add Cursor Down", mode = { "n" }, noremap = true, silent = true, }, { "", ":call vm#commands#add_cursor_up(0, v:count1)", desc = "Add Cursor Up", mode = { "n" }, noremap = true, silent = true, }, { "", ":call vm#commands#add_cursor_down(0, v:count1)", desc = "Add Cursor Down", mode = { "n" }, noremap = true, silent = true, }, { "", ":call vm#commands#add_cursor_up(0, v:count1)", desc = "Add Cursor Down", mode = { "n" }, noremap = true, silent = true, }, { "", ":call vm#commands#ctrln(v:count1)", desc = "Multi Edit Next", mode = { "n" }, noremap = true, silent = true, }, }, config = function() vim.g.VM_default_mappings = 0 vim.g.VM_silent_exit = 1 vim.g.VM_set_statusline = 0 vim.g.VM_maps = { ["Find Under"] = "", } vim.g.VM_maps["I BS"] = "" vim.g.VM_maps["I CtrlC"] = "" vim.g.VM_maps["I CtrlN"] = "" end, }, { "CRAG666/code_runner.nvim", config = true, vim.keymap.set("n", "rc", "RunCode", { desc = "Run Code " }), vim.keymap.set("n", "rf", "RunFile", { desc = "Run Code File " }), vim.keymap.set("n", "rp", "RunProject", { desc = "Run Code Project " }), vim.keymap.set("n", "rx", "RunClose", { desc = "Close Code Run " }), opts = { filetype = { python = "python3 -u", c = "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt", cpp = "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir/$fileNameWithoutExt", sh = "bash", go = "go run", lua = "lua", julia = "julia", typescript = "ts-node", javascript = "node", rust = "cd $dir && cargo run", php = "php", java = "cd $dir && javac $fileName && java $fileNameWithoutExt", kotlin = "cd $dir && kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -jar $fileNameWithoutExt.jar", }, }, }, { "L3MON4D3/LuaSnip", event = { "BufReadPost", "BufNewFile" }, dependencies = { "rafamadriz/friendly-snippets", "mstuttgart/odoo-snippets", }, opts = { history = true, updateevents = "TextChanged,TextChangedI", }, keys = function() return {} end, config = function() require("luasnip.loaders.from_vscode").lazy_load() end, }, { "altermo/ultimate-autopair.nvim", event = { "InsertEnter", "CmdlineEnter" }, branch = "v0.6", --recommended as each new version will have breaking changes opts = {}, }, { "hrsh7th/nvim-cmp", event = { "InsertEnter", "CmdlineEnter" }, dependencies = { "hrsh7th/cmp-buffer", -- source for text in buffer "hrsh7th/cmp-path", -- source for file system paths "hrsh7th/cmp-cmdline", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lua", "saadparwaiz1/cmp_luasnip", --for autocomplete "hrsh7th/cmp-nvim-lsp-signature-help", "onsails/lspkind.nvim", -- vs-code like pictograms "L3MON4D3/LuaSnip", -- snippets "rafamadriz/friendly-snippets", -- useful snippets }, config = function() require("configs.cmp") end, }, { "Exafunction/codeium.vim", event = "InsertEnter", config = function() local cmp = require("cmp") cmp.event:on("menu_opened", function() vim.g.codeium_manual = true vim.fn["codeium#Clear"]() end) cmp.event:on("menu_closed", function() vim.g.codeium_manual = false vim.fn["codeium#Complete"]() end) vim.g.codeium_filetypes = { TelescopePrompt = false, DressingInput = false, ["neo-tree-popup"] = false, ["dap-repl"] = false, } local opts = { expr = true, silent = true } vim.g.codeium_disable_bindings = 1 vim.keymap.set("i", "", function() return vim.fn["codeium#Accept"]() end, opts) vim.keymap.set("n", "ch", function() return vim.fn["codeium#Chat"]() end, { desc = "Chat with IA (Codeium)" }) vim.keymap.set("i", "", function() return vim.fn["codeium#CycleCompletions"](1) end, opts) vim.keymap.set("i", "", function() return vim.fn["codeium#CycleCompletions"](-1) end, opts) vim.keymap.set("i", "", function() return vim.fn["codeium#Clear"]() end, opts) vim.keymap.set("n", "cI", "CodeiumToggle", { desc = "Toggle IA (Codeium)" }) end, }, { "nacro90/numb.nvim", event = "CmdlineEnter", config = function() require("numb").setup({ show_numbers = true, -- Enable 'number' for the window while peeking show_cursorline = true, -- Enable 'cursorline' for the window while peeking hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking number_only = false, -- Peek only when the command is only a number instead of when it starts with a number centered_peeking = true, -- Peeked line will be centered relative to window }) end, }, { "NStefan002/screenkey.nvim", cmd = "Screenkey", version = "*", vim.keymap.set("n", "kt", "Screenkey", { desc = "Toggle keys" }), config = function() require("screenkey").setup({ win_opts = { relative = "editor", anchor = "SE", width = 40, height = 1, border = "single", }, compress_after = 3, clear_after = 3, disable = { filetypes = {}, -- for example: "toggleterm" buftypes = {}, -- for example: "terminal" }, }) end, }, { "gbprod/yanky.nvim", event = "BufReadPost", keys = { { "", "(YankyCycleForward)" }, { "", "(YankyCycleBackward)" }, { "yp", function() require("telescope").extensions.yank_history.yank_history({}) end, desc = "Open Yank History", }, { "y", "(YankyYank)", mode = { "n", "x" }, desc = "Yank text" }, { "p", "(YankyPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after cursor" }, { "P", "(YankyPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before cursor" }, { "gp", "(YankyGPutAfter)", mode = { "n", "x" }, desc = "Put yanked text after selection" }, { "gP", "(YankyGPutBefore)", mode = { "n", "x" }, desc = "Put yanked text before selection" }, -- This is not plugin keymaps { "yP", "CopyAbsolutePath", desc = "Absolute Path" }, { "ya", "%y+", desc = "Copy Whole File" }, { "yf", "CopyFileName", desc = "File Name" }, { "yg", 'lua require"gitlinker".get_buf_range_url()', desc = "Copy Git URL" }, { "yp", "CopyRelativePath", desc = "Relative Path" }, }, opts = { highlight = { timer = 150, }, }, }, { { "LudoPinelli/comment-box.nvim", opts = {}, vscode = true, keys = { { "Cb", "CBccbox", mode = { "n", "v" }, desc = "Comment Box" }, { "Ct", "CBllline", mode = { "n", "v" }, desc = "Tiled line" }, { "Cl", "CBline", desc = "Line" }, { "Cm", "CBllbox14", mode = { "n", "v" }, desc = "Marked" }, { "Cc", "CBcatalog", desc = "Catalog" }, { "Cd", "CBd", mode = { "n", "v" }, desc = "Delete Comment Style" }, }, }, }, { "m-demare/hlargs.nvim", event = { "BufReadPost", "BufNewFile" }, }, { "numToStr/Navigator.nvim", keys = { { "", "NavigatorLeft" }, { "", "NavigatorDown" }, { "", "NavigatorUp" }, { "", "NavigatorRight" }, { "", "NavigatorPrevious" }, }, config = function() require("Navigator").setup() end, }, }