config.nvim/lua/plugins.lua
2023-02-10 15:27:48 +08:00

181 lines
4.9 KiB
Lua

return require('packer').startup(function(use)
use { 'wbthomason/packer.nvim' }
-- core UI
use({
'ellisonleao/gruvbox.nvim',
config = function()
vim.cmd('colorscheme gruvbox')
end
})
use { 'kyazdani42/nvim-web-devicons' }
use {
'nvim-lualine/lualine.nvim',
after = { 'nvim-web-devicons' },
config = function() require 'plugins.statusline' end
}
-- use {
-- 'romgrk/barbar.nvim',
-- requires = {'kyazdani42/nvim-web-devicons'},
-- event = 'BufAdd',
-- after = {'nvim-web-devicons'},
-- config = function() require 'plugins.barbar' end
-- }
-- lsp stuff
use {
'neovim/nvim-lspconfig',
after = "mason-lspconfig.nvim",
config = function() require 'plugins.lsp' end
}
use { 'williamboman/mason-lspconfig.nvim', after = 'mason.nvim' }
use { 'hrsh7th/cmp-nvim-lsp', after = 'nvim-lspconfig' }
use {
'ray-x/lsp_signature.nvim',
after = 'nvim-lspconfig',
config = function() require 'plugins.lsp-signature' end
}
-- tree sitter
use {
'nvim-treesitter/nvim-treesitter',
event = 'UIEnter',
config = function() require 'plugins.treesitter' end,
run = ':TSUpdate'
}
-- completer
use { 'L3MON4D3/LuaSnip', event = 'UIEnter' }
use {
'hrsh7th/nvim-cmp',
event = 'InsertEnter',
after = { 'LuaSnip', 'cmp-nvim-lsp', 'nvim-treesitter' },
config = function() require 'plugins.cmp' end,
requires = {
-- local
{ 'hrsh7th/cmp-cmdline', after = 'nvim-cmp' },
{ 'hrsh7th/cmp-buffer', after = 'nvim-cmp' },
{ 'hrsh7th/cmp-path', after = 'nvim-cmp' }, {
'petertriho/cmp-git',
after = 'nvim-cmp',
config = function() require("cmp_git").setup() end
}, { 'delphinus/cmp-ctags', after = 'nvim-cmp' }, -- end
-- lsp
{ 'hrsh7th/cmp-nvim-lsp-document-symbol', after = 'nvim-cmp' }, -- TS
{ 'ray-x/cmp-treesitter', after = 'nvim-cmp' }, -- end
-- Snip
{ 'saadparwaiz1/cmp_luasnip', after = { 'nvim-cmp', 'LuaSnip' } }
}
}
-- formating and editing
use { "williamboman/mason.nvim", event = 'BufEnter'}
use {
'windwp/nvim-autopairs',
after = 'nvim-cmp',
config = function() require('plugins.nvim-autopairs') end
}
use {
"jose-elias-alvarez/null-ls.nvim",
config = function()
require('plugins.null-ls')
end,
requires = { "nvim-lua/plenary.nvim" },
event = "CmdlineEnter"
}
use {
'mattn/emmet-vim',
ft = { 'html', 'htmldjango', 'css', 'markdown' },
setup = function() require 'plugins.emmet' end
}
use { 'machakann/vim-sandwich', event = 'UIEnter' }
use {
'numToStr/Comment.nvim',
event = 'UIEnter',
config = function() require('Comment').setup() end
}
-- navigation
use {
'andymass/vim-matchup',
after = 'nvim-treesitter',
config = function() require 'plugins.matchup' end
}
use {
'abecodes/tabout.nvim',
config = function() require('tabout').setup {} end,
after = { 'nvim-treesitter', 'nvim-autopairs', 'nvim-cmp' } -- if a completion plugin is using tabs load it before
}
use {
'nvim-telescope/telescope.nvim',
event = 'UIEnter',
requires = { 'nvim-lua/plenary.nvim' },
config = function() require 'plugins.telescope' end
}
use { 'preservim/tagbar', cmd = 'TagbarToggle' }
use {
'phaazon/hop.nvim',
event = 'UIEnter',
as = 'hop',
config = function()
require 'hop'.setup { keys = 'etovxqpdygfblzhckisuran' }
end
}
-- eye-candy
use {
'eandrju/cellular-automaton.nvim',
cmd = "CellularAutomaton"
}
use {
'lewis6991/gitsigns.nvim',
event = 'UIEnter',
requires = { 'nvim-lua/plenary.nvim' },
config = function() require 'plugins.gitsigns' end
}
use {
'p00f/nvim-ts-rainbow',
after = 'nvim-treesitter',
config = function() require 'plugins.nvim-ts-rainbow' end
}
use {
'nvim-treesitter/nvim-treesitter-context',
after = 'nvim-treesitter',
config = function()
require 'treesitter-context'.setup {
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.
patterns = { -- Match patterns for TS nodes. These get wrapped to match at word boundaries.
-- For all filetypes
-- Note that setting an entry here replaces all other patterns for this entry.
-- By setting the 'default' entry below, you can control which nodes you want to
-- appear in the context window.
default = {
'class', 'function', 'method', 'for', -- These won't appear in the context
'while', 'if', 'switch', 'case'
}
}
}
end
}
use {
'winston0410/range-highlight.nvim',
event = 'CmdlineEnter',
config = function() require('range-highlight').setup {} end,
requires = 'winston0410/cmd-parser.nvim'
}
use {
'norcalli/nvim-colorizer.lua',
event = 'BufEnter',
config = function() require 'plugins.nvim-colorizer' end
}
-- integrations
use { 'tpope/vim-fugitive', cmd = 'G' }
-- fixes and misc. stuff
use { 'antoinemadec/FixCursorHold.nvim', event = 'UIEnter' }
end)
-- vim:set shiftwidth=4 tabstop=4: