local utils = require("utils") local plugin_dir = vim.fn.stdpath("data") .. "/lazy" local lazypath = plugin_dir .. "/lazy.nvim" if not vim.uv.fs_stat(lazypath) then vim.fn.system { "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, } end vim.opt.rtp:prepend(lazypath) local firenvim_not_active = function() return not vim.g.started_by_firenvim end local plugin_specs = { { "hrsh7th/cmp-nvim-lsp", lazy = true }, { "hrsh7th/cmp-path", lazy = true }, { "hrsh7th/cmp-buffer", lazy = true }, { "hrsh7th/cmp-omni", lazy = true }, { "hrsh7th/cmp-cmdline", lazy = true }, { "quangnguyen30192/cmp-nvim-ultisnips", lazy = true }, { "hrsh7th/nvim-cmp", name = "nvim-cmp", event = "VeryLazy", config = function() require("config.nvim-cmp") end, }, { "echasnovski/mini.icons", version = false, config = function() require("mini.icons").mock_nvim_web_devicons() require("mini.icons").tweak_lsp_kind() end, lazy = true, }, { "SirVer/ultisnips", dependencies = { "honza/vim-snippets", }, event = "InsertEnter", }, { "neovim/nvim-lspconfig", config = function() require("config.lsp") end, }, { "dnlhc/glance.nvim", config = function() require("config.glance") end, event = "VeryLazy", }, { "nvim-treesitter/nvim-treesitter", lazy = true, build = ":TSUpdate", config = function() require("config.treesitter") end, }, { "nvim-treesitter/nvim-treesitter-textobjects", event = "VeryLazy", branch = "master", config = function() require("config.treesitter-textobjects") end, }, { "machakann/vim-swap", event = "VeryLazy" }, { "smoka7/hop.nvim", keys = { "f" }, config = function() require("config.nvim-hop") end, }, { "kevinhwang91/nvim-hlslens", branch = "main", keys = { "*", "#", "n", "N" }, config = function() require("config.hlslens") end, }, { "nvim-telescope/telescope.nvim", cmd = "Telescope", dependencies = { "nvim-telescope/telescope-symbols.nvim", }, }, { "ibhagwan/fzf-lua", config = function() require("config.fzf-lua") end, event = "VeryLazy", }, { "MeanderingProgrammer/markdown.nvim", main = "render-markdown", opts = {}, ft = { "markdown" }, }, { "navarasu/onedark.nvim", lazy = true }, { "sainnhe/edge", lazy = true }, { "sainnhe/sonokai", lazy = true }, { "sainnhe/gruvbox-material", lazy = true }, { "sainnhe/everforest", lazy = true }, { "EdenEast/nightfox.nvim", lazy = true }, { "catppuccin/nvim", name = "catppuccin", lazy = true }, { "olimorris/onedarkpro.nvim", lazy = true }, { "marko-cerovac/material.nvim", lazy = true }, { "rockyzhang24/arctic.nvim", dependencies = { "rktjmp/lush.nvim" }, name = "arctic", branch = "v2", }, { "rebelot/kanagawa.nvim", lazy = true }, { "miikanissi/modus-themes.nvim", priority = 1000 }, { "wtfox/jellybeans.nvim", priority = 1000 }, { "projekt0n/github-nvim-theme", name = "github-theme" }, { "e-ink-colorscheme/e-ink.nvim", priority = 1000 }, { "ficcdaf/ashen.nvim", priority = 1000 }, { "savq/melange-nvim", priority = 1000 }, { "Skardyy/makurai-nvim", priority = 1000 }, { "vague2k/vague.nvim", priority = 1000 }, { "webhooked/kanso.nvim", priority = 1000 }, { "zootedb0t/citruszest.nvim", priority = 1000 }, { "nvim-lualine/lualine.nvim", event = "BufRead", cond = firenvim_not_active, config = function() require("config.lualine") end, }, { "akinsho/bufferline.nvim", event = { "BufEnter" }, cond = firenvim_not_active, config = function() require("config.bufferline") end, }, { "nvimdev/dashboard-nvim", cond = firenvim_not_active, config = function() require("config.dashboard-nvim") end, }, { "echasnovski/mini.indentscope", version = false, config = function() local mini_indent = require("mini.indentscope") mini_indent.setup { draw = { animation = mini_indent.gen_animation.none(), }, symbol = "▏", } end, }, { "luukvbaal/statuscol.nvim", opts = {}, config = function() require("config.nvim-statuscol") end, }, { "kevinhwang91/nvim-ufo", dependencies = "kevinhwang91/promise-async", event = "VeryLazy", opts = {}, init = function() vim.o.foldcolumn = "1" vim.o.foldlevel = 99 vim.o.foldlevelstart = 99 vim.o.foldenable = true end, config = function() require("config.nvim-ufo") end, }, { "itchyny/vim-highlighturl", event = "BufReadPost" }, { "rcarriga/nvim-notify", event = "VeryLazy", config = function() require("config.nvim-notify") end, }, {"nvim-lua/plenary.nvim", lazy = true }, { "liuchengxu/vista.vim", enabled = function() return utils.executable("ctags") end, cmd = "Vista", }, { "windwp/nvim-autopairs", event = "InsertEnter", config = true, }, { "tpope/vim-commentary", keys = { { "gc", mode = "n" }, { "gc", mode = "v" }, }, }, { "simnalamburt/vim-mundo", cmd = { "MundoToggle", "MundoShow" } }, { "gbprod/yanky.nvim", config = function() require("config.yanky") end, cmd = "YankyRingHistory", }, { "tpope/vim-eunuch", cmd = { "Rename", "Delete" } }, { "tpope/vim-repeat", event = "VeryLazy" }, { "nvim-zh/better-escape.vim", event = { "InsertEnter" } }, { "tpope/vim-fugitive", event = "User InGitRepo", config = function() require("config.fugitive") end, }, { "NeogitOrg/neogit", dependencies = { "nvim-lua/plenary.nvim", }, event = "User InGitRepo", }, { "rbong/vim-flog", cmd = { "Flog" } }, { "akinsho/git-conflict.nvim", version = "*", event = "VeryLazy", config = function() require("config.git-conflict") end, }, { "ruifm/gitlinker.nvim", event = "User InGitRepo", config = function() require("config.git-linker") end, }, { "lewis6991/gitsigns.nvim", config = function() require("config.gitsigns") end, event = "BufRead", }, { "sindrets/diffview.nvim", cmd = { "DiffViewOpen" }, }, { "kevinhwang91/nvim-bqf", ft = "qf", config = function() require("config.bqf") end, }, { "vim-pandoc/vim-markdownfootnotes", ft = { "markdown" } }, { "godlygeek/tabular", ft = { "markdown" } }, { "chrisbra/unicode.vim", keys = { "ga" }, cmd = { "UnicodeSearch" } }, { "wellle/targets.vim", event = "VeryLazy" }, { "machakann/vim-sandwich", event = "VeryLazy" }, { "tmux-plugins/vim-tmux", enabled = function() return utils.executable("tmux") end, ft = { "tmux" }, }, { "andymass/vim-matchup", event = "BufRead" }, { "tpope/vim-scriptease", cmd = { "Scriptnames", "Messages", "Verbose" } }, { "skywind3000/asyncrun.vim", lazy = true, cmd = { "AsyncRun" } }, { "cespare/vim-toml", ft = { "toml" }, branch = "main" }, { "sakhnik/nvim-gdb", enabled = function() return vim.g.is_win or vim.g.is_linux end, build = { "bash install.sh" }, lazy = true, }, { "tpope/vim-obsession", cmd = "Obsession" }, { "ojroques/vim-oscyank", enabled = function() return vim.g.is_linux end, cmd = { "OSCYank", "OSCYankReg" }, }, { "folke/which-key.nvim", event = "VeryLazy", config = function() require("config.which-key") end, }, { "folke/snacks.nvim", priority = 1000, lazy = false, opts = { input = { enabled = true, win = { relative = "cursor", backdrop = true, }, }, picker = { enabled = true }, image = { enabled = false }, }, }, { "jdhao/whitespace.nvim", event = "VeryLazy" }, { "nvim-tree/nvim-tree.lua", keys = { "s" }, config = function() require("config.nvim-tree") end, }, { "j-hui/fidget.nvim", event = "BufRead", config = function() require("config.fidget-nvim") end, }, { "folke/lazydev.nvim", ft = "lua", opts = { library = { { path = "${3rd}/luv/library", words = { "vim%.uv" } }, }, }, }, { "smjonas/live-command.nvim", event = "VeryLazy", config = function() require("config.live-command") end, }, { "kosayoda/nvim-lightbulb", config = function() require("config.lightbulb") end, event = "LspAttach", }, { "Bekaboo/dropbar.nvim", event = "VeryLazy", }, { "catgoose/nvim-colorizer.lua", event = "BufReadPre", opts = {}, }, } ---@diagnostic disable-next-line: missing-fields require("lazy").setup { spec = plugin_specs, ui = { border = "rounded", title = "Plugin Manager", title_pos = "center", }, rocks = { enabled = false, hererocks = false, }, }