nvimconfig/lua/sherlock5512/plugins.lua
Robert Morrison 018c3ed289
Add Which-Key
Bad brain no memory. Document Keybinds I must
2022-07-25 20:35:49 +01:00

128 lines
3.5 KiB
Lua

-- 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"
use "folke/which-key.nvim"
-------------------------
-- 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)