NIVM/lua/plugins/specs/UI.lua
2024-02-17 20:46:11 +00:00

155 lines
2.7 KiB
Lua

-- 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 = {
{
'<leader>n',
'<CMD>Neotree action=focus source=filesystem position=left toggle=true<CR>',
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').register(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 = {
{
'<leader>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',
},
},
}