dotfiles/.config/nvim/lua/my/plugins.lua

160 lines
4.4 KiB
Lua

local install_path = vim.fn.stdpath('data') ..
'/site/pack/packer/start/packer.nvim'
local packer_bootstrap
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
packer_bootstrap = vim.fn.system({
'git',
'clone',
'https://github.com/wbthomason/packer.nvim',
install_path
})
vim.cmd [[packadd packer.nvim]]
end
require('packer').startup(function(use)
use { 'https://github.com/wbthomason/packer.nvim' }
-- settings
use { 'https://github.com/owozsh/amora' }
use { 'https://github.com/editorconfig/editorconfig-vim' }
use { 'https://github.com/antoinemadec/FixCursorHold.nvim' }
-- filetypes
use {
'https://github.com/nvim-treesitter/nvim-treesitter',
run = function()
require('nvim-treesitter.install').update({ with_sync = true })
end
}
use {
'https://github.com/nvim-orgmode/orgmode',
tag = '*',
requires = 'https://github.com/nvim-treesitter/nvim-treesitter'
}
use {
'https://github.com/JoosepAlviste/nvim-ts-context-commentstring',
requires = 'https://github.com/nvim-treesitter/nvim-treesitter'
}
-- completion
use {
'https://github.com/hrsh7th/nvim-cmp',
requires = {
'https://github.com/hrsh7th/cmp-nvim-lsp',
'https://github.com/hrsh7th/cmp-buffer',
'https://github.com/hrsh7th/cmp-path',
'https://github.com/hrsh7th/cmp-cmdline',
{
'https://github.com/saadparwaiz1/cmp_luasnip',
requires = 'https://github.com/L3MON4D3/LuaSnip'
},
'https://github.com/hrsh7th/cmp-nvim-lua',
'https://github.com/uga-rosa/cmp-dictionary',
}
}
-- lsp
use {
'https://github.com/neovim/nvim-lspconfig',
tag = '*',
requires = 'https://github.com/hrsh7th/cmp-nvim-lsp'
}
use {
'https://github.com/lukas-reineke/lsp-format.nvim',
tag = '*'
}
use { 'https://github.com/ray-x/lsp_signature.nvim' }
-- tools
use {
'https://github.com/folke/which-key.nvim',
config = function()
require('which-key').setup({})
end
}
use {
'https://github.com/nvim-telescope/telescope.nvim',
tag = '*',
requires = {
'https://github.com/nvim-lua/plenary.nvim',
'https://github.com/nvim-treesitter/nvim-treesitter',
},
}
use {
'https://github.com/kyazdani42/nvim-tree.lua',
tag = '*'
}
-- coding
use {
'https://github.com/numToStr/Comment.nvim',
tag = '*'
}
use {
'https://github.com/TimUntersberger/neogit',
requires = {
'https://github.com/nvim-lua/plenary.nvim',
'https://github.com/folke/which-key.nvim',
'https://github.com/sindrets/diffview.nvim'
},
}
use { 'https://github.com/gentoo/gentoo-syntax' }
use {
'https://github.com/windwp/nvim-autopairs',
config = function() require("nvim-autopairs").setup {} end
}
use { 'https://github.com/L3MON4D3/LuaSnip' }
use {
'https://github.com/tpope/vim-fugitive',
tag = '*'
}
use {
'https://github.com/lewis6991/gitsigns.nvim',
tag = '*'
}
use { 'https://github.com/ahmedkhalf/project.nvim' }
-- net
use { -- embed nvim in browsers
'https://github.com/glacambre/firenvim',
tag = '*',
run = function()
vim.fn['firenvim#install'](0)
end
}
-- ensure plugins are installed and compiled
if packer_bootstrap then
require('packer').sync()
elseif not io.open(vim.fn.stdpath('config') .. '/plugin') then
require('packer').install()
end
end)
-- source file, install and compile plugins when this file is written
vim.api.nvim_create_augroup('config_plugins', { clear = true })
vim.api.nvim_create_autocmd(
{ 'BufWritePost' },
{
group = 'config_plugins',
pattern = { vim.fn.stdpath('config') .. '/lua/my/plugins.lua' },
command = [[source <afile> | PackerInstall]]
}
)
vim.api.nvim_create_autocmd(
{ 'User' },
{
group = 'config_plugins',
pattern = 'PackerComplete',
command = [[PackerCompile]]
}
)
vim.api.nvim_create_autocmd(
{ 'User' },
{
group = 'config_plugins',
pattern = 'PackerCompileDone',
command = [[echo 'plugins compiled']]
}
)