Migrated from packer.nvim to lazy.nvim - it gives really fast loading times, easy lazy loading for any package and a snazzy package manager overview page (invoked through `:Lazy`) which, importantly, all do not rely on a compiled plugin list. In essence it feels like an easier to manage and robust packer replacement (even though packer is a really good manager as well) that is well worth to switch to. Migration was pretty painless as well. One thing I might do in the future is split up the plugin structure itself from a single plugin list (which invokes plugin settings files) to several files containing the plugins and their settings since it might give more structure.
165 lines
7.4 KiB
Lua
165 lines
7.4 KiB
Lua
local writing_ft = {"quarto", "pandoc", "markdown", "text", "tex"}
|
|
|
|
return {
|
|
-- vim plugs
|
|
-- essential
|
|
{'numToStr/Navigator.nvim', config = true}, -- allow seamless navigation between vim buffers and tmux/wezterm splits
|
|
{'jeffkreeftmeijer/vim-numbertoggle', event = "BufEnter"}, -- toggles numbers to absolute for all buffers but the current which is relative
|
|
{'ojroques/vim-oscyank', event = "VeryLazy"}, -- yank from *anywhere* (even ssh session) to clipboard, using :OSCYank
|
|
{'ggandor/lightspeed.nvim', event = "VeryLazy"}, -- jump between letters with improved fFtT quicksearch, mimics sneak
|
|
-- files
|
|
{'vifm/vifm.vim'}, -- integrate file manager
|
|
{
|
|
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
|
|
config = true,
|
|
event = "BufRead"
|
|
}, {
|
|
'norcalli/nvim-colorizer.lua', -- color hex, named colors in the correct preview scheme
|
|
config = true,
|
|
event = "VeryLazy"
|
|
}, {
|
|
'mhartington/formatter.nvim', -- auto formatting on save
|
|
config = function() require('plug._format') end,
|
|
event = "VeryLazy"
|
|
}, -- editing
|
|
{'kylechui/nvim-surround', version = '*', config = true, event = "VeryLazy"}, -- surround things with other things using ys/cs/ds
|
|
{
|
|
'monaqa/dial.nvim', -- extend the ^a / ^x possibilities to dates, hex, alphabets, markdown headers
|
|
event = "VeryLazy"
|
|
}, {
|
|
'tommcdo/vim-exchange', -- adds exchange operator with cx. common use: cxiw . on 2 words to switch
|
|
event = "VeryLazy"
|
|
}, {
|
|
'junegunn/vim-easy-align', -- Align tables and other alignable things
|
|
event = "VeryLazy"
|
|
}, -- colorschemes
|
|
{'norcalli/nvim-base16.lua'}, --
|
|
-- statusline
|
|
{
|
|
'nvim-lualine/lualine.nvim',
|
|
requires = {'kyazdani42/nvim-web-devicons', opt = true},
|
|
config = function() require('plug._lualine') end
|
|
}, -- writing
|
|
{'vim-pandoc/vim-pandoc-syntax', ft = writing_ft},
|
|
{'vim-pandoc/vim-pandoc', ft = writing_ft},
|
|
{'vim-pandoc/vim-criticmarkup', ft = writing_ft}, {
|
|
"quarto-dev/quarto-vim",
|
|
dependencies = {"vim-pandoc/vim-pandoc-syntax"},
|
|
ft = writing_ft
|
|
}, {'micarmst/vim-spellsync', event = "VeryLazy"}, -- personal dict improvements for git sync
|
|
{'folke/zen-mode.nvim', config = true, event = "VeryLazy"}, -- provide distraction free writing
|
|
{'folke/twilight.nvim', event = "VeryLazy"}, -- provide even distraction free-er writing (lowlight paragraphs)
|
|
{'alok/notational-fzf-vim', event = "VeryLazy"}, -- quickly search through the wiki
|
|
{'marty-oehme/zettelkasten.nvim', ft = writing_ft, event = "VeryLazy"}, -- simple static markdown linking
|
|
{
|
|
"iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files
|
|
build = function() vim.fn["mkdp#util#install"]() end,
|
|
event = "VeryLazy"
|
|
}, -- languages
|
|
{'euclidianAce/BetterLua.vim', ft = 'lua'}, -- better syntax highlighting for lua
|
|
{'aliou/bats.vim', ft = {"bash", "sh", "zsh", "bats"}}, -- enable syntax for bats shell-code testing library
|
|
|
|
-- REPL work
|
|
{
|
|
'WhiteBlackGoose/magma-nvim-goose',
|
|
build = ":UpdateRemotePlugins",
|
|
config = function()
|
|
vim.g.magma_image_provider = "kitty"
|
|
vim.g.magma_automatically_open_output = false
|
|
end
|
|
}, -- nvim plugs
|
|
{
|
|
'echasnovski/mini.nvim',
|
|
version = '*',
|
|
config = function() require('plug._mini') end
|
|
}, {'Iron-E/nvim-cartographer'}, -- makes it easier to set mappings through lua
|
|
{
|
|
"akinsho/nvim-toggleterm.lua", -- simpler, programmable and multiple terminal toggling for nvim
|
|
config = function() require('plug._toggleterm') end,
|
|
event = "BufWinEnter"
|
|
},
|
|
{
|
|
"folke/which-key.nvim",
|
|
config = function() require("which-key").setup {} end
|
|
}, {
|
|
"nvim-neorg/neorg",
|
|
config = function() require("plug._neorg") end,
|
|
dependencies = {"nvim-lua/plenary.nvim"},
|
|
version = "*",
|
|
ft = "norg"
|
|
}, -- extensive organization plugin mimicking orgmode
|
|
-- fuzzy matching
|
|
{"nvim-telescope/telescope-fzf-native.nvim", build = 'make'}, {
|
|
"nvim-telescope/telescope.nvim",
|
|
dependencies = {"nvim-lua/popup.nvim", "nvim-lua/plenary.nvim"},
|
|
config = function() require('plug._telescope') end
|
|
}, -- snippeting
|
|
{"hrsh7th/vim-vsnip", event = "InsertEnter"}, -- snippet engine
|
|
{"rafamadriz/friendly-snippets", event = "InsertEnter"}, -- many snippets
|
|
-- treesitter
|
|
{
|
|
'nvim-treesitter/nvim-treesitter',
|
|
build = ':TSUpdate',
|
|
config = function() require('plug._treesitter') end
|
|
}, {'nvim-treesitter/playground', cmd = "TSPlaygroundToggle"}, -- interactively view and query the treesitter tree
|
|
{'romgrk/nvim-treesitter-context', event = "BufReadPre", config = true}, -- show current cursor context at top of buffer
|
|
{
|
|
'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches
|
|
config = function()
|
|
require'nvim-treesitter.configs'.setup {
|
|
textsubjects = {
|
|
enable = true,
|
|
keymaps = {
|
|
['.'] = 'textsubjects-smart',
|
|
[';'] = 'textsubjects-container-outer'
|
|
}
|
|
}
|
|
}
|
|
end,
|
|
event = "BufReadPre"
|
|
}, {'p00f/nvim-ts-rainbow', event = "BufReadPre"}, -- rainbow brackets using treesitter
|
|
{'JoosepAlviste/nvim-ts-context-commentstring', event = "BufReadPre"}, -- improves commenting plugin above by using ts
|
|
{
|
|
'lewis6991/spellsitter.nvim', -- uses treesitter to highlight spelling errors
|
|
config = function() require('spellsitter').setup() end,
|
|
event = "BufReadPre"
|
|
}, -- lsp
|
|
{'neovim/nvim-lspconfig', event = "VeryLazy"}, -- some common language server configurations
|
|
{
|
|
'simrat39/symbols-outline.nvim',
|
|
config = function() require('symbols-outline').setup() end,
|
|
event = "VeryLazy"
|
|
}, -- vista-like outline view for code
|
|
{'ray-x/lsp_signature.nvim', event = "VeryLazy"},
|
|
{'ray-x/guihua.lua', build = 'cd lua/fzy && make', event = "VeryLazy"}, {
|
|
'ray-x/navigator.lua',
|
|
config = function() require('plug._lsp') end,
|
|
event = "VeryLazy"
|
|
}, -- and completion
|
|
{
|
|
'hrsh7th/nvim-cmp', -- simple completion engine built specifically for nvim and lsp
|
|
dependencies = {
|
|
'onsails/lspkind-nvim', 'andersevenrud/cmp-tmux', -- completion source from adjacent tmux panes
|
|
'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path',
|
|
'hrsh7th/cmp-cmdline', 'hrsh7th/cmp-vsnip', 'hrsh7th/cmp-nvim-lua',
|
|
'kdheepak/cmp-latex-symbols', 'ray-x/cmp-treesitter',
|
|
'f3fora/cmp-spell', 'cbarrete/completion-vcard'
|
|
},
|
|
event = "VeryLazy",
|
|
config = function() require('plug._cmp') end
|
|
}, {
|
|
'aspeddro/cmp-pandoc.nvim',
|
|
dependencies = {'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim'},
|
|
event = "VeryLazy"
|
|
}, {
|
|
"jghauser/papis.nvim",
|
|
after = {"telescope.nvim", "nvim-cmp"},
|
|
dependencies = {
|
|
"kkharji/sqlite.lua", "nvim-lua/plenary.nvim",
|
|
"MunifTanjim/nui.nvim", "nvim-treesitter/nvim-treesitter"
|
|
},
|
|
event = "VeryLazy",
|
|
rocks = {"lyaml"},
|
|
config = function() require("papis").setup({}) end
|
|
}
|
|
}
|