72 lines
1.5 KiB
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,
|
|
}
|