local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' local plugins = { { 'VonHeikemen/lsp-zero.nvim', branch = 'v2.x', dependencies = { -- LSP Support { 'neovim/nvim-lspconfig' }, -- Required { -- Optional 'williamboman/mason.nvim', build = function() pcall(vim.cmd, 'MasonUpdate') end, }, { 'williamboman/mason-lspconfig.nvim' }, -- Optional -- Autocompletion { 'hrsh7th/nvim-cmp' }, -- Required { 'hrsh7th/cmp-nvim-lsp' }, -- Required { 'L3MON4D3/LuaSnip' }, -- Required { "rafamadriz/friendly-snippets" }, { 'hrsh7th/cmp-buffer' }, { 'hrsh7th/cmp-path' }, { 'hrsh7th/cmp-cmdline' }, { 'saadparwaiz1/cmp_luasnip' }, } }, { 'nvimtools/none-ls.nvim', config = function() require('null-ls').setup({ }) end, dependencies = { 'nvim-lua/plenary.nvim' }, }, { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", }, { "lervag/vimtex", lazy = false, -- we don't want to lazy load VimTeX -- tag = "v2.15", -- uncomment to pin to a specific release }, -- Minimal { 'nvim-telescope/telescope.nvim', tag = '0.1.5', dependencies = { { 'nvim-lua/plenary.nvim' } } }, { 'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }, { "nvim-telescope/telescope-live-grep-args.nvim" }, { "aaronhallaert/advanced-git-search.nvim", dependencies = { "nvim-telescope/telescope.nvim", "tpope/vim-fugitive", 'tpope/vim-rhubarb', }, }, 'nvim-telescope/telescope-ui-select.nvim', 'debugloop/telescope-undo.nvim', 'ThePrimeagen/harpoon', { 'mbbill/undotree', config = function() vim.keymap.set("n", "u", "Telescope undo", { desc = "Telescope Undo" }) end }, { 'tpope/vim-fugitive', config = function() vim.keymap.set("n", "gs", vim.cmd.Git, { desc = "Open Fugitive Panel" }) end }, { 'tpope/vim-repeat' }, { 'numToStr/Comment.nvim', config = function() require('Comment').setup() end }, { 'm4xshen/autoclose.nvim' }, -- { -- "windwp/nvim-autopairs", -- config = function() -- require("nvim-autopairs").setup() -- end -- }, -- { -- "kylechui/nvim-surround", -- version = "*", -- Use for stability; omit to use `main` branch for the latest features -- event = "VeryLazy", -- config = function() -- require("nvim-surround").setup({ -- }) -- end -- }, { "nvim-tree/nvim-tree.lua" }, { 'nvim-lualine/lualine.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, config = function() require('lualine').setup({ options = { theme = 'palenight' } }) end }, { 'bronson/vim-trailing-whitespace' }, { 'junegunn/fzf', build = ":call fzf#install()" }, { "AckslD/nvim-neoclip.lua", dependencies = { { 'nvim-telescope/telescope.nvim' }, }, }, 'jinh0/eyeliner.nvim', { "anuvyklack/windows.nvim", dependencies = { "anuvyklack/middleclass", "anuvyklack/animation.nvim" }, config = function() vim.o.winwidth = 10 vim.o.winminwidth = 10 vim.o.equalalways = false require('windows').setup() end }, { 'voldikss/vim-floaterm', }, { 'tummetott/unimpaired.nvim', config = function() require('unimpaired').setup() end }, 'airblade/vim-gitgutter', 'mg979/vim-visual-multi', { 'kevinhwang91/nvim-ufo', dependencies = 'kevinhwang91/promise-async' }, { 'folke/which-key.nvim', event = "VeryLazy", init = function() vim.o.timeout = true vim.o.timeoutlen = 500 end, opts = {} }, -- C/C++ debbuging { 'sakhnik/nvim-gdb', }, -- Compiler { -- This plugin "Zeioth/compiler.nvim", cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" }, dependencies = { "stevearc/overseer.nvim", "nvim-telescope/telescope.nvim" }, opts = {}, }, { -- The task runner we use "stevearc/overseer.nvim", commit = "6271cab7ccc4ca840faa93f54440ffae3a3918bd", cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" }, opts = { task_list = { direction = "bottom", min_height = 25, max_height = 25, default_detail = 1 }, }, }, } require('lazy').setup(plugins, { change_detection = { notify = false, } })