153 lines
3.2 KiB
Lua
153 lines
3.2 KiB
Lua
|
|
-- Bootstrap lazy.nvim
|
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
|
if vim.v.shell_error ~= 0 then
|
|
vim.api.nvim_echo({
|
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
|
{ out, "WarningMsg" },
|
|
{ "\nPress any key to exit..." },
|
|
}, true, {})
|
|
vim.fn.getchar()
|
|
os.exit(1)
|
|
end
|
|
end
|
|
vim.opt.rtp:prepend(lazypath)
|
|
|
|
local plugins = {
|
|
|
|
-- Indent guides
|
|
{
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
main = "ibl",
|
|
opts = {},
|
|
},
|
|
|
|
-- Color highlighting
|
|
{ "catgoose/nvim-colorizer.lua"},
|
|
|
|
-- Undo tree viewer
|
|
{ "mbbill/undotree" },
|
|
|
|
-- Devicons
|
|
{ "nvim-tree/nvim-web-devicons", opts = {} },
|
|
|
|
-- Neo-tree file explorer
|
|
{
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
branch = "v3.x",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-tree/nvim-web-devicons",
|
|
"MunifTanjim/nui.nvim",
|
|
},
|
|
lazy = false,
|
|
opts = { },
|
|
},
|
|
|
|
|
|
-- Telescope fuzzy finder
|
|
{
|
|
'nvim-telescope/telescope.nvim', tag = '0.1.8',
|
|
dependencies = { 'nvim-lua/plenary.nvim' }
|
|
},
|
|
|
|
|
|
-- Treesitter
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
build = ":TSUpdate",
|
|
},
|
|
{ "nvim-treesitter/nvim-treesitter-textobjects" },
|
|
|
|
|
|
-- Autopairs
|
|
{
|
|
'windwp/nvim-autopairs',
|
|
event = "InsertEnter",
|
|
config = true
|
|
},
|
|
|
|
-- Commenting utility
|
|
{ "tpope/vim-commentary" },
|
|
|
|
-- Catppuccin theme
|
|
{ "catppuccin/nvim",
|
|
name = "catppuccin",
|
|
priority = 1000 },
|
|
|
|
-- Surround plugin
|
|
{ "tpope/vim-surround" },
|
|
|
|
-- Treesitter auto-closing tags
|
|
{ "windwp/nvim-ts-autotag" },
|
|
|
|
-- Signature marks
|
|
{ "kshenoy/vim-signature" },
|
|
|
|
-- Oil file explorer
|
|
{
|
|
'stevearc/oil.nvim',
|
|
opts = {},
|
|
dependencies = { { "echasnovski/mini.icons", opts = {} } },
|
|
lazy = false,
|
|
},
|
|
|
|
-- Rainbow delimiters
|
|
{ "HiPhish/rainbow-delimiters.nvim" },
|
|
|
|
|
|
-- Completion engine
|
|
{ "hrsh7th/nvim-cmp" },
|
|
{ "hrsh7th/cmp-buffer" },
|
|
{ "hrsh7th/cmp-path" },
|
|
{ "saadparwaiz1/cmp_luasnip" },
|
|
{ "hrsh7th/cmp-nvim-lsp" },
|
|
{ "hrsh7th/cmp-nvim-lua" },
|
|
|
|
|
|
-- Lualine
|
|
{ 'nvim-lualine/lualine.nvim',
|
|
dependencies = { 'nvim-tree/nvim-web-devicons' } },
|
|
|
|
-- File icons
|
|
{ "ryanoasis/vim-devicons" },
|
|
|
|
-- barbar
|
|
{
|
|
'romgrk/barbar.nvim',
|
|
dependencies = {
|
|
'nvim-tree/nvim-web-devicons'
|
|
},
|
|
init = function()
|
|
vim.g.barbar_auto_setup = false -- disable auto-setup
|
|
end,
|
|
opts = {},
|
|
},
|
|
-- highlight
|
|
{
|
|
'tzachar/local-highlight.nvim',
|
|
},
|
|
|
|
-- buffer vacuum
|
|
{
|
|
'ChuufMaster/buffer-vacuum',
|
|
opts = {
|
|
max_buffers = 2,
|
|
count_pinned_buffers = false,
|
|
enable_messages = false,
|
|
},
|
|
},
|
|
|
|
-- telescope pluggin
|
|
{'nvim-telescope/telescope-ui-select.nvim' },
|
|
|
|
|
|
}
|
|
|
|
local opts = {}
|
|
require('lazy').setup(plugins, opts)
|
|
|