Reviewed-on: #4 Co-authored-by: Tomas Mirchev <contact@tomastm.com> Co-committed-by: Tomas Mirchev <contact@tomastm.com>
149 lines
4.1 KiB
Lua
149 lines
4.1 KiB
Lua
local function my_on_attach(bufnr)
|
|
local api = require('nvim-tree.api')
|
|
local opts = { buffer = bufnr }
|
|
|
|
-- basics: copy/cut/paste/create/rename/remove
|
|
vim.keymap.set('n', 'c', api.fs.copy.node, opts)
|
|
vim.keymap.set('n', 'x', api.fs.cut, opts)
|
|
vim.keymap.set('n', 'p', api.fs.paste, opts)
|
|
vim.keymap.set('n', 'a', api.fs.create, opts)
|
|
vim.keymap.set('n', 'r', api.fs.rename, opts)
|
|
vim.keymap.set('n', 'R', api.fs.rename_basename, opts)
|
|
vim.keymap.set('n', 'd', api.fs.remove, opts)
|
|
|
|
-- bulk mark and delete/move
|
|
vim.keymap.set('n', 's', api.marks.toggle, opts)
|
|
vim.keymap.set('n', 'S', api.marks.clear, opts)
|
|
vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts)
|
|
vim.keymap.set('n', 'bm', api.marks.bulk.move, opts)
|
|
|
|
-- copy filename/path
|
|
vim.keymap.set('n', 'y', api.fs.copy.filename, opts)
|
|
vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts)
|
|
vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts)
|
|
vim.keymap.set('n', 'ge', api.fs.copy.basename, opts)
|
|
|
|
-- expand/collapse
|
|
vim.keymap.set('n', 'e', api.tree.expand_all, opts)
|
|
vim.keymap.set('n', 'E', api.tree.collapse_all, opts)
|
|
|
|
-- filter
|
|
vim.keymap.set('n', 'f', api.live_filter.start, opts)
|
|
vim.keymap.set('n', 'F', api.live_filter.clear, opts)
|
|
|
|
-- navigate
|
|
vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts)
|
|
vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts)
|
|
vim.keymap.set('n', 'P', api.node.navigate.parent, opts)
|
|
|
|
-- open
|
|
vim.keymap.set('n', '<CR>', api.node.open.edit, opts)
|
|
vim.keymap.set('n', 'o', api.node.open.edit, opts)
|
|
vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts)
|
|
|
|
-- miscellaneous
|
|
vim.keymap.set('n', 'K', api.node.show_info_popup, opts)
|
|
vim.keymap.set('n', 'U', api.tree.reload, opts)
|
|
end
|
|
|
|
return {
|
|
'nvim-tree/nvim-tree.lua',
|
|
version = '*',
|
|
dev = true,
|
|
opts = {
|
|
on_attach = my_on_attach,
|
|
view = { signcolumn = 'no' },
|
|
actions = { file_popup = { open_win_config = { border = 'rounded' } } },
|
|
renderer = {
|
|
root_folder_label = false,
|
|
-- root_folder_label = function(path)
|
|
-- return '-- ' .. vim.fn.fnamemodify(path, ':t') .. ' --'
|
|
-- end,
|
|
special_files = {},
|
|
|
|
highlight_hidden = 'all',
|
|
highlight_clipboard = 'all',
|
|
|
|
indent_markers = {
|
|
enable = true,
|
|
inline_arrows = false,
|
|
icons = { corner = '│', none = '│', bottom = ' ' },
|
|
},
|
|
icons = {
|
|
bookmarks_placement = 'after',
|
|
git_placement = 'after',
|
|
show = {
|
|
file = false,
|
|
folder = false,
|
|
folder_arrow = false, -- KEEP FALSE
|
|
git = true,
|
|
modified = false,
|
|
hidden = false,
|
|
diagnostics = false,
|
|
bookmarks = true,
|
|
},
|
|
glyphs = {
|
|
-- default = '•',
|
|
default = ' ',
|
|
symlink = '',
|
|
bookmark = '',
|
|
modified = '●',
|
|
hidden = '',
|
|
folder = {
|
|
arrow_closed = '',
|
|
arrow_open = '',
|
|
default = '▸',
|
|
open = '▾',
|
|
empty = '',
|
|
empty_open = '',
|
|
symlink = '',
|
|
symlink_open = '',
|
|
},
|
|
|
|
git = {
|
|
unstaged = '◇', -- '✗',
|
|
staged = '',
|
|
unmerged = '',
|
|
renamed = '',
|
|
untracked = '',
|
|
deleted = '', -- '',
|
|
ignored = '',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
hijack_cursor = true,
|
|
prefer_startup_root = true,
|
|
update_focused_file = {
|
|
enable = true,
|
|
update_root = { enable = true, ignore_list = {} },
|
|
exclude = false,
|
|
},
|
|
modified = { enable = true, show_on_dirs = true, show_on_open_dirs = true },
|
|
filters = {
|
|
enable = true,
|
|
git_ignored = true,
|
|
dotfiles = false,
|
|
git_clean = false,
|
|
no_buffer = false,
|
|
no_bookmark = false,
|
|
custom = {},
|
|
exclude = {},
|
|
},
|
|
filesystem_watchers = {
|
|
enable = true,
|
|
debounce_delay = 50,
|
|
ignore_dirs = {
|
|
'/.git',
|
|
'/.DS_Store',
|
|
'/build',
|
|
'/dist',
|
|
'/public',
|
|
'/node_modules',
|
|
'/target',
|
|
},
|
|
},
|
|
},
|
|
}
|