summaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/tree.lua
diff options
context:
space:
mode:
author2026-02-22 13:02:08 +0300
committer2026-02-22 15:28:51 +0300
commitad175cdb4045fbe8fecb686c871b481e312d43dd (patch)
tree533b63cdadd138d94ff3247fa5faabea95dfd5a6 /config/nvim/lua/plugins/tree.lua
parentfixes zshrc (diff)
downloaddotfiles-ad175cdb4045fbe8fecb686c871b481e312d43dd.tar.gz
dotfiles-ad175cdb4045fbe8fecb686c871b481e312d43dd.tar.bz2
dotfiles-ad175cdb4045fbe8fecb686c871b481e312d43dd.tar.xz
dotfiles-ad175cdb4045fbe8fecb686c871b481e312d43dd.zip
nvim configs
Diffstat (limited to '')
-rw-r--r--config/nvim/lua/plugins/tree.lua53
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
+}