neovim/lua/plugins/filetree.lua

80 lines
2.7 KiB
Lua

return {
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons",
},
keys = {
{
"<leader>t",
function()
require("neo-tree.command").execute({
toggle = true,
source = "filesystem",
position = "left",
})
end,
desc = "Buffers (root dir)",
},
},
config = function()
-- automatically close file tree if file is selected
require("neo-tree").setup({
close_if_last_window = true,
event_handlers = {
{
event = "file_open_requested",
handler = function()
require("neo-tree.command").execute({ action = "close" })
end,
},
-- makes it so quitting inside buffer quits all buffers
{
event = "neo_tree_buffer_enter",
handler = function()
vim.cmd("cabbrev <buffer> q qall")
end,
},
},
})
-- auto open file tree on empty buffer or directory
vim.api.nvim_create_autocmd("VimEnter", {
callback = function(data)
local is_directory = vim.fn.isdirectory(data.file) == 1
local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
if is_directory or no_name then
require("neo-tree.command").execute({
action = "focus",
source = "filesystem",
position = "left",
})
end
end,
})
end,
lazy = false, -- neo-tree lazy loads itself
},
{
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
event = "VimEnter",
dependencies = { "nvim-lua/plenary.nvim"},
opts = {
defaults = {
layout_config = {
horizontal = { width = 0.9 }
},
},
},
keys = {
{ "<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find files" },
{ "<leader>s", "<cmd>Telescope spell_suggest<cr>", desc = "Spelling suggestions" },
},
}
}