-- loadplugins -- bootstrap packer local ensure_packer = function() local install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' if vim.fn.empty(vim.fn.glob(install_path)) > 0 then vim.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() -- load plugins with packer return require("packer").startup(function(use) -- package manager (first entry) use { 'wbthomason/packer.nvim' } -- indicate git diff status of line use { 'lewis6991/gitsigns.nvim' } -- show indentation lines (in empty lines too) use { 'lukas-reineke/indent-blankline.nvim' } -- improved java syntax highlighting use { 'uiiaoo/java-syntax.vim', ft = { 'java' } } -- custom statusline use { 'nvim-lualine/lualine.nvim', requires = { 'nvim-tree/nvim-web-devicons' } } -- show signature while typing use { 'ray-x/lsp_signature.nvim' } -- preview for markdown filetypes use { "iamcco/markdown-preview.nvim", ft = { 'markdown' }, run = "cd app && yarn install" } -- latex asynchronous pdf rendering use { 'donRaphaco/neotex', ft = { 'tex' } } -- nim language support use { 'zah/nim.vim', ft = { 'nim' } } -- automatic closing of brackets use { 'windwp/nvim-autopairs' } -- autocompletion and its sources use { 'hrsh7th/nvim-cmp', requires = { 'hrsh7th/cmp-buffer', -- standalone cmp sources 'hrsh7th/cmp-path', 'lukas-reineke/cmp-under-comparator', -- lsp cmp source 'neovim/nvim-lspconfig', 'hrsh7th/cmp-nvim-lsp', 'onsails/lspkind-nvim', -- luasnip cmp source 'l3mon4d3/luasnip', 'saadparwaiz1/cmp_luasnip', -- lang server management 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', 'jose-elias-alvarez/null-ls.nvim', 'LostNeophyte/null-ls-embedded', 'jay-babu/mason-null-ls.nvim', -- dependencies 'nvim-lua/plenary.nvim', } } -- fix for cursorhold function use { 'antoinemadec/fixcursorhold.nvim' } -- showing color of hex values, etc use { 'norcalli/nvim-colorizer.lua' } -- show tags use { "SmiteshP/nvim-navbuddy", requires = { "neovim/nvim-lspconfig", "SmiteshP/nvim-navic", "MunifTanjim/nui.nvim", } } -- fileexplorer on the side use { "nvim-tree/nvim-tree.lua", requires = { "nvim-tree/nvim-web-devicons", } } -- better language highlighting by improved parsing use { 'nvim-treesitter/nvim-treesitter' } -- automatically close html-tags use { 'windwp/nvim-ts-autotag', requires = { 'nvim-treesitter/nvim-treesitter' } } -- folding improvements use { 'kevinhwang91/nvim-ufo', requires = 'kevinhwang91/promise-async' } -- colorful brackets use { 'luochen1990/rainbow' } -- fuzzy finder use { 'nvim-telescope/telescope.nvim', tag = '0.1.2', requires = { 'nvim-lua/plenary.nvim' } } -- clean up white spaces and empty lines before writing use { "mcauley-penney/tidy.nvim" } -- todo symbols and highlighting use { 'folke/todo-comments.nvim', requires = { 'nvim-lua/plenary.nvim' } } -- git wrapper use { 'tpope/vim-fugitive' } -- golang language support use { 'fatih/vim-go', ft = { 'go' } } -- markdown language support use { 'preservim/vim-markdown', ft = { 'md' }, requires = { 'godlygeek/tabular' } } -- bulk renamer use { 'qpkorr/vim-renamer' } -- additional quote/parantheses funtions use { 'tpope/vim-surround' } -- colorscheme use { 'tiyn/vim-tccs' } -- package manager sync (last entry) if packer_bootstrap then require('packer').sync() end end)