config.nvim/lua/pluginList.lua
juan 9087e563d8
Feat | Plugin update, speed optimizations.
coq is bloated and does not play well with other plugins, nvim-cmp
is a better solution despite it is slightly slower.

I optimized the startup sequence, start time: 80ms -> 120ms -> 65ms

Next up, I will try to work on my zk workflow.
2022-08-07 21:00:11 +08:00

205 lines
6.5 KiB
Lua

-- Only required if you have packer configured as `opt`
vim.cmd [[packadd packer.nvim]]
require('packer').init {
display = {
open_fn = function()
return require("packer.util").float {border = "single"}
end,
prompt_border = "single"
},
git = {
clone_timeout = 600 -- Timeout, in seconds, for git clones
},
auto_clean = true,
compile_on_sync = true,
auto_reload_compiled = true
}
return require('packer').startup(function(use)
use {'wbthomason/packer.nvim'}
-- core UI
use {
'b4skyx/serenade',
config = function()
vim.g.serenade_enable_italic = 1
vim.g.serenade_sign_column_background = 'none'
vim.g.serenade_better_performance = 1
vim.cmd("colorscheme serenade")
end
}
use {'kyazdani42/nvim-web-devicons'}
use {
'nvim-lualine/lualine.nvim',
after = {'serenade', 'nvim-web-devicons'},
config = function() require "plugins.statusline" end
}
use {
'romgrk/barbar.nvim',
requires = {'kyazdani42/nvim-web-devicons'},
event = 'BufAdd',
after = {'nvim-web-devicons', 'serenade'},
config = function() require "plugins.barbar" end
}
-- lsp stuff
use {'neovim/nvim-lspconfig', event = "UIEnter"}
use {
'williamboman/nvim-lsp-installer',
config = function() require "plugins.lspinstall" end,
after = 'nvim-lspconfig'
}
use {
"ray-x/lsp_signature.nvim",
after = "nvim-lsp-installer",
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 {
event = "InsertEnter",
after = {'nvim-lsp-installer', 'nvim-treesitter', 'LuaSnip'},
"hrsh7th/nvim-cmp",
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'}, -- end
-- lsp
{'hrsh7th/cmp-nvim-lsp-document-symbol', after = 'nvim-cmp'},
{'hrsh7th/cmp-nvim-lsp', after = 'nvim-cmp'}, -- end
-- TS
{'ray-x/cmp-treesitter', after = 'nvim-cmp'}, -- end
-- Snip
{'saadparwaiz1/cmp_luasnip', after = {'nvim-cmp', 'LuaSnip'}}
}
}
-- formating and editing
use {
"windwp/nvim-autopairs",
after = 'nvim-cmp',
config = function() require("plugins.nvim-autopairs") end
}
use {"sbdchd/neoformat", cmd = "Neoformat"}
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 {
'kyazdani42/nvim-tree.lua',
cmd = 'NvimTreeToggle',
requires = 'kyazdani42/nvim-web-devicons',
config = function() require("plugins.nvim-tree") end
}
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',
requires = {{'nvim-lua/plenary.nvim'}},
config = function() require "plugins.telescope" end,
event = "UIEnter"
}
use {'preservim/tagbar', cmd = 'TagbarToggle'}
use {
'phaazon/hop.nvim',
event = "UIEnter",
as = 'hop',
config = function()
require'hop'.setup {keys = 'etovxqpdygfblzhckisuran'}
end
}
-- eye-candy
use {
"lukas-reineke/indent-blankline.nvim",
after = {"nvim-treesitter"},
config = function() require "plugins.indent-blankline" end
}
use {
'lewis6991/gitsigns.nvim',
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"}
use {
"mickael-menu/zk-nvim",
requires = {"nvim-telescope/telescope.nvim"},
after = {"telescope.nvim"},
ft = {'markdown'},
config = function() require "plugins.zk" end
}
-- fixes and misc. stuff
use {"antoinemadec/FixCursorHold.nvim", event = "UIEnter"}
end)
-- vim:set shiftwidth=4 tabstop=4: