initial
This commit is contained in:
commit
8cc59af68e
37 changed files with 72435 additions and 0 deletions
152
lua/plugins/neotree.lua
Normal file
152
lua/plugins/neotree.lua
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
local get_icon = require("astroui").get_icon
|
||||
|
||||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
dependencies = { "MunifTanjim/nui.nvim" },
|
||||
cmd = "Neotree",
|
||||
opts = {
|
||||
auto_clean_after_session_restore = true,
|
||||
close_if_last_window = false,
|
||||
source_selector = {
|
||||
winbar = false,
|
||||
content_layout = "center",
|
||||
},
|
||||
default_component_configs = {
|
||||
indent = {
|
||||
indent_size = 2,
|
||||
padding = 1, -- extra padding on left hand side
|
||||
with_markers = true,
|
||||
indent_marker = "│",
|
||||
last_indent_marker = "└",
|
||||
highlight = "NeoTreeIndentMarker",
|
||||
with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
|
||||
expander_collapsed = "",
|
||||
expander_expanded = "",
|
||||
expander_highlight = "NeoTreeExpander",
|
||||
},
|
||||
modified = { symbol = get_icon "FileModified" },
|
||||
name = {
|
||||
trailing_slash = false,
|
||||
use_git_status_colors = true,
|
||||
highlight = "NeoTreeFileName",
|
||||
},
|
||||
git_status = {
|
||||
symbols = {
|
||||
added = get_icon "GitAdd",
|
||||
deleted = get_icon "GitDelete",
|
||||
modified = get_icon "GitChange",
|
||||
renamed = get_icon "GitRenamed",
|
||||
untracked = "",
|
||||
ignored = get_icon "GitIgnored",
|
||||
unstaged = get_icon "GitUnstaged",
|
||||
staged = get_icon "GitStaged",
|
||||
conflict = get_icon "GitConflict",
|
||||
},
|
||||
},
|
||||
},
|
||||
window = {
|
||||
width = 35,
|
||||
mappings = {
|
||||
["<space>"] = false, -- disable space until we figure out which-key disabling
|
||||
["[b"] = "prev_source",
|
||||
["]b"] = "next_source",
|
||||
o = "open",
|
||||
O = "system_open",
|
||||
h = "parent_or_close",
|
||||
l = "child_or_open",
|
||||
Y = "copy_selector",
|
||||
},
|
||||
},
|
||||
filesystem = {
|
||||
filtered_items = {
|
||||
visible = true, -- when true, they will just be displayed differently than normal items
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = false,
|
||||
hide_hidden = false, -- only works on Windows for hidden files/directories
|
||||
hide_by_name = {
|
||||
--"node_modules"
|
||||
},
|
||||
hide_by_pattern = { -- uses glob style patterns
|
||||
--"*.meta",
|
||||
--"*/src/*/tsconfig.json",
|
||||
"*_templ.go",
|
||||
},
|
||||
always_show = { -- remains visible even if other settings would normally hide it
|
||||
--".gitignored",
|
||||
},
|
||||
never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show
|
||||
--".DS_Store",
|
||||
--"thumbs.db"
|
||||
},
|
||||
never_show_by_pattern = { -- uses glob style patterns
|
||||
--".null-ls_*",
|
||||
},
|
||||
},
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
},
|
||||
hijack_netrw_behavior = "open_current",
|
||||
use_libuv_file_watcher = true,
|
||||
commands = {
|
||||
delete = function(state)
|
||||
local tree = state.tree
|
||||
local node = tree:get_node()
|
||||
local log = require "neo-tree.log"
|
||||
local inputs = require "neo-tree.ui.inputs"
|
||||
|
||||
local msg = string.format("Are you sure you want to delete '%s'?", node.name)
|
||||
local do_delete_ = function(confirmed)
|
||||
if not confirmed then return end
|
||||
vim.fn.system { "gio", "trash", node.path }
|
||||
end
|
||||
|
||||
if node.type == "file" or node.type == "directory" then
|
||||
inputs.confirm(msg, do_delete_)
|
||||
else
|
||||
log.warn "The `delete` command can only be used on files and directories"
|
||||
end
|
||||
end,
|
||||
delete_visual = function(state, selected_nodes)
|
||||
local paths_to_delete = {}
|
||||
local inputs = require "neo-tree.ui.inputs"
|
||||
|
||||
for _, node_to_delete in pairs(selected_nodes) do
|
||||
if node_to_delete.type == "file" or node_to_delete.type == "directory" then
|
||||
table.insert(paths_to_delete, node_to_delete.path)
|
||||
end
|
||||
end
|
||||
|
||||
local msg = "Are you sure you want to delete " .. #paths_to_delete .. " items?"
|
||||
local do_delete_ = function(confirmed)
|
||||
if not confirmed then return end
|
||||
for _, path in pairs(paths_to_delete) do
|
||||
vim.fn.system { "gio", "trash", path }
|
||||
end
|
||||
end
|
||||
inputs.confirm(msg, do_delete_)
|
||||
end,
|
||||
},
|
||||
},
|
||||
buffers = {
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
}, -- This will find and focus the file in the active buffer every
|
||||
-- time the current file is changed while the tree is open.
|
||||
group_empty_dirs = true, -- when true, empty folders will be grouped together
|
||||
show_unloaded = true,
|
||||
window = {
|
||||
mappings = {
|
||||
["bd"] = "buffer_delete",
|
||||
["<bs>"] = "navigate_up",
|
||||
["."] = "set_root",
|
||||
},
|
||||
},
|
||||
},
|
||||
event_handlers = {
|
||||
{
|
||||
event = "neo_tree_buffer_enter",
|
||||
handler = function(_) vim.opt_local.signcolumn = "auto" end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue