diff options
Diffstat (limited to '')
| -rw-r--r-- | config/nvim/lua/plugins/tree.lua | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/config/nvim/lua/plugins/tree.lua b/config/nvim/lua/plugins/tree.lua index e002f49..18f217b 100644 --- a/config/nvim/lua/plugins/tree.lua +++ b/config/nvim/lua/plugins/tree.lua @@ -1,23 +1,16 @@ -local WIDTH_RATIO = 0.25 - +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, + disable_netrw = false, hijack_netrw = true, sort = { sorter = "case_sensitive", }, - view = { - width = function() - return math.floor(vim.opt.columns:get() * WIDTH_RATIO) - end, - adaptive_size = true, - centralize_selection = true, - }, git = { enable = true, ignore = false, @@ -37,6 +30,44 @@ return { update_focused_file = { enable = true, }, + on_attach = function(bufnr) + local api = require("nvim-tree.api") + api.config.mappings.default_on_attach(bufnr) + vim.api.nvim_set_hl(0, "NvimTreeNormal", { bg = vim.o.background == "dark" and "#1c1c1f" or "#e7e7e7" }) + end, + view = { + 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() + local border_bg = vim.o.background == "dark" and "#1c1c1f" or "#e7e7e7" + local border_fg = vim.o.background == "dark" and "#333333" or "#999999" + -- Force highlight for border and nvim-tree background + vim.api.nvim_set_hl(0, "FloatBorder", { fg = border_fg, bg = border_bg }) + vim.api.nvim_set_hl(0, "NvimTreeFloatBorder", { fg = border_fg, bg = border_bg }) + vim.api.nvim_set_hl(0, "NvimTreeNormal", { bg = border_bg }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = border_bg }) + 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, + }, }, keys = { { @@ -54,4 +85,4 @@ return { desc = "Toggle file tree", }, }, -}
\ No newline at end of file +} |
