local M = {} function M.setup() local ensure_packer = function() local fn = vim.fn local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' if fn.empty(fn.glob(install_path)) > 0 then fn.system({ 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }) vim.cmd [[packadd packer.nvim]] return true end return false end local packer_bootstrap = ensure_packer() require('packer').startup(function(use, use_rocks) use 'wbthomason/packer.nvim' use { 'neovim/nvim-lspconfig', config = function() require("configs.lsp").setup() end } use { 'hrsh7th/nvim-cmp', requires = { 'neovim/nvim-lspconfig' }, config = require("configs.nvim-cmp").setup } use { 'hrsh7th/cmp-nvim-lsp', requires = { 'hrsh7th/nvim-cmp' } } use { 'hrsh7th/cmp-buffer', requires = { 'hrsh7th/nvim-cmp' } } use { 'hrsh7th/cmp-path', requires = { 'hrsh7th/nvim-cmp' } } use { 'hrsh7th/cmp-nvim-lua', requires = { 'hrsh7th/nvim-cmp' } } use 'hrsh7th/vim-vsnip' use 'hrsh7th/cmp-nvim-lsp-signature-help' use { 'hrsh7th/cmp-vsnip', requires = { 'hrsh7th/nvim-cmp', 'hrsh7th/vim-vsnip' } } use { 'onsails/lspkind.nvim' } use 'ray-x/lsp_signature.nvim' use { 'RishabhRD/nvim-lsputils', requires = { 'RishabhRD/popfix' } } -- use { 'weilbith/nvim-code-action-menu', cmd = 'CodeActionMenu' } -- use { 'simrat39/symbols-outline.nvim', cmd = 'SymbolsOutline' } use { 'stevearc/dressing.nvim' } use { 'jose-elias-alvarez/null-ls.nvim', requires = { "nvim-lua/plenary.nvim" } } use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', config = require("configs.treesitter").setup, } use 'nvim-treesitter/playground' use 'David-Kunz/treesitter-unit' use({ "yioneko/nvim-yati", requires = "nvim-treesitter/nvim-treesitter" }) use { 'nvim-telescope/telescope.nvim', requires = { 'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim' }, config = require("configs.telescope").setup, } use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } use { 'morhetz/gruvbox' } use { 'chrisbra/Colorizer', cmd = 'ColorToggle', keys = { 'n', 'c ColorToggle' } } use { 'kdheepak/lazygit.nvim', keys = { 'n', 'g LazyGit' }, cmd = 'LazyGit' } use { 'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' }, config = function() require 'gitsigns'.setup({}) end } use { 'hoob3rt/lualine.nvim', requires = { 'kyazdani42/nvim-web-devicons', opt = true }, config = require("configs.lualine").setup } use { 'AndrewRadev/linediff.vim', cmd = 'LineDiffAdd' } use 'lukas-reineke/indent-blankline.nvim' use { 'b3nj5m1n/kommentary', config = function() require('kommentary.config').configure_language("php", { prefer_single_line_comments = true, }) end } use 'editorconfig/editorconfig-vim' use { 'kyazdani42/nvim-tree.lua', config = require("configs.nvimtree"), disable = true, } use { "nvim-neo-tree/neo-tree.nvim", branch = "v2.x", requires = { "nvim-lua/plenary.nvim", "kyazdani42/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", }, config = require("configs.neotree").setup, } use { 'vim-vdebug/vdebug' } use { 'dyng/ctrlsf.vim', cmd = 'CtrlSF' } use { 'folke/lua-dev.nvim' } use { 'rafcamlet/nvim-luapad' } use { 'AndrewRadev/tagalong.vim' } use { 'andymass/vim-matchup' } use { 'fpob/nette.vim', ft = 'nette' } use { 'folke/trouble.nvim', requires = "kyazdani42/nvim-web-devicons", cmd = 'TroubleToggle', keys = { 'n', 't TroubleToggle' }, config = function() require('trouble').setup() end } use { 'ziglang/zig.vim', ft = 'zig' } use_rocks { 'inspect' } if packer_bootstrap then require('packer').sync() end end) end return M