pojokcodeid.nvim-lazy/lua/plugins/nvimtree.lua

328 lines
8.8 KiB
Lua
Raw Permalink Normal View History

2024-05-31 14:00:49 +07:00
local set_view = {}
2024-06-14 08:21:36 +07:00
if pcode.nvimtree_isfloat == 1 then
2024-05-31 14:00:49 +07:00
set_view = require("user.utils.nvimtree").float
else
set_view = require("user.utils.nvimtree").normal
end
2024-10-11 17:28:02 +07:00
--[[ local icons = pcode.icons
2024-05-20 08:42:59 +07:00
return {
2024-05-31 14:00:49 +07:00
"kyazdani42/nvim-tree.lua",
lazy = true,
cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" },
opts = {
auto_reload_on_write = false,
disable_netrw = false,
hijack_cursor = false,
hijack_netrw = true,
hijack_unnamed_buffer_when_opening = false,
sort_by = "name",
root_dirs = {},
prefer_startup_root = false,
sync_root_with_cwd = true,
reload_on_bufenter = false,
respect_buf_cwd = false,
on_attach = "default",
select_prompts = false,
view = set_view,
renderer = {
add_trailing = false,
group_empty = false,
highlight_git = true,
full_name = false,
highlight_opened_files = "none",
-- root_folder_label = ":t",
root_folder_label = false,
indent_width = 2,
indent_markers = {
enable = true,
inline_arrows = true,
icons = {
corner = "",
edge = "",
item = "",
none = " ",
},
},
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = icons.ui.Text,
symlink = icons.ui.FileSymlink,
bookmark = icons.ui.BookMark,
folder = {
-- arrow_closed = icons.ui.TriangleShortArrowRight,
arrow_closed = icons.ui.ChevronShortRight,
-- arrow_open = icons.ui.TriangleShortArrowDown,
arrow_open = icons.ui.ChevronShortDown,
default = icons.ui.Folder,
open = icons.ui.FolderOpen,
empty = icons.ui.EmptyFolder,
empty_open = icons.ui.EmptyFolderOpen,
symlink = icons.ui.FolderSymlink,
symlink_open = icons.ui.FolderOpen,
},
git = {
unstaged = icons.git.FileUnstaged,
staged = icons.git.FileStaged,
unmerged = icons.git.FileUnmerged,
renamed = icons.git.FileRenamed,
untracked = icons.git.FileUntracked,
deleted = icons.git.FileDeleted,
ignored = icons.git.FileIgnored,
},
},
},
special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" },
symlink_destination = true,
},
hijack_directories = {
enable = false,
auto_open = true,
},
update_focused_file = {
enable = true,
debounce_delay = 15,
update_root = true,
ignore_list = {},
},
diagnostics = {
enable = true,
show_on_dirs = false,
show_on_open_dirs = true,
debounce_delay = 50,
severity = {
min = vim.diagnostic.severity.HINT,
max = vim.diagnostic.severity.ERROR,
},
icons = {
hint = icons.diagnostics.BoldHint,
info = icons.diagnostics.BoldInformation,
warning = icons.diagnostics.BoldWarning,
error = icons.diagnostics.BoldError,
},
},
filters = {
dotfiles = false,
git_clean = false,
no_buffer = false,
custom = { "node_modules", "\\.cache", "\\.git" },
exclude = {
".gitignore",
".prettierignore",
},
},
filesystem_watchers = {
enable = true,
debounce_delay = 50,
ignore_dirs = {},
},
git = {
enable = true,
ignore = false,
show_on_dirs = true,
show_on_open_dirs = true,
disable_for_dirs = {},
timeout = 400,
},
actions = {
use_system_clipboard = true,
change_dir = {
enable = true,
global = false,
restrict_above_cwd = false,
},
expand_all = {
max_folder_discovery = 300,
exclude = {},
},
file_popup = {
open_win_config = {
col = 1,
row = 1,
relative = "cursor",
border = "shadow",
style = "minimal",
},
},
open_file = {
quit_on_open = false,
resize_window = false,
window_picker = {
enable = true,
picker = "default",
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
exclude = {
filetype = { "notify", "lazy", "qf", "diff", "fugitive", "fugitiveblame" },
buftype = { "nofile", "terminal", "help" },
},
},
},
remove_file = {
close_window = true,
},
},
trash = {
cmd = "trash",
require_confirm = true,
},
live_filter = {
prefix = "[FILTER]: ",
always_show_folders = true,
},
tab = {
sync = {
open = false,
close = false,
ignore = {},
},
},
notify = {
2024-07-13 13:07:24 +07:00
-- threshold = vim.log.levels.INFO,
threshold = vim.log.levels.ERROR,
2024-05-31 14:00:49 +07:00
},
log = {
enable = false,
truncate = false,
types = {
all = false,
config = false,
copy_paste = false,
dev = false,
diagnostics = false,
git = false,
profile = false,
watcher = false,
},
},
system_open = {
cmd = nil,
args = {},
},
},
2024-07-13 13:07:24 +07:00
keys = {
{ "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "󰙅 Explorer" },
},
2024-05-31 14:00:49 +07:00
config = function(_, opts)
require("nvim-tree").setup(opts)
2024-06-14 08:40:35 +07:00
local api = require("nvim-tree.api")
2024-06-01 05:15:35 +07:00
api.events.subscribe(api.events.Event.FileCreated, function(file)
vim.cmd("edit " .. file.fname)
end)
2024-05-31 14:00:49 +07:00
end,
2024-05-20 08:42:59 +07:00
}
2024-10-11 17:28:02 +07:00
]]
2024-10-12 16:42:46 +07:00
2024-10-11 17:28:02 +07:00
return {
"nvim-tree/nvim-tree.lua",
cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" },
keys = {
{ "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "󰙅 Explorer" },
},
opts = function()
local icons = pcode.icons
return {
disable_netrw = true,
hijack_cursor = true,
sync_root_with_cwd = true,
update_focused_file = {
enable = true,
update_root = false,
},
view = set_view,
renderer = {
root_folder_label = false,
highlight_git = true,
-- indent_markers = { enable = true },
indent_markers = {
enable = true,
inline_arrows = true,
icons = {
corner = "",
edge = "",
item = "",
none = " ",
},
},
icons = {
webdev_colors = true,
git_placement = "before",
padding = " ",
symlink_arrow = "",
show = {
file = true,
folder = true,
folder_arrow = true,
git = true,
},
glyphs = {
default = icons.ui.Text,
symlink = icons.ui.FileSymlink,
bookmark = icons.ui.BookMark,
folder = {
-- arrow_closed = icons.ui.TriangleShortArrowRight,
arrow_closed = icons.ui.ChevronShortRight,
-- arrow_open = icons.ui.TriangleShortArrowDown,
arrow_open = icons.ui.ChevronShortDown,
default = icons.ui.Folder,
open = icons.ui.FolderOpen,
empty = icons.ui.EmptyFolder,
empty_open = icons.ui.EmptyFolderOpen,
symlink = icons.ui.FolderSymlink,
symlink_open = icons.ui.FolderOpen,
},
git = {
unstaged = icons.git.FileUnstaged,
staged = icons.git.FileStaged,
unmerged = icons.git.FileUnmerged,
renamed = icons.git.FileRenamed,
untracked = icons.git.FileUntracked,
deleted = icons.git.FileDeleted,
ignored = icons.git.FileIgnored,
},
},
},
special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" },
symlink_destination = true,
},
filters = {
dotfiles = false,
git_clean = false,
no_buffer = false,
custom = { "node_modules", "\\.cache", "\\.git" },
exclude = {
".gitignore",
".prettierignore",
},
},
2024-10-12 16:42:46 +07:00
notify = {
threshold = vim.log.levels.INFO,
-- threshold = vim.log.levels.ERROR,
},
git = {
enable = true,
ignore = false,
show_on_dirs = true,
show_on_open_dirs = true,
disable_for_dirs = {},
2024-10-26 12:36:58 +07:00
timeout = 800,
2024-10-12 16:42:46 +07:00
},
2024-10-11 17:28:02 +07:00
}
end,
config = function(_, opts)
require("nvim-tree").setup(opts)
local api = require("nvim-tree.api")
api.events.subscribe(api.events.Event.FileCreated, function(file)
vim.cmd("edit " .. file.fname)
end)
end,
2024-10-12 16:42:46 +07:00
}