160 lines
4.0 KiB
Lua
160 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/neovim-project'),
|
||
|
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,
|
||
|
},
|
||
|
})
|