nviiim/lua/sherlock5512/plugins.lua
Robert Morrison 10ffa92ad6
! NASTY COMMIT !
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)
2023-06-13 04:31:26 +01:00

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)