-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
193 additions
and
188 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,200 +1,205 @@ | ||
local function on_attach(bufnr) | ||
local api = require("nvim-tree.api") | ||
local api = require("nvim-tree.api") | ||
|
||
local function opts(desc) | ||
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } | ||
end | ||
local function opts(desc) | ||
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } | ||
end | ||
|
||
-- Default mappings. Feel free to modify or remove as you wish. | ||
-- | ||
-- BEGIN_DEFAULT_ON_ATTACH | ||
vim.keymap.set("n", "<C-]>", api.tree.change_root_to_node, opts("CD")) | ||
vim.keymap.set("n", "<C-e>", api.node.open.replace_tree_buffer, opts("Open: In Place")) | ||
vim.keymap.set("n", "<C-k>", api.node.show_info_popup, opts("Info")) | ||
vim.keymap.set("n", "<C-r>", api.fs.rename_sub, opts("Rename: Omit Filename")) | ||
vim.keymap.set("n", "<C-t>", api.node.open.tab, opts("Open: New Tab")) | ||
vim.keymap.set("n", "<C-v>", api.node.open.vertical, opts("Open: Vertical Split")) | ||
vim.keymap.set("n", "<C-x>", api.node.open.horizontal, opts("Open: Horizontal Split")) | ||
vim.keymap.set("n", "<BS>", api.node.navigate.parent_close, opts("Close Directory")) | ||
vim.keymap.set("n", "<CR>", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "<Tab>", api.node.open.preview, opts("Open Preview")) | ||
vim.keymap.set("n", ">", api.node.navigate.sibling.next, opts("Next Sibling")) | ||
vim.keymap.set("n", "<", api.node.navigate.sibling.prev, opts("Previous Sibling")) | ||
vim.keymap.set("n", ".", api.node.run.cmd, opts("Run Command")) | ||
vim.keymap.set("n", "-", api.tree.change_root_to_parent, opts("Up")) | ||
vim.keymap.set("n", "a", api.fs.create, opts("Create")) | ||
vim.keymap.set("n", "bmv", api.marks.bulk.move, opts("Move Bookmarked")) | ||
vim.keymap.set("n", "B", api.tree.toggle_no_buffer_filter, opts("Toggle No Buffer")) | ||
vim.keymap.set("n", "c", api.fs.copy.node, opts("Copy")) | ||
vim.keymap.set("n", "C", api.tree.toggle_git_clean_filter, opts("Toggle Git Clean")) | ||
vim.keymap.set("n", "[c", api.node.navigate.git.prev, opts("Prev Git")) | ||
vim.keymap.set("n", "]c", api.node.navigate.git.next, opts("Next Git")) | ||
vim.keymap.set("n", "d", api.fs.remove, opts("Delete")) | ||
vim.keymap.set("n", "D", api.fs.trash, opts("Trash")) | ||
vim.keymap.set("n", "E", api.tree.expand_all, opts("Expand All")) | ||
vim.keymap.set("n", "e", api.fs.rename_basename, opts("Rename: Basename")) | ||
vim.keymap.set("n", "]e", api.node.navigate.diagnostics.next, opts("Next Diagnostic")) | ||
vim.keymap.set("n", "[e", api.node.navigate.diagnostics.prev, opts("Prev Diagnostic")) | ||
vim.keymap.set("n", "F", api.live_filter.clear, opts("Clean Filter")) | ||
vim.keymap.set("n", "f", api.live_filter.start, opts("Filter")) | ||
vim.keymap.set("n", "g?", api.tree.toggle_help, opts("Help")) | ||
vim.keymap.set("n", "gy", api.fs.copy.absolute_path, opts("Copy Absolute Path")) | ||
vim.keymap.set("n", "H", api.tree.toggle_hidden_filter, opts("Toggle Dotfiles")) | ||
vim.keymap.set("n", "I", api.tree.toggle_gitignore_filter, opts("Toggle Git Ignore")) | ||
vim.keymap.set("n", "J", api.node.navigate.sibling.last, opts("Last Sibling")) | ||
vim.keymap.set("n", "K", api.node.navigate.sibling.first, opts("First Sibling")) | ||
vim.keymap.set("n", "m", api.marks.toggle, opts("Toggle Bookmark")) | ||
vim.keymap.set("n", "o", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "O", api.node.open.no_window_picker, opts("Open: No Window Picker")) | ||
vim.keymap.set("n", "p", api.fs.paste, opts("Paste")) | ||
vim.keymap.set("n", "P", api.node.navigate.parent, opts("Parent Directory")) | ||
vim.keymap.set("n", "q", api.tree.close, opts("Close")) | ||
vim.keymap.set("n", "r", api.fs.rename, opts("Rename")) | ||
vim.keymap.set("n", "R", api.tree.reload, opts("Refresh")) | ||
vim.keymap.set("n", "s", api.node.run.system, opts("Run System")) | ||
vim.keymap.set("n", "S", api.tree.search_node, opts("Search")) | ||
vim.keymap.set("n", "U", api.tree.toggle_custom_filter, opts("Toggle Hidden")) | ||
vim.keymap.set("n", "W", api.tree.collapse_all, opts("Collapse")) | ||
vim.keymap.set("n", "x", api.fs.cut, opts("Cut")) | ||
vim.keymap.set("n", "y", api.fs.copy.filename, opts("Copy Name")) | ||
vim.keymap.set("n", "Y", api.fs.copy.relative_path, opts("Copy Relative Path")) | ||
vim.keymap.set("n", "<2-LeftMouse>", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "<2-RightMouse>", api.tree.change_root_to_node, opts("CD")) | ||
-- END_DEFAULT_ON_ATTACH | ||
-- Default mappings. Feel free to modify or remove as you wish. | ||
-- | ||
-- BEGIN_DEFAULT_ON_ATTACH | ||
vim.keymap.set("n", "<C-]>", api.tree.change_root_to_node, opts("CD")) | ||
vim.keymap.set("n", "<C-e>", api.node.open.replace_tree_buffer, opts("Open: In Place")) | ||
vim.keymap.set("n", "<C-k>", api.node.show_info_popup, opts("Info")) | ||
vim.keymap.set("n", "<C-r>", api.fs.rename_sub, opts("Rename: Omit Filename")) | ||
vim.keymap.set("n", "<C-t>", api.node.open.tab, opts("Open: New Tab")) | ||
vim.keymap.set("n", "<C-v>", api.node.open.vertical, opts("Open: Vertical Split")) | ||
vim.keymap.set("n", "<C-x>", api.node.open.horizontal, opts("Open: Horizontal Split")) | ||
vim.keymap.set("n", "<BS>", api.node.navigate.parent_close, opts("Close Directory")) | ||
vim.keymap.set("n", "<CR>", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "<Tab>", api.node.open.preview, opts("Open Preview")) | ||
vim.keymap.set("n", ">", api.node.navigate.sibling.next, opts("Next Sibling")) | ||
vim.keymap.set("n", "<", api.node.navigate.sibling.prev, opts("Previous Sibling")) | ||
vim.keymap.set("n", ".", api.node.run.cmd, opts("Run Command")) | ||
vim.keymap.set("n", "-", api.tree.change_root_to_parent, opts("Up")) | ||
vim.keymap.set("n", "a", api.fs.create, opts("Create")) | ||
vim.keymap.set("n", "bmv", api.marks.bulk.move, opts("Move Bookmarked")) | ||
vim.keymap.set("n", "B", api.tree.toggle_no_buffer_filter, opts("Toggle No Buffer")) | ||
vim.keymap.set("n", "c", api.fs.copy.node, opts("Copy")) | ||
vim.keymap.set("n", "C", api.tree.toggle_git_clean_filter, opts("Toggle Git Clean")) | ||
vim.keymap.set("n", "[c", api.node.navigate.git.prev, opts("Prev Git")) | ||
vim.keymap.set("n", "]c", api.node.navigate.git.next, opts("Next Git")) | ||
vim.keymap.set("n", "d", api.fs.remove, opts("Delete")) | ||
vim.keymap.set("n", "D", api.fs.trash, opts("Trash")) | ||
vim.keymap.set("n", "E", api.tree.expand_all, opts("Expand All")) | ||
vim.keymap.set("n", "e", api.fs.rename_basename, opts("Rename: Basename")) | ||
vim.keymap.set("n", "]e", api.node.navigate.diagnostics.next, opts("Next Diagnostic")) | ||
vim.keymap.set("n", "[e", api.node.navigate.diagnostics.prev, opts("Prev Diagnostic")) | ||
vim.keymap.set("n", "F", api.live_filter.clear, opts("Clean Filter")) | ||
vim.keymap.set("n", "f", api.live_filter.start, opts("Filter")) | ||
vim.keymap.set("n", "g?", api.tree.toggle_help, opts("Help")) | ||
vim.keymap.set("n", "gy", api.fs.copy.absolute_path, opts("Copy Absolute Path")) | ||
vim.keymap.set("n", "H", api.tree.toggle_hidden_filter, opts("Toggle Dotfiles")) | ||
vim.keymap.set("n", "I", api.tree.toggle_gitignore_filter, opts("Toggle Git Ignore")) | ||
vim.keymap.set("n", "J", api.node.navigate.sibling.last, opts("Last Sibling")) | ||
vim.keymap.set("n", "K", api.node.navigate.sibling.first, opts("First Sibling")) | ||
vim.keymap.set("n", "m", api.marks.toggle, opts("Toggle Bookmark")) | ||
vim.keymap.set("n", "o", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "O", api.node.open.no_window_picker, opts("Open: No Window Picker")) | ||
vim.keymap.set("n", "p", api.fs.paste, opts("Paste")) | ||
vim.keymap.set("n", "P", api.node.navigate.parent, opts("Parent Directory")) | ||
vim.keymap.set("n", "q", api.tree.close, opts("Close")) | ||
vim.keymap.set("n", "r", api.fs.rename, opts("Rename")) | ||
vim.keymap.set("n", "R", api.tree.reload, opts("Refresh")) | ||
vim.keymap.set("n", "s", api.node.run.system, opts("Run System")) | ||
vim.keymap.set("n", "S", api.tree.search_node, opts("Search")) | ||
vim.keymap.set("n", "U", api.tree.toggle_custom_filter, opts("Toggle Hidden")) | ||
vim.keymap.set("n", "W", api.tree.collapse_all, opts("Collapse")) | ||
vim.keymap.set("n", "x", api.fs.cut, opts("Cut")) | ||
vim.keymap.set("n", "y", api.fs.copy.filename, opts("Copy Name")) | ||
vim.keymap.set("n", "Y", api.fs.copy.relative_path, opts("Copy Relative Path")) | ||
vim.keymap.set("n", "<2-LeftMouse>", api.node.open.edit, opts("Open")) | ||
vim.keymap.set("n", "<2-RightMouse>", api.tree.change_root_to_node, opts("CD")) | ||
-- END_DEFAULT_ON_ATTACH | ||
|
||
-- Mappings migrated from view.mappings.list | ||
-- | ||
-- You will need to insert "your code goes here" for any mappings with a custom action_cb | ||
vim.keymap.set("n", "u", api.tree.change_root_to_parent, opts("Up")) | ||
-- Mappings migrated from view.mappings.list | ||
-- | ||
-- You will need to insert "your code goes here" for any mappings with a custom action_cb | ||
vim.keymap.set("n", "u", api.tree.change_root_to_parent, opts("Up")) | ||
end | ||
return { | ||
"nvim-tree/nvim-tree.lua", | ||
dependencies = { "nvim-tree/nvim-web-devicons" }, | ||
config = function() | ||
local nvimtree = require("nvim-tree") | ||
"nvim-tree/nvim-tree.lua", | ||
dependencies = { "nvim-tree/nvim-web-devicons" }, | ||
config = function() | ||
local nvimtree = require("nvim-tree") | ||
|
||
-- recommended settings from nvim-tree documentation | ||
vim.g.loaded_netrw = 1 | ||
vim.g.loaded_netrwPlugin = 1 | ||
-- recommended settings from nvim-tree documentation | ||
vim.g.loaded_netrw = 1 | ||
vim.g.loaded_netrwPlugin = 1 | ||
|
||
-- change color for arrows in tree to light blue | ||
vim.cmd([[ highlight NvimTreeFolderArrowClosed guifg=#3FC5FF ]]) | ||
vim.cmd([[ highlight NvimTreeFolderArrowOpen guifg=#3FC5FF ]]) | ||
-- change color for arrows in tree to light blue | ||
vim.cmd([[ highlight NvimTreeFolderArrowClosed guifg=#3FC5FF ]]) | ||
vim.cmd([[ highlight NvimTreeFolderArrowOpen guifg=#3FC5FF ]]) | ||
|
||
-- configure nvim-tree | ||
nvimtree.setup({ | ||
on_attach = on_attach, | ||
disable_netrw = true, | ||
hijack_netrw = true, | ||
open_on_tab = false, | ||
hijack_cursor = false, | ||
update_cwd = false, | ||
actions = { | ||
open_file = { | ||
quit_on_open = false, | ||
resize_window = false, | ||
window_picker = { | ||
enable = false, | ||
}, | ||
}, | ||
}, | ||
tab = { | ||
sync = { | ||
open = true, | ||
close = true, | ||
ignore = {}, | ||
}, | ||
}, | ||
hijack_directories = { | ||
enable = true, | ||
auto_open = true, | ||
}, | ||
git = { | ||
enable = true, | ||
ignore = false, | ||
}, | ||
filesystem_watchers = { | ||
enable = true, | ||
debounce_delay = 50, | ||
}, | ||
sort_by = "case_sensitive", | ||
view = { | ||
width = 30, | ||
signcolumn = "yes", | ||
-- mappings = { | ||
-- list = { | ||
-- { key = "u", action = "dir_up" }, | ||
-- }, | ||
-- }, | ||
}, | ||
diagnostics = { | ||
enable = false, | ||
icons = { | ||
hint = "", | ||
info = "", | ||
warning = "", | ||
error = "", | ||
}, | ||
}, | ||
update_focused_file = { | ||
enable = true, | ||
update_cwd = false, | ||
ignore_list = {}, | ||
}, | ||
renderer = { | ||
group_empty = true, | ||
highlight_modified = "name", | ||
icons = { | ||
webdev_colors = true, | ||
git_placement = "before", | ||
modified_placement = "after", | ||
padding = " ", | ||
symlink_arrow = " ➛ ", | ||
show = { | ||
file = true, | ||
folder = true, | ||
folder_arrow = true, | ||
git = true, | ||
modified = false, | ||
}, | ||
glyphs = { | ||
default = "", | ||
symlink = "", | ||
bookmark = "", | ||
modified = "●", | ||
folder = { | ||
arrow_closed = "", | ||
arrow_open = "", | ||
default = "", | ||
open = "", | ||
empty = "", | ||
empty_open = "", | ||
symlink = "", | ||
symlink_open = "", | ||
}, | ||
git = { | ||
unstaged = "✗", | ||
staged = "✓", | ||
unmerged = "", | ||
renamed = "➜", | ||
untracked = "◌", | ||
-- deleted = "", | ||
ignored = "◌", | ||
}, | ||
}, | ||
}, | ||
}, | ||
filters = { | ||
dotfiles = false, | ||
}, | ||
}) | ||
-- configure nvim-tree | ||
nvimtree.setup({ | ||
on_attach = on_attach, | ||
disable_netrw = true, | ||
hijack_netrw = true, | ||
open_on_tab = false, | ||
hijack_cursor = false, | ||
update_cwd = false, | ||
actions = { | ||
open_file = { | ||
quit_on_open = false, | ||
resize_window = false, | ||
window_picker = { | ||
enable = false, | ||
}, | ||
}, | ||
}, | ||
tab = { | ||
sync = { | ||
open = true, | ||
close = true, | ||
ignore = {}, | ||
}, | ||
}, | ||
hijack_directories = { | ||
enable = true, | ||
auto_open = true, | ||
}, | ||
git = { | ||
enable = true, | ||
ignore = true, | ||
}, | ||
filesystem_watchers = { | ||
enable = true, | ||
debounce_delay = 50, | ||
}, | ||
sort_by = "case_sensitive", | ||
view = { | ||
width = 30, | ||
signcolumn = "yes", | ||
-- mappings = { | ||
-- list = { | ||
-- { key = "u", action = "dir_up" }, | ||
-- }, | ||
-- }, | ||
}, | ||
diagnostics = { | ||
enable = false, | ||
icons = { | ||
hint = "", | ||
info = "", | ||
warning = "", | ||
error = "", | ||
}, | ||
}, | ||
update_focused_file = { | ||
enable = true, | ||
update_cwd = false, | ||
ignore_list = {}, | ||
}, | ||
renderer = { | ||
group_empty = true, | ||
highlight_modified = "name", | ||
icons = { | ||
webdev_colors = true, | ||
git_placement = "before", | ||
modified_placement = "after", | ||
padding = " ", | ||
symlink_arrow = " ➛ ", | ||
show = { | ||
file = true, | ||
folder = true, | ||
folder_arrow = true, | ||
git = true, | ||
modified = false, | ||
}, | ||
glyphs = { | ||
default = "", | ||
symlink = "", | ||
bookmark = "", | ||
modified = "●", | ||
folder = { | ||
arrow_closed = "", | ||
arrow_open = "", | ||
default = "", | ||
open = "", | ||
empty = "", | ||
empty_open = "", | ||
symlink = "", | ||
symlink_open = "", | ||
}, | ||
git = { | ||
unstaged = "✗", | ||
staged = "✓", | ||
unmerged = "", | ||
renamed = "➜", | ||
untracked = "◌", | ||
-- deleted = "", | ||
ignored = "◌", | ||
}, | ||
}, | ||
}, | ||
}, | ||
filters = { | ||
dotfiles = false, | ||
}, | ||
}) | ||
|
||
-- set keymaps | ||
local keymap = vim.keymap -- for conciseness | ||
-- set keymaps | ||
local keymap = vim.keymap -- for conciseness | ||
|
||
keymap.set("n", "<C-g>", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle file explorer" }) -- toggle file explorer | ||
keymap.set("n", "<leader>ef", "<cmd>NvimTreeFindFileToggle<CR>", { desc = "Toggle file explorer on current file" }) -- toggle file explorer on current file | ||
keymap.set("n", "<leader>ec", "<cmd>NvimTreeCollapse<CR>", { desc = "Collapse file explorer" }) -- collapse file explorer | ||
keymap.set("n", "<leader>er", "<cmd>NvimTreeRefresh<CR>", { desc = "Refresh file explorer" }) -- refresh file explorer | ||
end, | ||
keymap.set("n", "<C-g>", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle file explorer" }) -- toggle file explorer | ||
keymap.set( | ||
"n", | ||
"<leader>ef", | ||
"<cmd>NvimTreeFindFileToggle<CR>", | ||
{ desc = "Toggle file explorer on current file" } | ||
) -- toggle file explorer on current file | ||
keymap.set("n", "<leader>ec", "<cmd>NvimTreeCollapse<CR>", { desc = "Collapse file explorer" }) -- collapse file explorer | ||
keymap.set("n", "<leader>er", "<cmd>NvimTreeRefresh<CR>", { desc = "Refresh file explorer" }) -- refresh file explorer | ||
end, | ||
} |