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", "--single-branch", "https://github.com/folke/lazy.nvim.git", lazypath, }) end vim.opt.runtimepath:prepend(lazypath) local plugins = { { 'mrjones2014/legendary.nvim', config = function() require('setup/my_legendary') require('legendary').keymaps( { { 'i', function() require("lazy").home() end, description = 'Start lazy home' } } ) end, dependencies = { 'stevearc/dressing.nvim', 'nvim-telescope/telescope.nvim', }, keys = { 'p', 'i' } }, { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', config = function() require('setup/treesitter') end }, { 'p00f/nvim-ts-rainbow', dependencies = 'nvim-treesitter/nvim-treesitter', }, { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'kyazdani42/nvim-web-devicons', { 'nvim-telescope/telescope-fzf-native.nvim', build = { 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -G Ninja', -- On windows add -DCMAKE_C_FLAGS="-target x86_64-w64-mingw32" 'cmake --build build --config Release', 'cmake --install build --prefix build' }, config = function() require('telescope').load_extension('fzf') end }, }, config = function() require('setup/telescope') end }, { 'ahmedkhalf/project.nvim', config = function() require('setup/project') end, }, { 'eddyekofo94/gruvbox-flat.nvim', disable = false, config = function() require('setup/my_gruvbox_flat') end }, { 'lukas-reineke/indent-blankline.nvim', dependencies = { 'nvim-treesitter/nvim-treesitter', }, config = function() require('setup/indent_blankline') end, }, { 'lewis6991/gitsigns.nvim', config = function() require('setup/gitsigns') end, }, { 'numToStr/Comment.nvim', config = function() require('setup/comment') end, }, { 'hoob3rt/lualine.nvim', dependencies = { 'kyazdani42/nvim-web-devicons' }, config = function() require('setup/lualine') end, }, { 'hrsh7th/nvim-cmp', dependencies = { { 'onsails/lspkind-nvim' }, { 'hrsh7th/cmp-buffer' }, { 'hrsh7th/cmp-nvim-lsp' }, { 'L3MON4D3/LuaSnip', config = function() require('setup/luasnip') end, dependencies = { 'rafamadriz/friendly-snippets' } }, { 'saadparwaiz1/cmp_luasnip' }, { 'hrsh7th/cmp-nvim-lua' }, { 'octaltree/cmp-look' }, { 'hrsh7th/cmp-path' }, { 'hrsh7th/cmp-calc' }, { 'f3fora/cmp-spell' }, { 'hrsh7th/cmp-emoji' }, { 'hrsh7th/cmp-cmdline' }, { 'dmitmel/cmp-cmdline-history' }, { 'ray-x/cmp-treesitter' }, { 'hrsh7th/cmp-nvim-lsp-signature-help' }, { 'p00f/clangd_extensions.nvim' }, { 'windwp/nvim-autopairs', config = function() require('setup/nvim-autopairs') end }, }, config = function() require('setup/my_cmp') end, event = { 'InsertEnter', 'CmdLineEnter' }, }, { 'neovim/nvim-lspconfig', dependencies = { 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', 'p00f/clangd_extensions.nvim', 'jose-elias-alvarez/null-ls.nvim', 'ray-x/lsp_signature.nvim', }, config = function() require('setup/my_lspconfig') end, event = { "InsertEnter", "CursorMoved" }, }, { 'akinsho/toggleterm.nvim', config = function() require('setup/toggleterm') end, cmd = 'ToggleTerm', keys = 'g' }, { 'gbprod/yanky.nvim', config = function() require('setup/yanky') end, keys = { { '' }, { '' } }, dependencies = { 'nvim-telescope/telescope.nvim' } }, { 'stevearc/aerial.nvim', dependencies = { 'nvim-telescope/telescope.nvim' }, config = function() require('setup/aerial') end, cmd = 'AerialToggle', keys = { { 's' } } }, { 'ggandor/leap.nvim', dependencies = { 'tpope/vim-repeat' }, config = function() require('setup/my_leap') end }, { 'mfussenegger/nvim-dap', dependencies = { 'mfussenegger/nvim-dap-python', 'theHamsta/nvim-dap-virtual-text', { 'nvim-telescope/telescope-dap.nvim', dependencies = 'telescope.nvim', }, 'rcarriga/nvim-dap-ui', 'rcarriga/cmp-dap', }, keys = { { '' }, { '' }, { '' }, { '' }, { '' }, { '' }, { '' }, { '' } }, config = function() require('setup/my_dap') end, }, { 'sindrets/diffview.nvim', dependencies = 'nvim-lua/plenary.nvim', config = function() require('setup/my_diffview') end, cmd = 'DiffviewOpen', }, { 'stevearc/overseer.nvim', config = function() require('setup/my_overseer') end, keys = { { '' } }, } } local opts = {} require("lazy").setup(plugins, opts)