nvim-snappy/lua/plugins.lua

158 lines
4.0 KiB
Lua

-- Install Lazy
--- Update Lazy.nvim by manually deleting 'lazy_path' and restarting nvim
local lazy_repo = 'https://github.com/folke/lazy.nvim.git'
local lazy_tag = 'v11.16.2'
local lazy_path = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazy_path) then
vim.fn.system({
'git',
'clone',
'--filter=blob:none',
lazy_repo,
'https://github.com/folke/lazy.nvim.git',
'--branch=' .. lazy_tag,
lazy_path,
})
end
vim.opt.rtp:prepend(lazy_path)
-- Install / Setup Plugins
--- See :Lazy for more
require('lazy').setup({
--####################
--# - General Plugins
--####################
require('plugins/snacks'),
-- Libraries
require('plugins/libs/plenary'),
require('plugins/libs/nvim-web-devicons'),
require('plugins/libs/nvim-nio'),
--require('plugins/libs/nui'),
--require('plugins/libs/nvim-notify'),
--require('plugins/libs/image-nvim'),
-- TODO: Some kind of image display library.
-- Search: telescope (for now)
--- Keys: <leader>s
require('plugins/search/fzf-lua'),
-- Version Control: git
---- Keys: <leader>g
require('plugins/vcs/gitsigns'),
--require('plugins/vcs/gitlinker')
-- LSP: native
--- Keys: <leader>l
require('plugins/lsp/lsp-lines'),
require('plugins/lsp/tiny-code-action'),
-- Editing: treesitter
require('plugins/editing/treesitter'),
--require('plugins/editing/todo-comments'),
--require('plugins/editing/nvim-surround')
--require('plugins/editing/surround-ui')
--require('plugins/editing/Comment')
--require('plugins/editing/neogen')
--require('plugins/editing/gen')
--require('plugins/editing/treesj')
require('plugins/editing/conform-nvim'),
-- Motion
--require('plugins/motion/flash')
--require('plugins/motion/gx')
-- UX
--- <leader>u for UI/UX Effects
--require('plugins/ux/noice'),
require('plugins/ux/vim-sleuth'),
require('plugins/ux/which-key'),
-- TODO: A buffer management solution of some kind.
--require('plugins/ux/tabby'),
--require('plugins/ux/toggleterm'),
--require('plugins/ux/dropbar'),
require('plugins/ux/flatten'),
-- Workflow
require('plugins/workflow/projections'),
require('plugins/workflow/mini-files'),
--require('plugins/workflow/git-dev'),
--require('plugins/workflow/sad'),
-- Organization
--require('plugins/org/due')
--####################
--# - Language Plugins
--####################
-- Lang: Markdown / Quarto
require('plugins/langs/md_quarto/molten-nvim'),
require('plugins/langs/md_quarto/otter'),
require('plugins/langs/md_quarto/quarto-nvim'),
require('plugins/langs/md_quarto/img-clip'),
--require('plugins/langs/md_quarto/mdmath'),
require('plugins/langs/md_quarto/nabla'),
--require('plugins/langs/md_quarto/mkdnflow')
--require('plugins/langs/md_quarto/easytables'),
--require('plugins/langs/md_quarto/render-markdown-nvim'),
-- Lang: Python
--require('plugins/langs/python/f-string-toggle'),
-- Lang: Rust
--require('plugins/langs/rust/rustaceanvim'),
-- Lang: CSV
--require('plugins/langs/csv/csvview'),
--####################
--# - Adaptor-Based Plugins
--####################
-- Completion: blink-cmp
require('plugins/completion/friendly-snippets'),
--require('plugins/completion/minuet-ai'),
require('plugins/completion/blink'),
-- Debugging: nvim-dap
--- Keys: <leader>d
--require('plugins/debugging/nvim-dap-ui'),
--require('plugins/debugging/nvim-dap-virtual-text'),
--require('plugins/debugging'),
-- Testing: nvim-neotest
--- Keys: <leader>t
require('plugins/testing/neotest-python'),
require('plugins/testing/nvim-neotest'),
--####################
--# - Fun and Style
--####################
-- Fun
require('plugins/fun/cellular-automation'),
-- Style
require('plugins/catppuccin'),
}, {
ui = {
icons = vim.g.have_nerd_font and {} or {
cmd = '',
config = '🛠',
event = '📅',
ft = '📂',
init = '',
keys = '🗝',
plugin = '🔌',
runtime = '💻',
require = '🌙',
source = '📄',
start = '🚀',
task = '📌',
lazy = '💤 ',
},
},
rocks = {
hererocks = true,
},
})