This commit is here just to shore everything up before embarking on yet another full refresh of the config. This is likely going to be the last commit and it is very important if you are using this repo to check for a hopefully newly created "NIVM" repo. (Note: this may take time, I will archive this repo when I have a working NIVM)
151 lines
4.4 KiB
Lua
151 lines
4.4 KiB
Lua
-- Sherlock5512's plugin list
|
|
-- This is my opinionated choice of plugins
|
|
|
|
-- where are we going to install packer
|
|
local packer_install_path = vim.fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim'
|
|
local log = require('tjdevries/log')
|
|
|
|
-- Is packer installed?
|
|
if not vim.loop.fs_stat(packer_install_path) then
|
|
log.warn("Packer is not installed. Bootstrapping...")
|
|
if (vim.fn.executable("git") == 1 ) then -- only run if we have git
|
|
vim.fn.system({
|
|
'git',
|
|
'clone',
|
|
'--depth', '1',
|
|
'https://github.com/wbthomason/packer.nvim',
|
|
packer_install_path})
|
|
vim.cmd 'packadd packer.nvim'
|
|
Packer_bootstapping=true;
|
|
log.warn("Packer is now installed.\nPlease ignore any packer errors while plugins are installed")
|
|
else
|
|
log.error("Cannot find git, Packer installation failed")
|
|
end
|
|
end
|
|
|
|
return require('packer').startup(function(use)
|
|
use 'wbthomason/packer.nvim' -- Allow packer to update itself
|
|
|
|
-- Looks
|
|
use { 'ellisonleao/gruvbox.nvim' } -- Apparently has better tresitter support.
|
|
use { 'nvim-lualine/lualine.nvim', -- Awesome status line
|
|
requires = {{'nvim-tree/nvim-web-devicons'}, -- With icons
|
|
{'sherlock5512/lualine-spell-status'}} -- And spell status
|
|
}
|
|
use {'akinsho/bufferline.nvim',
|
|
tag = "v3.*",
|
|
requires = 'nvim-tree/nvim-web-devicons'}
|
|
|
|
-- Features
|
|
use { 'nvim-neo-tree/neo-tree.nvim', -- file tree
|
|
branch = 'v2.x',
|
|
requires = {'nvim-lua/plenary.nvim',
|
|
'nvim-tree/nvim-web-devicons',
|
|
'munifTanjim/nui.nvim',
|
|
}
|
|
}
|
|
use { 'vimwiki/vimwiki' } -- Personal Wiki
|
|
use { 'folke/which-key.nvim' } -- Keybinds with documentation
|
|
use { 'rcarriga/nvim-notify' } -- Neater notifications
|
|
|
|
-- Commenting
|
|
use { 'scrooloose/nerdcommenter' } -- commenting done good
|
|
|
|
-- Completion
|
|
use { 'hrsh7th/nvim-cmp' } -- Completion engine
|
|
use { 'hrsh7th/cmp-buffer' } -- Completion source (Current buffer text)
|
|
use { 'hrsh7th/cmp-path' } -- Completion source (Paths)
|
|
use { 'hrsh7th/cmp-nvim-lsp' } -- Completion source (Language server)
|
|
use { 'hrsh7th/cmp-emoji' } -- Completion source (Emojis)
|
|
use { 'hrsh7th/cmp-cmdline' } -- Completion source (Commandline)
|
|
use { 'saadparwaiz1/cmp_luasnip' } --Completion source (snippets)
|
|
use { 'onsails/lspkind.nvim' } -- Completion formatter
|
|
|
|
-- Snippets
|
|
use { 'L3MON4D3/LuaSnip', -- Snippet engine
|
|
requires = 'rafamadriz/friendly-snippets' } -- Snippet library
|
|
|
|
-- Mason
|
|
use { 'williamboman/mason.nvim' } -- Manage: LSPs,DAPs,Linters,formatters
|
|
use { 'williamboman/mason-lspconfig.nvim',
|
|
requires = {
|
|
'neovim/nvim-lspconfig',
|
|
'williamboman/mason.nvim'}
|
|
}
|
|
use { 'jay-babu/mason-null-ls.nvim',
|
|
requires = {
|
|
'jose-elias-alvarez/null-ls.nvim',
|
|
'williamboman/mason.nvim'}
|
|
}
|
|
|
|
-- LSP tools
|
|
use {'glepnir/lspsaga.nvim', -- Interact with LSP a little easier
|
|
branch='main'
|
|
}
|
|
use {'j-hui/fidget.nvim'} -- Show LSP status
|
|
use {'folke/trouble.nvim', -- Show diagnostics in a window
|
|
requires = {'nvim-tree/nvim-web-devicons'}}
|
|
use {'folke/todo-comments.nvim',
|
|
requires = {'nvim-lua/plenary.nvim'}}
|
|
|
|
-- DAP
|
|
use {'jay-babu/mason-nvim-dap.nvim',
|
|
requires = {
|
|
'williamboman/mason.nvim',
|
|
'mfussenegger/nvim-dap'
|
|
}
|
|
}
|
|
use { "rcarriga/nvim-dap-ui",
|
|
requires = {"mfussenegger/nvim-dap"}
|
|
}
|
|
|
|
-- Tresitter
|
|
use {'nvim-treesitter/nvim-treesitter',
|
|
run = ':TSUpdate'
|
|
}
|
|
use {'HiPhish/nvim-ts-rainbow2',
|
|
requires = 'nvim-treesitter/nvim-treesitter'}
|
|
use {'nvim-treesitter/nvim-treesitter-textobjects',
|
|
requires = 'nvim-treesitter/nvim-treesitter'}
|
|
use {'nvim-treesitter/playground',
|
|
requires = 'nvim-treesitter/nvim-treesitter'}
|
|
|
|
-- Focus Aids
|
|
use {'folke/zen-mode.nvim'}
|
|
use {'folke/twilight.nvim'}
|
|
|
|
-- Formatting
|
|
use {'mcauley-penney/tidy.nvim', -- simple plugin to remove trailing whitespace etc..
|
|
config = function()
|
|
require("tidy").setup()
|
|
end
|
|
}
|
|
use {'mhartington/formatter.nvim'}
|
|
|
|
-- Telescope
|
|
use {'nvim-telescope/telescope.nvim',
|
|
requires = {
|
|
'nvim-lua/plenary.nvim',
|
|
{'nvim-tree/nvim-web-devicons', opt = true},
|
|
{'nvim-treesitter/nvim-treesitter', opt = true}
|
|
}
|
|
}
|
|
use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make'}
|
|
|
|
-- Git integreations
|
|
use {'lewis6991/gitsigns.nvim',
|
|
config = function ()
|
|
require('gitsigns').setup()
|
|
end
|
|
}
|
|
|
|
-- Language / Project specific
|
|
use {'folke/neodev.nvim'}
|
|
|
|
if Packer_bootstapping then
|
|
require('packer').sync() -- install plugins on first run
|
|
require('packer').compile() -- Compile packer loader.
|
|
log.warn("Plugins installed, Please restart neovim!")
|
|
end
|
|
end)
|