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 = { -- Language server configuration { 'neovim/nvim-lspconfig' }, { 'williamboman/mason.nvim', build = function() pcall(vim.cmd, 'MasonUpdate') end, }, { 'williamboman/mason-lspconfig.nvim' }, -- Autocompletion { 'hrsh7th/nvim-cmp' }, { 'hrsh7th/cmp-nvim-lsp' }, { 'hrsh7th/cmp-buffer' }, { 'hrsh7th/cmp-path' }, { 'hrsh7th/cmp-cmdline' }, -- -- For luasnip users { 'L3MON4D3/LuaSnip' }, { 'saadparwaiz1/cmp_luasnip' }, { "rafamadriz/friendly-snippets" }, -- Helper package for cmp { 'nvimtools/none-ls.nvim', config = function() require('null-ls').setup({ }) end, dependencies = { 'nvim-lua/plenary.nvim' }, }, { "simrat39/rust-tools.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 }, { 'echasnovski/mini.nvim', version = '*' }, -- 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 }, -- Colorscheme { "folke/tokyonight.nvim", lazy = false, priority = 1000, opts = {}, }, -- Autoclose parenthesis { 'm4xshen/autoclose.nvim' }, -- tree navigator { "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, } })