dotfiles-ansible/roles/config/files/nvim/lua/user/plugins/ui/init.lua

169 lines
6.1 KiB
Lua

return {
{
'goolord/alpha-nvim',
event = 'VimEnter',
opts = function()
return require('user.plugins.ui.alpha')
end,
config = function(_, dashboard)
-- close Lazy and re-open when the dashboard is ready
if vim.o.filetype == 'lazy' then
vim.cmd.close()
vim.api.nvim_create_autocmd('User', {
pattern = 'AlphaReady',
callback = function()
require('lazy').show()
end,
})
end
require('alpha').setup(dashboard.config)
vim.api.nvim_create_autocmd('User', {
pattern = 'LazyVimStarted',
callback = function()
local stats = require('lazy').stats()
dashboard.loaded.val = '🎉 Neovim loaded '
.. stats.count
.. ' plugins in '
.. (math.floor(stats.startuptime * 100 + 0.5) / 100)
.. 'ms'
pcall(vim.cmd.AlphaRedraw)
end,
})
end,
},
{
'willothy/nvim-cokeline',
enabled = vim.opt.showtabline:get() ~= 0,
event = 'UIEnter',
keys = {
{ '<Tab>', '<Plug>(cokeline-focus-next)', desc = 'Next buffer' },
{ '<S-Tab>', '<Plug>(cokeline-focus-prev)', desc = 'Previous buffer' },
{ '[b', '<Plug>(cokeline-focus-prev)', desc = 'Previous buffer' },
{ ']b', '<Plug>(cokeline-focus-next)', desc = 'Next buffer' },
{ '<localleader>b', '<Plug>(cokeline-pick-focus)', desc = 'Pick buffer' },
{ '<localleader>q', '<Plug>(cokeline-pick-close)', desc = 'Close picked buffer' },
},
opts = function()
return require('user.plugins.ui.cokeline')
end,
},
{
'nvim-lualine/lualine.nvim',
event = 'UIEnter',
config = true,
},
{
'nvim-tree/nvim-tree.lua',
cmd = { 'NvimTreeToggle', 'NvimTreeFindFileToggle', 'NvimTreeFocus' },
keys = {
{ '<leader>n', function() require('nvim-tree.api').tree.toggle(false, true) end, desc = 'NvimTree' },
{ '<leader>N', function() require('nvim-tree.api').tree.focus() end, desc = 'NvimTree (focus)' },
},
opts = require('user.plugins.ui.tree'),
},
{
'petertriho/nvim-scrollbar',
event = 'BufReadPost',
opts = {
set_highlights = false,
show_in_active_only = true,
handle = { blend = 0 },
handlers = { cursor = false },
excluded_filetypes = {
'alpha',
'lazy',
'notify',
'aerial',
'Trouble',
'NvimTree',
'qf',
'prompt',
'noice',
'OverseerForm',
'TelescopePrompt',
},
},
},
{
'folke/which-key.nvim',
event = 'VeryLazy',
config = function()
require('user.plugins.ui.which-key')
end,
},
{
'stevearc/dressing.nvim',
event = 'VeryLazy',
init = function()
---@diagnostic disable-next-line: duplicate-set-field
vim.ui.select = function(...)
require('lazy').load({ plugins = { 'dressing.nvim' } })
return vim.ui.select(...)
end
end,
opts = require('user.plugins.ui.dressing'),
},
{
'folke/noice.nvim',
event = 'VeryLazy',
dependencies = {
{
'rcarriga/nvim-notify',
keys = {
{
'<leader>un', function()
require('notify').dismiss { silent = true, pending = true }
end,
desc = 'Delete all notifications',
},
},
opts = require('user.plugins.ui.notify')
},
},
keys = {
{ '<S-Enter>', function() require('noice').redirect(vim.fn.getcmdline()) end, mode = 'c', desc = 'Redirect Cmdline' },
{ '<leader>ul', function() require('noice').cmd('last') end, desc = 'Noice Last Message' },
{ '<leader>uh', function() require('noice').cmd('history') end, desc = 'Noice History' },
{ '<leader>ua', function() require('noice').cmd('all') end, desc = 'Noice All' },
{ '<C-f>', function() if not require('noice.lsp').scroll(4) then return '<C-f>' end end, silent = true, expr = true, desc = 'Scroll forward', mode = {'i', 'n', 's'} },
{ '<C-b>', function() if not require('noice.lsp').scroll(-4) then return '<C-b>' end end, silent = true, expr = true, desc = 'Scroll backward', mode = {'i', 'n', 's'}},
},
opts = require('user.plugins.ui.noice'),
},
{
'folke/trouble.nvim',
cmd = { 'Trouble', 'TroubleToggle' },
keys = {
{
'[q',
function()
if require('trouble').is_open() then
require('trouble').previous { skip_groups = true, jump = true }
else
vim.cmd.cprev()
end
end,
desc = 'Previous trouble/quickfix item',
},
{
']q',
function()
if require('trouble').is_open() then
require('trouble').next { skip_groups = true, jump = true }
else
vim.cmd.cnext()
end
end,
desc = 'Next trouble/quickfix item',
},
{ 'gL', '<cmd>TroubleToggle loclist<CR>', desc = 'Location list (Trouble)' },
{ 'gQ', '<cmd>TroubleToggle quickfix<CR>', desc = 'Quickfix (Trouble)' },
},
opts = function()
return require('user.plugins.ui.trouble')
end,
},
}