-- UI -- These plugins make up a large portion of the UI that I use to interact with nvim return { { -- gruvbox 'ellisonleao/gruvbox.nvim', name = 'gruvbox', priority = 1000, }, { -- lualine 'nvim-lualine/lualine.nvim', opts = function() return require('plugins.configs.UI.lualine') end, config = true, event = 'VeryLazy', dependencies = { 'nvim-web-devicons', 'sherlock5512/lualine-spell-status', -- custom lualine module }, }, { -- neo-tree 'nvim-neo-tree/neo-tree.nvim', version = '^3', init = function() vim.g.neo_tree_remove_legacy_commands = 1 end, opts = function() return require('plugins.configs.UI.neo-tree') end, config = true, -- can't lazy load as the netrw replacement functionality -- requires hooking to be done early in the startup process lazy = false, dependencies = { 'plenary.nvim', 'nvim-web-devicons', 'nui.nvim', }, keys = { { 'n', 'Neotree action=focus source=filesystem position=left toggle=true', desc = 'toggle neotree', }, }, }, { -- bufferline 'akinsho/bufferline.nvim', config = true, event = 'VeryLazy', dependencies = { 'nvim-web-devicons', }, }, { -- noice 'folke/noice.nvim', opts = function() return require('plugins.configs.UI.noice') end, event = 'VeryLazy', config = true, dependencies = { 'nui.nvim', 'nvim-notify', }, }, { -- which-key 'folke/which-key.nvim', opts = function() return require('plugins.configs.UI.whichkey') end, config = function(_, opts) require('which-key').setup(opts.config) require('which-key').add(opts.default_bindings) end, event = 'VeryLazy', }, { -- indent-blankline 'lukas-reineke/indent-blankline.nvim', main = 'ibl', opts = { exclude = { filetypes = { 'alpha', 'dashboard', 'neo-tree', 'Trouble', 'lazy', 'mason', 'notify', 'oil_preview', 'vim', }, }, scope = { enabled = true, }, }, event = 'BufReadPost', }, { -- zen-mode 'folke/zen-mode.nvim', opts = function() return require('plugins.configs.UI.zen') end, config = true, cmd = { 'ZenMode' }, keys = { { 'z', function() require('zen-mode').toggle() end, desc = 'zen-mode', }, }, dependencies = 'folke/twilight.nvim', }, { -- trouble.nvim 'folke/trouble.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, cmd = { 'Trouble', 'TroubleClose', 'TroubleToggle', 'TroubleRefresh', }, opts = {}, }, { -- todo-comments 'folke/todo-comments.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, opts = {}, cmd = { 'TodoTrouble', 'TodoTelescope', }, event = { 'BufEnter', }, }, }