242 lines
5.4 KiB
Lua
242 lines
5.4 KiB
Lua
-- following options are the default
|
|
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
|
|
|
|
local status_ok, nvim_tree = pcall(require, "nvim-tree")
|
|
if not status_ok then
|
|
return
|
|
end
|
|
|
|
local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
|
|
if not config_status_ok then
|
|
return
|
|
end
|
|
|
|
nvim_tree.setup { -- BEGIN_DEFAULT_OPTS
|
|
auto_reload_on_write = true,
|
|
create_in_closed_folder = false,
|
|
disable_netrw = false,
|
|
hijack_cursor = false,
|
|
hijack_netrw = true,
|
|
hijack_unnamed_buffer_when_opening = false,
|
|
ignore_buffer_on_setup = false,
|
|
open_on_setup = true,
|
|
open_on_setup_file = true,
|
|
open_on_tab = true,
|
|
ignore_buf_on_tab_change = {},
|
|
sort_by = "name",
|
|
root_dirs = {},
|
|
prefer_startup_root = false,
|
|
sync_root_with_cwd = true,
|
|
reload_on_bufenter = false,
|
|
respect_buf_cwd = true,
|
|
on_attach = "disable", -- function(bufnr). If nil, will use the deprecated mapping strategy
|
|
remove_keymaps = false, -- boolean (disable totally or not) or list of key (lhs)
|
|
view = {
|
|
adaptive_size = false,
|
|
centralize_selection = false,
|
|
width = 30,
|
|
hide_root_folder = false,
|
|
side = "right",
|
|
preserve_window_proportions = false,
|
|
number = false,
|
|
relativenumber = false,
|
|
signcolumn = "yes",
|
|
-- @deprecated
|
|
mappings = {
|
|
custom_only = false,
|
|
list = {
|
|
-- user mappings go here
|
|
},
|
|
},
|
|
float = {
|
|
enable = false,
|
|
open_win_config = {
|
|
relative = "editor",
|
|
border = "rounded",
|
|
width = 30,
|
|
height = 30,
|
|
row = 1,
|
|
col = 1,
|
|
},
|
|
},
|
|
},
|
|
renderer = {
|
|
add_trailing = false,
|
|
group_empty = true,
|
|
highlight_git = false,
|
|
full_name = false,
|
|
highlight_opened_files = "none",
|
|
root_folder_modifier = ":~",
|
|
indent_width = 2,
|
|
indent_markers = {
|
|
enable = false,
|
|
inline_arrows = true,
|
|
icons = {
|
|
corner = "└",
|
|
edge = "│",
|
|
item = "│",
|
|
bottom = "─",
|
|
none = " ",
|
|
},
|
|
},
|
|
icons = {
|
|
webdev_colors = true,
|
|
git_placement = "before",
|
|
padding = " ",
|
|
symlink_arrow = " ➛ ",
|
|
show = {
|
|
file = true,
|
|
folder = true,
|
|
folder_arrow = true,
|
|
git = true,
|
|
},
|
|
glyphs = {
|
|
default = "",
|
|
symlink = "",
|
|
bookmark = "",
|
|
folder = {
|
|
arrow_closed = "",
|
|
arrow_open = "",
|
|
default = "",
|
|
open = "",
|
|
empty = "",
|
|
empty_open = "",
|
|
symlink = "",
|
|
symlink_open = "",
|
|
},
|
|
git = {
|
|
unstaged = "✗",
|
|
staged = "✓",
|
|
unmerged = "",
|
|
renamed = "➜",
|
|
untracked = "★",
|
|
deleted = "",
|
|
ignored = "◌",
|
|
},
|
|
},
|
|
},
|
|
special_files = { "cargo.toml", "makefile", "readme.md", "readme.md" },
|
|
symlink_destination = true,
|
|
},
|
|
hijack_directories = {
|
|
enable = true,
|
|
auto_open = true,
|
|
},
|
|
update_focused_file = {
|
|
enable = true,
|
|
-- update_cwd = true,
|
|
update_root = false,
|
|
ignore_list = {},
|
|
},
|
|
ignore_ft_on_setup = {},
|
|
system_open = {
|
|
cmd = "",
|
|
args = {},
|
|
},
|
|
diagnostics = {
|
|
enable = false,
|
|
show_on_dirs = false,
|
|
debounce_delay = 50,
|
|
icons = {
|
|
hint = "",
|
|
info = "",
|
|
warning = "",
|
|
error = "",
|
|
},
|
|
},
|
|
filters = {
|
|
dotfiles = false,
|
|
custom = {},
|
|
exclude = {},
|
|
},
|
|
filesystem_watchers = {
|
|
enable = true,
|
|
debounce_delay = 50,
|
|
},
|
|
git = {
|
|
enable = true,
|
|
ignore = true,
|
|
show_on_dirs = true,
|
|
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 = true,
|
|
window_picker = {
|
|
enable = true,
|
|
chars = "abcdefghijklmnopqrstuvwxyz1234567890",
|
|
exclude = {
|
|
filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" },
|
|
buftype = { "nofile", "terminal", "help" },
|
|
},
|
|
},
|
|
},
|
|
remove_file = {
|
|
close_window = true,
|
|
},
|
|
},
|
|
trash = {
|
|
cmd = "gio trash",
|
|
require_confirm = true,
|
|
},
|
|
live_filter = {
|
|
prefix = "[FILTER]: ",
|
|
always_show_folders = true,
|
|
},
|
|
log = {
|
|
enable = false,
|
|
truncate = false,
|
|
types = {
|
|
all = false,
|
|
config = false,
|
|
copy_paste = false,
|
|
dev = false,
|
|
diagnostics = false,
|
|
git = false,
|
|
profile = false,
|
|
watcher = false,
|
|
},
|
|
},
|
|
}
|
|
|
|
-- nvim-tree is also there in modified buffers so this function filter it out
|
|
local modifiedBufs = function(bufs)
|
|
local t = 0
|
|
for k, v in pairs(bufs) do
|
|
if v.name:match("NvimTree_") == nil then
|
|
t = t + 1
|
|
end
|
|
end
|
|
return t
|
|
end
|
|
|
|
vim.api.nvim_create_autocmd("BufEnter", {
|
|
nested = true,
|
|
callback = function()
|
|
if #vim.api.nvim_list_wins() == 1 and
|
|
vim.api.nvim_buf_get_name(0):match("NvimTree_") ~= nil and
|
|
modifiedBufs(vim.fn.getbufinfo({ bufmodified = 1 })) == 0 then
|
|
vim.cmd "quit"
|
|
end
|
|
end
|
|
})
|