.s/.config/nvim/lua/plugins/init.lua
2024-08-26 19:34:49 -07:00

165 lines
3.4 KiB
Lua

local plugins = {
{ lazy = true, "nvim-lua/plenary.nvim" },
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
-- file tree
{
"nvim-tree/nvim-tree.lua",
cmd = { "NvimTreeToggle", "NvimTreeFocus" },
config = function()
require("nvim-tree").setup()
end,
},
-- icons, for UI related plugins
{
"nvim-tree/nvim-web-devicons",
config = function()
require("nvim-web-devicons").setup()
end,
},
-- syntax highlighting
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require "plugins.configs.treesitter"
end,
},
-- buffer + tab line
{
"akinsho/bufferline.nvim",
event = "BufReadPre",
config = function()
require "plugins.configs.bufferline"
end,
},
-- statusline
{
"echasnovski/mini.statusline",
config = function()
require("mini.statusline").setup { set_vim_settings = false }
end,
},
-- we use cmp plugin only when in insert mode
-- so lets lazyload it at InsertEnter event, to know all the events check h-events
-- completion , now all of these plugins are dependent on cmp, we load them after cmp
{
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
-- cmp sources
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-nvim-lsp",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua",
-- snippets
--list of default snippets
"rafamadriz/friendly-snippets",
-- snippets engine
{
"L3MON4D3/LuaSnip",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
-- autopairs , autocompletes ()[] etc
{
"windwp/nvim-autopairs",
config = function()
require("nvim-autopairs").setup()
-- cmp integration
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
local cmp = require "cmp"
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
},
},
config = function()
require "plugins.configs.cmp"
end,
},
{
"williamboman/mason.nvim",
build = ":MasonUpdate",
cmd = { "Mason", "MasonInstall" },
config = function()
require("mason").setup()
end,
},
-- lsp
{
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
config = function()
require "plugins.configs.lspconfig"
end,
},
-- formatting , linting
{
"stevearc/conform.nvim",
lazy = true,
config = function()
require "plugins.configs.conform"
end,
},
-- indent lines
{
"lukas-reineke/indent-blankline.nvim",
event = { "BufReadPre", "BufNewFile" },
config = function()
require("ibl").setup()
end,
},
-- files finder etc
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
config = function()
require "plugins.configs.telescope"
end,
},
-- git status on signcolumn etc
{
"lewis6991/gitsigns.nvim",
event = { "BufReadPre", "BufNewFile" },
config = function()
require("gitsigns").setup()
end,
},
-- comment plugin
{
"numToStr/Comment.nvim",
lazy = true,
config = function()
require("Comment").setup()
end,
},
-- fwatch
{
"rktjmp/fwatch.nvim",
lazy = true,
},
}
require("lazy").setup(plugins, require "plugins.configs.lazy")