2025-02-12 11:49:02 +01:00
|
|
|
-- Install Lazy
|
|
|
|
--- Update Lazy.nvim by manually deleting 'lazy_path' and restarting nvim
|
2025-02-13 08:58:49 +01:00
|
|
|
local lazy_repo = 'https://github.com/folke/lazy.nvim.git'
|
|
|
|
local lazy_tag = 'v11.16.2'
|
2025-02-12 11:49:02 +01:00
|
|
|
|
2025-02-13 08:58:49 +01:00
|
|
|
local lazy_path = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
2025-02-12 11:49:02 +01:00
|
|
|
if not vim.loop.fs_stat(lazy_path) then
|
|
|
|
vim.fn.system({
|
2025-02-13 08:58:49 +01:00
|
|
|
'git',
|
|
|
|
'clone',
|
|
|
|
'--filter=blob:none',
|
2025-02-12 11:49:02 +01:00
|
|
|
lazy_repo,
|
2025-02-13 08:58:49 +01:00
|
|
|
'https://github.com/folke/lazy.nvim.git',
|
|
|
|
'--branch=' .. lazy_tag,
|
2025-02-12 11:49:02 +01:00
|
|
|
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'),
|
2025-02-13 08:58:49 +01:00
|
|
|
--require('plugins/libs/image-nvim'),
|
2025-02-12 11:49:02 +01:00
|
|
|
-- 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'),
|
2025-02-13 08:58:49 +01:00
|
|
|
--require('plugins/langs/md_quarto/mdmath'),
|
2025-02-12 11:49:02 +01:00
|
|
|
require('plugins/langs/md_quarto/nabla'),
|
|
|
|
--require('plugins/langs/md_quarto/mkdnflow')
|
|
|
|
--require('plugins/langs/md_quarto/easytables'),
|
2025-02-13 08:58:49 +01:00
|
|
|
--require('plugins/langs/md_quarto/render-markdown-nvim'),
|
2025-02-12 11:49:02 +01:00
|
|
|
|
|
|
|
-- 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,
|
|
|
|
},
|
|
|
|
})
|