nvimtree.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. local M = {}
  2. local status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
  3. if not status_ok then
  4. return
  5. end
  6. --
  7. M.config = function()
  8. O.plugin.nvimtree = {
  9. side = "left",
  10. show_icons = {
  11. git = 1,
  12. folders = 1,
  13. files = 1,
  14. folder_arrows = 1,
  15. tree_width = 30,
  16. },
  17. ignore = { ".git", "node_modules", ".cache" },
  18. auto_open = 1,
  19. auto_close = 1,
  20. quit_on_open = 0,
  21. follow = 1,
  22. hide_dotfiles = 1,
  23. git_hl = 1,
  24. root_folder_modifier = ":t",
  25. tab_open = 0,
  26. allow_resize = 1,
  27. lsp_diagnostics = 1,
  28. auto_ignore_ft = { "startify", "dashboard" },
  29. icons = {
  30. default = "",
  31. symlink = "",
  32. git = {
  33. unstaged = "",
  34. staged = "S",
  35. unmerged = "",
  36. renamed = "➜",
  37. deleted = "",
  38. untracked = "U",
  39. ignored = "◌",
  40. },
  41. folder = {
  42. default = "",
  43. open = "",
  44. empty = "",
  45. empty_open = "",
  46. symlink = "",
  47. },
  48. },
  49. }
  50. end
  51. --
  52. M.setup = function()
  53. local g = vim.g
  54. for opt, val in pairs(O.plugin.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. local view_status_ok, view = pcall(require, "nvim-tree.view")
  66. if not view_status_ok then
  67. return
  68. end
  69. --
  70. M.toggle_tree = function()
  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").find_file(true)
  82. end
  83. end
  84. --
  85. return M