nvimtree.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. local M = {}
  2. --
  3. M.config = function()
  4. lvim.builtin.nvimtree = {
  5. side = "left",
  6. show_icons = {
  7. git = 1,
  8. folders = 1,
  9. files = 1,
  10. folder_arrows = 1,
  11. tree_width = 30,
  12. },
  13. ignore = { ".git", "node_modules", ".cache" },
  14. auto_open = 1,
  15. auto_close = 1,
  16. quit_on_open = 0,
  17. follow = 1,
  18. hide_dotfiles = 1,
  19. git_hl = 1,
  20. root_folder_modifier = ":t",
  21. tab_open = 0,
  22. allow_resize = 1,
  23. lsp_diagnostics = 1,
  24. auto_ignore_ft = { "startify", "dashboard" },
  25. icons = {
  26. default = "",
  27. symlink = "",
  28. git = {
  29. unstaged = "",
  30. staged = "S",
  31. unmerged = "",
  32. renamed = "➜",
  33. deleted = "",
  34. untracked = "U",
  35. ignored = "◌",
  36. },
  37. folder = {
  38. default = "",
  39. open = "",
  40. empty = "",
  41. empty_open = "",
  42. symlink = "",
  43. },
  44. },
  45. }
  46. end
  47. --
  48. M.setup = function()
  49. local status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
  50. if not status_ok then
  51. return
  52. end
  53. local g = vim.g
  54. for opt, val in pairs(lvim.builtin.nvimtree) do
  55. g["nvim_tree_" .. opt] = val
  56. end
  57. local tree_cb = nvim_tree_config.nvim_tree_callback
  58. g.nvim_tree_bindings = {
  59. { key = { "l", "<CR>", "o" }, cb = tree_cb "edit" },
  60. { key = "h", cb = tree_cb "close_node" },
  61. { key = "v", cb = tree_cb "vsplit" },
  62. }
  63. end
  64. --
  65. --
  66. M.toggle_tree = function()
  67. local view_status_ok, view = pcall(require, "nvim-tree.view")
  68. if not view_status_ok then
  69. return
  70. end
  71. if view.win_open() then
  72. require("nvim-tree").close()
  73. if package.loaded["bufferline.state"] then
  74. require("bufferline.state").set_offset(0)
  75. end
  76. else
  77. if package.loaded["bufferline.state"] then
  78. -- require'bufferline.state'.set_offset(31, 'File Explorer')
  79. require("bufferline.state").set_offset(31, "")
  80. end
  81. require("nvim-tree").toggle()
  82. end
  83. end
  84. --
  85. return M