Files
dotfiles/.config/nvim/lua/plugins/neo-tree.lua

72 lines
1.5 KiB
Lua

return {
"nvim-neo-tree/neo-tree.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
config = function()
local tree = require("neo-tree")
tree.setup({
clipboard = {
sync = "universal",
},
document_symbols = {
custom_kinds = {},
},
window = {
width = 30,
mappings = {
["l"] = "open",
["h"] = "close_node",
["<Right>"] = "open",
["<Left>"] = "close_node",
["C"] = "convert_to_directory",
["F"] = "toggle_hidden",
["/"] = "fuzzy_search",
},
},
filesystem = {
filtered_items = {
visible = false,
show_hidden_count = true,
hide_dotfiles = false,
hide_gitignored = true,
hide_by_name = {
".git",
".venv",
".copier-answers.yml",
".prettierrc.json",
"package-lock.json",
},
never_show = {},
},
},
commands = {
convert_to_directory = function(state)
local node = state.tree:get_node()
local path = node.path
if node.type ~= "file" then
print("Node is not a file")
return
end
local confirm = vim.fn.confirm("Convert " .. node.name .. " to directory?", "&Yes\n&No", 2)
if confirm ~= 1 then
return
end
vim.fn.delete(path)
vim.fn.mkdir(path, "p")
require("neo-tree.sources.manager").refresh(state.name)
print("Converted to directory: " .. path)
end,
},
})
vim.keymap.set("n", "<F2>", "<CMD>Neotree toggle<CR>")
end,
}