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:
@@ -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,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user