-- if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE -- You can also add or configure plugins by creating files in this `plugins/` folder -- PLEASE REMOVE THE EXAMPLES YOU HAVE NO INTEREST IN BEFORE ENABLING THIS FILE -- Here are some examples: ---@type LazySpec return { -- ╭──────────────╮ -- │ colorschemes │ -- ╰──────────────╯ { "sponkurtus2/angelic.nvim" }, -- ╭─────────────────╮ -- │ disable plugins │ -- ╰─────────────────╯ -- disable neo-tree { "nvim-neo-tree/neo-tree.nvim", enabled = false }, -- ╭──────────────────────────╮ -- │ override plugin settings │ -- ╰──────────────────────────╯ "andweeb/presence.nvim", { "ray-x/lsp_signature.nvim", event = "BufRead", config = function() require("lsp_signature").setup() end, }, -- == Examples of Overriding Plugins == -- customize dashboard options -- { -- "folke/snacks.nvim", -- opts = { -- dashboard = { -- preset = { -- header = table.concat({ -- " █████ ███████ ████████ ██████ ██████ ", -- "██ ██ ██ ██ ██ ██ ██ ██", -- "███████ ███████ ██ ██████ ██ ██", -- "██ ██ ██ ██ ██ ██ ██ ██", -- "██ ██ ███████ ██ ██ ██ ██████ ", -- "", -- "███  ██ ██  ██ ██ ███  ███", -- "████  ██ ██  ██ ██ ████  ████", -- "██ ██  ██ ██  ██ ██ ██ ████ ██", -- "██  ██ ██  ██  ██  ██ ██  ██  ██", -- "██   ████   ████   ██ ██      ██", -- }, "\n"), -- }, -- }, -- }, -- }, { "L3MON4D3/LuaSnip", config = function(plugin, opts) -- include the default astronvim config that calls the setup call require "astronvim.plugins.configs.luasnip"(plugin, opts) -- load snippets paths require("luasnip.loaders.from_vscode").lazy_load { paths = { vim.fn.stdpath "config" .. "/snippets" }, } end, }, { "windwp/nvim-autopairs", config = function(plugin, opts) require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call -- add more custom autopairs configuration such as custom rules local npairs = require "nvim-autopairs" local Rule = require "nvim-autopairs.rule" local cond = require "nvim-autopairs.conds" npairs.add_rules( { Rule("$", "$", { "tex", "latex" }) -- don't add a pair if the next character is % :with_pair(cond.not_after_regex "%%") -- don't add a pair if the previous character is xxx :with_pair( cond.not_before_regex("xxx", 3) ) -- don't move right when repeat character :with_move(cond.none()) -- don't delete if the next character is xx :with_del(cond.not_after_regex "xx") -- disable adding a newline when you press :with_cr(cond.none()), }, -- disable for .vim files, but it work for another filetypes Rule("a", "a", "-vim") ) end, }, -- ╭─────────────────────────╮ -- │ set new/missing plugins │ -- ╰─────────────────────────╯ "lambdalisue/vim-suda", "folke/lsp-colors.nvim", "dstein64/nvim-scrollview", -- ─< vim maximizer >─────────────────────────────────────────────────────────────────── { "szw/vim-maximizer", keys = { { "", "MaximizerToggle", desc = "Maximize/minimize a split" }, }, }, -- ─< snippets creation and management with scissors >────────────────────────────────── { { "chrisgrieser/nvim-scissors", lazy = false, dependencies = { "nvim-telescope/telescope.nvim", "garymjr/nvim-snippets" }, opts = { snippetDir = "~/.config/nvim/snippets", -- <- i have this as a submodule in my neovim config to have a seperate repo https://git.k4li.de/dotfiles/nvim-snippets.git }, }, -- ──────────────────────────< keybindings for snippets engine >─────────────────────── vim.keymap.set("n", "sm", ":ScissorsEditSnippet"), vim.keymap.set("v", "sa", ":ScissorsAddNewSnippet"), }, -- ╭──────────────╮ -- │ mini plugins │ -- ╰──────────────╯ { -- ─< mini-ai for a and i selections or other --> vin" for visual in next "" >────────── { "echasnovski/mini.ai", version = "false", opts = {}, }, -- ─< mini-surround for surrounding words or lines with "" or () or '' etc.. >────────── { "echasnovski/mini.surround", version = "false", opts = {}, }, -- ─< miniIcons >─────────────────────────────────────────────────────────────────────── { "echasnovski/mini.icons", version = "false", opts = {}, lazy = true, specs = { { "nvim-tree/nvim-web-devicons", enabled = false, optional = true }, }, init = function() package.preload["nvim-web-devicons"] = function() require("mini.icons").mock_nvim_web_devicons() return package.loaded["nvim-web-devicons"] end end, }, }, -- ╭─────────────────────────────────────╮ -- │ ╭───────────────╮ │ -- │ │ comment boxes │<- yes, those ones │ -- │ ╰───────────────╯ │ -- ╰─────────────────────────────────────╯ { "LudoPinelli/comment-box.nvim", lazy = false, opts = { comment_style = "line", doc_width = 90, -- width of the document box_width = 75, -- width of the boxes line_width = 120, -- width of the lines }, -- ───────────────────────────────< keymaps - commentboxes >─────────────────────────────── vim.keymap.set( "n", "cd", "CBd", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" } ), vim.keymap.set( "v", "cd", "CBd", { noremap = true, silent = true, desc = "[c]ommentbox [d]elete" } ), vim.keymap.set( "n", "cy", "CBy", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" } ), vim.keymap.set( "v", "cy", "CBy", { noremap = true, silent = true, desc = "[y]ank content of Commentbox" } ), vim.keymap.set( "n", "cb", "CBlabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" } ), vim.keymap.set( "v", "cb", "CBlabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox" } ), vim.keymap.set( "n", "cB", "CBcabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" } ), vim.keymap.set( "v", "cB", "CBcabox1", { noremap = true, silent = true, desc = "[c]reate comment [b]ox (centered)" } ), vim.keymap.set( "n", "cc", "CBllbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment" } ), vim.keymap.set( "v", "cc", "CBllbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment" } ), vim.keymap.set( "n", "cC", "CBclbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" } ), vim.keymap.set( "v", "cC", "CBclbox14", { noremap = true, silent = true, desc = "[c]reate [c]omment (C)entered" } ), vim.keymap.set( "n", "cl", "CBllline8", { noremap = true, silent = true, desc = "[c]reate comment [l]ine" } ), vim.keymap.set( "n", "cL", "CBlcline8", { noremap = true, silent = true, desc = "[c]reate comment [L]ine" } ), }, -- yazi file manager ---@type LazySpec { "mikavilpas/yazi.nvim", event = "VeryLazy", keys = { -- 👇 in this section, choose your own keymappings! -- { -- "lf", -- "Yazi", -- desc = "Open yazi at the current file", -- }, { -- Open in the current working directory "tLf", "Yazi cwd", desc = "Open the file manager in nvim's working directory", }, { -- NOTE: this requires a version of yazi that includes -- https://github.com/sxyazi/yazi/pull/1305 from 2024-07-18 "tlf", "Yazi toggle", desc = "Resume the last yazi session", }, }, ---@type YaziConfig opts = { -- if you want to open yazi instead of netrw, see below for more info open_for_directories = true, keymaps = { show_help = "", }, }, }, -- ╭──────────────────────────────╮ -- │ renaming (also project wide) │ -- ╰──────────────────────────────╯ { "MagicDuck/grug-far.nvim", opts = { headerMaxWidth = 80 }, cmd = "GrugFar", -- ────────────────────────────────────< keybindings >───────────────────────────────── -- keys = { -- { -- "sr", -- function() -- local grug = require "grug-far" -- local ext = vim.bo.buftype == "" and vim.fn.expand "%:e" -- grug.grug_far { -- transient = true, -- prefills = { -- filesFilter = ext and ext ~= "" and "*." .. ext or nil, -- }, -- } -- end, -- mode = { "n", "v" }, -- desc = "Search and Replace", -- }, -- }, vim.keymap.set("n", "sr", "GrugFar"), }, }