-- 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: s --require('plugins/search/fzf-lua'), -- Version Control: git ---- Keys: g require('plugins/vcs/gitsigns'), --require('plugins/vcs/gitlinker') -- LSP: native --- Keys: 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 --- 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/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: d --require('plugins/debugging/nvim-dap-ui'), --require('plugins/debugging/nvim-dap-virtual-text'), --require('plugins/debugging'), -- Testing: nvim-neotest --- Keys: 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, }, })