206 lines
5.8 KiB
Lua
206 lines
5.8 KiB
Lua
-- Make sure to install packer via the AUR
|
|
-- $ yay -S nvim-packer-git
|
|
local packer_status_ok, packer = pcall(require, "packer")
|
|
if not packer_status_ok then
|
|
return
|
|
end
|
|
|
|
vim.cmd [[packadd packer.nvim]]
|
|
|
|
packer.startup {
|
|
function(use)
|
|
-- git clone --depth 1 https://github.com/wbthomason/packer.nvim \
|
|
-- ~/.local/share/nvim/site/pack/packer/start/packer.nvim
|
|
-- Packer will try to delete itself otherwise
|
|
use 'wbthomason/packer.nvim'
|
|
|
|
--
|
|
-- General
|
|
--
|
|
|
|
-- General Lua functions
|
|
use { 'nvim-lua/plenary.nvim' }
|
|
use { 'nvim-lua/popup.nvim' }
|
|
|
|
-- General optimizations
|
|
use { 'lewis6991/impatient.nvim' }
|
|
use { 'nathom/filetype.nvim', config = function() vim.g.did_load_filetypes = 1 end }
|
|
|
|
-- General Assets/Resources
|
|
use { 'kyazdani42/nvim-web-devicons', config = function() require'configs.icons'.config() end }
|
|
|
|
--
|
|
-- Style
|
|
--
|
|
|
|
-- Colorscheme (See autocommands.lua)
|
|
use { 'lunarvim/darkplus.nvim', tag = 'neovim-0.7' }
|
|
--[[ use { '~/builds/darkplus.nvim' } ]]
|
|
|
|
-- Buffer Line
|
|
use { 'moll/vim-bbye' } -- Close buffers softly
|
|
use {
|
|
'akinsho/bufferline.nvim',
|
|
-- v3.* requires nvim v0.8+
|
|
tag = 'v2.*',
|
|
requires = {
|
|
{ 'kyazdani42/nvim-web-devicons' }
|
|
},
|
|
config = function() require'configs.bufferline'.config() end
|
|
}
|
|
|
|
-- Git (git-blame must be before lualine)
|
|
use { 'lewis6991/gitsigns.nvim', config = function() require'configs.gitsigns'.config() end }
|
|
use { 'f-person/git-blame.nvim', config = function() require'configs.git-blame'.config() end }
|
|
|
|
-- Status Line
|
|
use { 'nvim-lualine/lualine.nvim', config = function() require'configs.lualine'.config() end }
|
|
|
|
-- NvimTree
|
|
use {
|
|
'kyazdani42/nvim-tree.lua',
|
|
requires = {
|
|
{ 'kyazdani42/nvim-web-devicons' }
|
|
},
|
|
config = function() require'configs.nvim-tree'.config() end
|
|
}
|
|
|
|
|
|
-- Show indentation
|
|
use { 'lukas-reineke/indent-blankline.nvim', config = function() require'configs.indent-blankline'.config() end }
|
|
|
|
-- Telescope (find files, words, git commits, etc)
|
|
use { 'nvim-telescope/telescope.nvim', config = function() require'configs.telescope'.config() end }
|
|
-- use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
|
|
|
|
-- Sessions
|
|
use {
|
|
'Shatur/neovim-session-manager',
|
|
commit = '4005dac93f5cd1257792259ef4df6af0e3afc213',
|
|
config = function() require'configs.session-manager'.config() end
|
|
}
|
|
|
|
--
|
|
-- Treesitter
|
|
--
|
|
|
|
-- Treesitter
|
|
use {
|
|
'nvim-treesitter/nvim-treesitter',
|
|
commit = '4cccb6f494eb255b32a290d37c35ca12584c74d0',
|
|
run = ':TSUpdate',
|
|
config = function() require'configs.treesitter'.config() end,
|
|
-- the next commit, 42ab95d5e11f247c6f0c8f5181b02e816caa4a4f breaks the darkplus colorscheme (and nvim 0.7.2)
|
|
-- https://github.com/nvim-treesitter/nvim-treesitter/pull/3656
|
|
}
|
|
|
|
-- Auto-close tags
|
|
use { 'windwp/nvim-ts-autotag', after = 'nvim-treesitter' }
|
|
|
|
-- Context-based auto commenting
|
|
use { 'JoosepAlviste/nvim-ts-context-commentstring', after = 'nvim-treesitter' }
|
|
|
|
-- Show context
|
|
use { 'nvim-treesitter/nvim-treesitter-context', config = function() require'configs.treesitter-context'.config() end }
|
|
|
|
--
|
|
-- LSP
|
|
--
|
|
|
|
-- Cursorhold fix
|
|
use {
|
|
"antoinemadec/FixCursorHold.nvim",
|
|
config = function() vim.g.cursorhold_updatetime = 300 end,
|
|
}
|
|
|
|
-- Built-In LSP Config
|
|
use {
|
|
'neovim/nvim-lspconfig',
|
|
-- event = 'BufRead',
|
|
config = function() require'configs.lspconfig'.config() end
|
|
}
|
|
|
|
-- Formatting + Linting
|
|
use {
|
|
'jose-elias-alvarez/null-ls.nvim',
|
|
event = 'BufRead',
|
|
config = function() require'configs.null-ls'.config() end
|
|
}
|
|
|
|
-- TODO: LSP Enhancer
|
|
use {
|
|
'tami5/lspsaga.nvim',
|
|
config = function() require'configs.lspsaga'.config() end
|
|
}
|
|
|
|
-- TODO: Symbols Outline
|
|
-- use { 'simrat39'/symbols-outline.nvim', cmd = 'SymbolsOutline', setup = function ... }
|
|
|
|
--
|
|
-- Autocompletion
|
|
--
|
|
|
|
-- Autocompletion Engine
|
|
use {
|
|
'hrsh7th/nvim-cmp',
|
|
config = function() require'configs.cmp'.config() end
|
|
}
|
|
|
|
-- Snippet Engine (for nvim-cmp)
|
|
-- TODO: Add snippets? rafamadriz/friendly-snippets is too cow for me and has too many snippets.
|
|
-- I'd like to use my own collection exclusively (unless there is a better, less extensive collection)
|
|
use { 'L3MON4D3/LuaSnip' }
|
|
|
|
-- Autocompletion Sources
|
|
use { 'saadparwaiz1/cmp_luasnip', after = 'nvim-cmp', requires = { 'nvim-cmp' } }
|
|
use { 'hrsh7th/cmp-buffer', after = 'nvim-cmp', requires = { 'nvim-cmp' } }
|
|
use { 'hrsh7th/cmp-path', after = 'nvim-cmp', requires = { 'nvim-cmp' } }
|
|
use { 'hrsh7th/cmp-nvim-lsp', after = 'nvim-cmp', requires = { 'nvim-cmp' } }
|
|
|
|
--
|
|
-- Quality of Life
|
|
--
|
|
|
|
-- Dashboard
|
|
use {
|
|
'goolord/alpha-nvim',
|
|
requires = { 'kyazdani42/nvim-web-devicons' },
|
|
config = function() require'configs.alpha'.config() end
|
|
}
|
|
|
|
-- Autopairs
|
|
use { 'windwp/nvim-autopairs', config = function() require'configs.autopairs'.config() end }
|
|
|
|
-- Commenting
|
|
use {
|
|
'numToStr/Comment.nvim',
|
|
config = function() require'configs.comment'.config() end,
|
|
after = 'nvim-ts-context-commentstring'
|
|
}
|
|
|
|
-- Automatically colorize color strings (#f1b8f1)
|
|
use { 'norcalli/nvim-colorizer.lua', config = function() require'configs.colorizer'.config() end }
|
|
|
|
-- Remember your last place when opening a file
|
|
use { 'farmergreg/vim-lastplace' }
|
|
|
|
-- Import sorting for python (:Isort)
|
|
use { 'stsewd/isort.nvim', run = ':UpdateRemotePlugins' }
|
|
|
|
-- Formatting for python (:call Black())
|
|
use { 'averms/black-nvim', run = ':UpdateRemotePlugins' }
|
|
end,
|
|
config = {
|
|
display = {
|
|
open_fn = function()
|
|
return require'packer.util'.float { border = 'rounded' }
|
|
end
|
|
},
|
|
profile = {
|
|
enable = true,
|
|
threshold = 0.0001,
|
|
}
|
|
}
|
|
}
|
|
|