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:
@@ -2,17 +2,61 @@ return {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
main = "ibl",
|
||||
opts = {
|
||||
indent = {
|
||||
char = "┊",
|
||||
},
|
||||
exclude = {
|
||||
filetypes = { "help", "alpha", "dashboard", "neo-tree", "Trouble", "lazy", "mason" },
|
||||
buftypes = { "terminal", "nofile", "quickfix", "prompt" },
|
||||
},
|
||||
scope = {
|
||||
enabled = false
|
||||
},
|
||||
},
|
||||
}
|
||||
config = function()
|
||||
local hooks = require("ibl.hooks")
|
||||
|
||||
-- Rainbow indent colors (subtle)
|
||||
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||
vim.api.nvim_set_hl(0, "IblIndent", { fg = "#292e42" })
|
||||
vim.api.nvim_set_hl(0, "IblScope", { fg = "#7aa2f7" })
|
||||
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#3b3052" })
|
||||
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#3b3939" })
|
||||
vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#2a3a52" })
|
||||
vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#3b3339" })
|
||||
vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#2a3b39" })
|
||||
vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#3a2a52" })
|
||||
vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#2a3b4a" })
|
||||
end)
|
||||
|
||||
require("ibl").setup({
|
||||
indent = {
|
||||
char = "│",
|
||||
tab_char = "│",
|
||||
highlight = "IblIndent",
|
||||
},
|
||||
scope = {
|
||||
enabled = true,
|
||||
show_start = false,
|
||||
show_end = false,
|
||||
highlight = "IblScope",
|
||||
include = {
|
||||
node_type = {
|
||||
["*"] = { "return_statement", "table_constructor" },
|
||||
lua = { "return_statement", "table_constructor", "function", "if_statement" },
|
||||
python = { "function_definition", "class_definition", "if_statement", "for_statement" },
|
||||
javascript = { "function_declaration", "arrow_function", "if_statement", "for_statement" },
|
||||
typescript = { "function_declaration", "arrow_function", "if_statement", "for_statement" },
|
||||
},
|
||||
},
|
||||
},
|
||||
exclude = {
|
||||
filetypes = {
|
||||
"help",
|
||||
"alpha",
|
||||
"dashboard",
|
||||
"snacks_dashboard",
|
||||
"neo-tree",
|
||||
"NvimTree",
|
||||
"Trouble",
|
||||
"trouble",
|
||||
"lazy",
|
||||
"mason",
|
||||
"notify",
|
||||
"toggleterm",
|
||||
"lazyterm",
|
||||
},
|
||||
buftypes = { "terminal", "nofile", "quickfix", "prompt" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user