Something went wrong. Try again.
My own personal NeoVim configuration. Powered by vim.pack and lz.n
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879return { src = "https://github.com/nvim-tree/nvim-tree.lua", name = "nvim-tree.lua", spec = { "nvim-tree.lua", cmd = { "NvimTreeToggle", "NvimTreeOpen", "NvimTreeFocus", "NvimTreeFindFile" }, keys = { { "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "Toggle file tree" }, }, beforeAll = function() if vim.fn.argc(-1) == 1 then local stat = vim.uv.fs_stat(vim.fn.argv(0)) if stat and stat.type == "directory" then vim.api.nvim_create_augroup("FileExplorer", { clear = false }) require("lz.n").trigger_load("nvim-tree.lua") end end end, before = function() vim.cmd.packadd("nvim-web-devicons") end, after = function() require("nvim-tree").setup({ sort = { sorter = "case_sensitive" }, view = { width = 30 }, renderer = { group_empty = true, highlight_diagnostics = "name", icons = { show = { diagnostics = false } }, }, filters = { dotfiles = true }, diagnostics = { enable = true, show_on_dirs = true, show_on_open_dirs = true }, })
local severities = { Error = "DiagnosticError", Warn = "DiagnosticWarn", Info = "DiagnosticInfo", Hint = "DiagnosticHint" } local function set_diagnostic_colors() for name, source in pairs(severities) do local fg = vim.api.nvim_get_hl(0, { name = source, link = false }).fg for _, kind in ipairs({ "File", "Folder" }) do vim.api.nvim_set_hl(0, "NvimTreeDiagnostic" .. name .. kind .. "HL", { fg = fg }) end end end set_diagnostic_colors() vim.api.nvim_create_autocmd("ColorScheme", { callback = set_diagnostic_colors })
local diagnostics = require("nvim-tree.diagnostics") for _, buf in ipairs(vim.api.nvim_list_bufs()) do local found = vim.diagnostic.get(buf) if #found > 0 then diagnostics.update_lsp({ buf = buf, data = { diagnostics = found } }) end end
vim.api.nvim_create_autocmd("QuitPre", { callback = function() local tree_wins = {} local floating_wins = {} local wins = vim.api.nvim_list_wins() for _, w in ipairs(wins) do local bufname = vim.api.nvim_buf_get_name(vim.api.nvim_win_get_buf(w)) if bufname:match("NvimTree_") ~= nil then table.insert(tree_wins, w) end if vim.api.nvim_win_get_config(w).relative ~= "" then table.insert(floating_wins, w) end end if 1 == #wins - #floating_wins - #tree_wins then for _, w in ipairs(tree_wins) do vim.api.nvim_win_close(w, true) end end end, }) end, },}