-- Plugin Config Using Packer.nvim -- Grab Packer. (This should be OS agnostic) -- But does require git to be installed TODO: add check for git -- by Iron-E and khuedoan on GitHub 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 Packer_bootstrap = fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) vim.cmd 'packadd packer.nvim' end return require('packer').startup(function(use) use 'wbthomason/packer.nvim' -- allow packer to update itself ------------------------- -- Appearance ------------------------- use 'morhetz/gruvbox' -- my favourite colourscheme use { 'nvim-lualine/lualine.nvim', -- nice status line requires = {'kyazdani42/nvim-web-devicons', opt = true} -- allow for nice icons } use 'sherlock5512/lualine-spell-status' -- my own lualine component use 'arkav/lualine-lsp-progress' -- LSP progress for lualine (CURRENTLY NOT SURE IF THIS EVEN WORKS) ------------------------- -- New Features ------------------------- use { 'ms-jpq/chadtree', -- equivalent to NERDTree but faster and better looking run = function() vim.cmd('CHADdeps') -- ensure updates have the correct dependencies end } use "vimwiki/vimwiki" ------------------------- -- Editing Enhancements ------------------------- ------------------------- -- EE - Commenting ------------------------- use 'scrooloose/nerdcommenter' ------------------------- -- EE - Completion ------------------------- use "hrsh7th/nvim-cmp" -- completion engine use "hrsh7th/cmp-buffer" -- completion source use "hrsh7th/cmp-path" -- completion source use "hrsh7th/cmp-nvim-lua" -- completion source use "hrsh7th/cmp-nvim-lsp" -- completion source use "tamago324/cmp-zsh" -- completion source use 'onsails/lspkind.nvim' -- completion list formatter ------------------------- -- EE - Snippets ------------------------- -- This is a complex block due to the load ordering use "saadparwaiz1/cmp_luasnip" -- completion source for snippets use {'L3MON4D3/LuaSnip', after = 'friendly-snippets', } use 'rafamadriz/friendly-snippets' -- snippet library ------------------------- -- EE - Linting & Debugging ------------------------- use 'williamboman/nvim-lsp-installer' -- Install available LSP servers use 'neovim/nvim-lspconfig' -- Easy config for LSP use {'glepnir/lspsaga.nvim', branch = "main", } ------------------------- -- EE - Syntax Highlighting ------------------------- use { 'nvim-treesitter/nvim-treesitter', -- treesitter for nicer highlights run = ':TSUpdate' } use 'p00f/nvim-ts-rainbow' use { 'lewis6991/spellsitter.nvim', -- fix spell config = function() require('spellsitter').setup() end, after = 'nvim-treesitter' } ------------------------- -- EE - Focus aids ------------------------- use 'folke/zen-mode.nvim' use 'folke/twilight.nvim' ------------------------- -- Telescope ------------------------- use { 'nvim-telescope/telescope.nvim', requires = { {'nvim-lua/plenary.nvim'}, {'kyazdani42/nvim-web-devicons', opt = true}, {'nvim-treesitter/nvim-treesitter', opt = true} } } use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } ------------------------ -- Git Integrations ------------------------ use { 'lewis6991/gitsigns.nvim', config = function() require('gitsigns').setup() end } if Packer_bootstrap then require('packer').sync() -- make packer do a full sync on first load end end)