406 lines
9.0 KiB
Lua
406 lines
9.0 KiB
Lua
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 = { "<space>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,
|
|
},
|
|
}
|