feat(ui): modernize nvim with fzf-lua, snacks dashboard, and p10k-style statusline

- Replace Snacks picker with fzf-lua for LSP navigation (gd, gr, gi, gt)
- Add fzf-lua plugin with LSP-optimized settings
- Fix Mason inconsistencies (add eslint, gopls to ensure_installed)
- Replace alpha-nvim with Snacks dashboard (shared config)
- Create dashboard_config.lua for DRY dashboard settings
- Modernize lualine with p10k-rainbow style and solid backgrounds
- Enhance bufferline with LSP diagnostics and modern styling
- Update noice with centered cmdline/search and modern icons
- Add global rounded borders for floating windows
- Improve indent-blankline with scope highlighting
- Add return-to-dashboard on last buffer close
- Create performance_monitor module

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-12 18:59:46 -05:00
parent 2382297a6d
commit 89cba7056e
14 changed files with 998 additions and 224 deletions

View File

@@ -1,11 +1,313 @@
return {
"akinsho/bufferline.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
version = "*",
opts = {
options = {
mode = "tabs",
},
},
event = "VeryLazy",
config = function()
local bufferline = require("bufferline")
bufferline.setup({
options = {
mode = "buffers",
style_preset = bufferline.style_preset.minimal,
themable = true,
numbers = "none",
close_command = "bdelete! %d",
right_mouse_command = "bdelete! %d",
left_mouse_command = "buffer %d",
middle_mouse_command = nil,
indicator = {
icon = "",
style = "icon",
},
buffer_close_icon = "󰅖",
modified_icon = "",
close_icon = "",
left_trunc_marker = "",
right_trunc_marker = "",
max_name_length = 30,
max_prefix_length = 30,
truncate_names = true,
tab_size = 21,
diagnostics = "nvim_lsp",
diagnostics_update_in_insert = false,
diagnostics_indicator = function(count, level, _, _)
local icon = level:match("error") and " " or " "
return " " .. icon .. count
end,
color_icons = true,
show_buffer_icons = true,
show_buffer_close_icons = true,
show_close_icon = true,
show_tab_indicators = true,
show_duplicate_prefix = true,
persist_buffer_sort = true,
separator_style = "thin",
enforce_regular_tabs = false,
always_show_bufferline = true,
hover = {
enabled = true,
delay = 200,
reveal = { "close" },
},
offsets = {
{
filetype = "NvimTree",
text = " File Explorer",
text_align = "center",
separator = true,
highlight = "Directory",
},
},
},
highlights = {
fill = {
bg = "#16161e",
},
background = {
fg = "#565f89",
bg = "#16161e",
},
tab = {
fg = "#565f89",
bg = "#16161e",
},
tab_selected = {
fg = "#c0caf5",
bg = "#1a1b26",
},
tab_separator = {
fg = "#16161e",
bg = "#16161e",
},
tab_separator_selected = {
fg = "#1a1b26",
bg = "#1a1b26",
},
buffer_visible = {
fg = "#565f89",
bg = "#16161e",
},
buffer_selected = {
fg = "#c0caf5",
bg = "#1a1b26",
bold = true,
italic = false,
},
numbers = {
fg = "#565f89",
bg = "#16161e",
},
numbers_visible = {
fg = "#565f89",
bg = "#16161e",
},
numbers_selected = {
fg = "#c0caf5",
bg = "#1a1b26",
bold = true,
italic = false,
},
diagnostic = {
fg = "#565f89",
bg = "#16161e",
},
diagnostic_visible = {
fg = "#565f89",
bg = "#16161e",
},
diagnostic_selected = {
fg = "#c0caf5",
bg = "#1a1b26",
bold = true,
italic = false,
},
hint = {
fg = "#1abc9c",
bg = "#16161e",
},
hint_visible = {
fg = "#1abc9c",
bg = "#16161e",
},
hint_selected = {
fg = "#1abc9c",
bg = "#1a1b26",
bold = true,
italic = false,
},
hint_diagnostic = {
fg = "#1abc9c",
bg = "#16161e",
},
hint_diagnostic_visible = {
fg = "#1abc9c",
bg = "#16161e",
},
hint_diagnostic_selected = {
fg = "#1abc9c",
bg = "#1a1b26",
bold = true,
italic = false,
},
info = {
fg = "#0db9d7",
bg = "#16161e",
},
info_visible = {
fg = "#0db9d7",
bg = "#16161e",
},
info_selected = {
fg = "#0db9d7",
bg = "#1a1b26",
bold = true,
italic = false,
},
info_diagnostic = {
fg = "#0db9d7",
bg = "#16161e",
},
info_diagnostic_visible = {
fg = "#0db9d7",
bg = "#16161e",
},
info_diagnostic_selected = {
fg = "#0db9d7",
bg = "#1a1b26",
bold = true,
italic = false,
},
warning = {
fg = "#e0af68",
bg = "#16161e",
},
warning_visible = {
fg = "#e0af68",
bg = "#16161e",
},
warning_selected = {
fg = "#e0af68",
bg = "#1a1b26",
bold = true,
italic = false,
},
warning_diagnostic = {
fg = "#e0af68",
bg = "#16161e",
},
warning_diagnostic_visible = {
fg = "#e0af68",
bg = "#16161e",
},
warning_diagnostic_selected = {
fg = "#e0af68",
bg = "#1a1b26",
bold = true,
italic = false,
},
error = {
fg = "#f7768e",
bg = "#16161e",
},
error_visible = {
fg = "#f7768e",
bg = "#16161e",
},
error_selected = {
fg = "#f7768e",
bg = "#1a1b26",
bold = true,
italic = false,
},
error_diagnostic = {
fg = "#f7768e",
bg = "#16161e",
},
error_diagnostic_visible = {
fg = "#f7768e",
bg = "#16161e",
},
error_diagnostic_selected = {
fg = "#f7768e",
bg = "#1a1b26",
bold = true,
italic = false,
},
modified = {
fg = "#e0af68",
bg = "#16161e",
},
modified_visible = {
fg = "#e0af68",
bg = "#16161e",
},
modified_selected = {
fg = "#e0af68",
bg = "#1a1b26",
},
duplicate_selected = {
fg = "#c0caf5",
bg = "#1a1b26",
italic = true,
},
duplicate_visible = {
fg = "#565f89",
bg = "#16161e",
italic = true,
},
duplicate = {
fg = "#565f89",
bg = "#16161e",
italic = true,
},
separator_selected = {
fg = "#16161e",
bg = "#1a1b26",
},
separator_visible = {
fg = "#16161e",
bg = "#16161e",
},
separator = {
fg = "#16161e",
bg = "#16161e",
},
indicator_selected = {
fg = "#7aa2f7",
bg = "#1a1b26",
},
indicator_visible = {
fg = "#16161e",
bg = "#16161e",
},
pick_selected = {
fg = "#f7768e",
bg = "#1a1b26",
bold = true,
italic = false,
},
pick_visible = {
fg = "#f7768e",
bg = "#16161e",
bold = true,
italic = false,
},
pick = {
fg = "#f7768e",
bg = "#16161e",
bold = true,
italic = false,
},
offset_separator = {
fg = "#16161e",
bg = "#16161e",
},
trunc_marker = {
fg = "#565f89",
bg = "#16161e",
},
},
})
end,
}