-- 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'}} -- 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)