84 lines
1.8 KiB
Lua
84 lines
1.8 KiB
Lua
local HEIGHT_RATIO = 0.8
|
|
local WIDTH_RATIO = 0.5
|
|
|
|
return {
|
|
"nvim-tree/nvim-tree.lua",
|
|
dependencies = {
|
|
"nvim-tree/nvim-web-devicons",
|
|
},
|
|
opts = {
|
|
disable_netrw = true,
|
|
hijack_netrw = true,
|
|
hijack_directories = {
|
|
enable = true,
|
|
auto_open = true,
|
|
},
|
|
sort = {
|
|
sorter = "case_sensitive",
|
|
},
|
|
view = {
|
|
-- width = 30,
|
|
float = {
|
|
enable = true,
|
|
open_win_config = function()
|
|
local screen_w = vim.opt.columns:get()
|
|
local screen_h = vim.opt.lines:get() - vim.opt.cmdheight:get()
|
|
local window_w = screen_w * WIDTH_RATIO
|
|
local window_h = screen_h * HEIGHT_RATIO
|
|
local window_w_int = math.floor(window_w)
|
|
local window_h_int = math.floor(window_h)
|
|
local center_x = (screen_w - window_w) / 2
|
|
local center_y = ((vim.opt.lines:get() - window_h) / 2) - vim.opt.cmdheight:get()
|
|
return {
|
|
border = "rounded",
|
|
relative = "editor",
|
|
row = center_y,
|
|
col = center_x,
|
|
width = window_w_int,
|
|
height = window_h_int,
|
|
}
|
|
end,
|
|
},
|
|
width = function()
|
|
return math.floor(vim.opt.columns:get() * WIDTH_RATIO)
|
|
end,
|
|
adaptive_size = true,
|
|
centralize_selection = true,
|
|
},
|
|
git = {
|
|
enable = true,
|
|
},
|
|
renderer = {
|
|
group_empty = true,
|
|
highlight_git = true,
|
|
icons = {
|
|
show = {
|
|
git = true,
|
|
},
|
|
},
|
|
},
|
|
filters = {
|
|
dotfiles = false,
|
|
},
|
|
sync_root_with_cwd = true,
|
|
respect_buf_cwd = true,
|
|
update_focused_file = {
|
|
enable = true,
|
|
update_root = true,
|
|
},
|
|
},
|
|
keys = {
|
|
{
|
|
"<C-c>",
|
|
function()
|
|
local api = require("nvim-tree.api")
|
|
local global_cwd = vim.fn.getcwd(-1, -1)
|
|
api.tree.change_root(global_cwd)
|
|
end,
|
|
noremap = true,
|
|
silent = true,
|
|
desc = "Change tree root to CWD",
|
|
},
|
|
{ "<F3>", ":NvimTreeToggle<CR>", noremap = true, silent = true, desc = "Toggle file tree" },
|
|
},
|
|
}
|