From 738da050a80eb7b2b325029b4f5f764bd0e2e227 Mon Sep 17 00:00:00 2001 From: Andreas Bissinger Date: Fri, 4 Mar 2022 10:29:46 +0100 Subject: [PATCH 1/3] add feature to increase/decrease size --- README.md | 9 ++++++++- doc/nvim-tree-lua.txt | 11 +++++++++++ lua/nvim-tree.lua | 4 ++++ lua/nvim-tree/view.lua | 12 ++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 49937ce7b9e..c23c98eb415 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,14 @@ let g:nvim_tree_icons = { nnoremap :NvimTreeToggle nnoremap r :NvimTreeRefresh nnoremap n :NvimTreeFindFile -" NvimTreeOpen, NvimTreeClose, NvimTreeFocus, NvimTreeFindFileToggle, and NvimTreeResize are also available if you need them +" More available functions: +" NvimTreeOpen +" NvimTreeClose +" NvimTreeFocus +" NvimTreeFindFileToggle +" NvimTreeResize +" NvimTreeIncreaseSize +" NvimTreeDecreaseSize set termguicolors " this variable must be enabled for colors to be applied properly diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 5ac6a81645d..abd40a84d10 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -63,6 +63,17 @@ Print clipboard content for both cut and copy Resize the NvimTree window to the given size. Example: `:NvimTreeResize 50` resizes the window to the width of 50. +|:NvimTreeIncreaseSize| *:NvimTreeIncreaseSize* + +Increases the NvimTree window size. Example: `:NvimTreeIncrease 10` +increases the window with the value 10. + +|:NvimTreeDecreaseSize| *:NvimTreeDecreaseSize* + +Decreases the NvimTree window size. Example: `:NvimTreeDecreaseSize 10` +Decreases the window with the value 10. + + ============================================================================== SETUP *nvim-tree.setup* diff --git a/lua/nvim-tree.lua b/lua/nvim-tree.lua index 9a41ac1713b..05c50f34003 100644 --- a/lua/nvim-tree.lua +++ b/lua/nvim-tree.lua @@ -128,6 +128,8 @@ function M.find_file(with_open, bufnr) end M.resize = view.resize +M.increase_size = view.increase_size +M.decrease_size = view.decrease_size local function should_abort_auto_close() local buf = api.nvim_get_current_buf() @@ -277,6 +279,8 @@ local function setup_vim_commands() command! NvimTreeFindFile lua require'nvim-tree'.find_file(true) command! NvimTreeFindFileToggle lua require'nvim-tree'.toggle(true) command! -nargs=1 NvimTreeResize lua require'nvim-tree'.resize() + command! -nargs=1 NvimTreeIncreaseSize lua require'nvim-tree'.increase_size() + command! -nargs=1 NvimTreeDecreaseSize lua require'nvim-tree'.decrease_size() ]] end diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index bd0f20b35cf..989a84c3e0c 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -195,6 +195,18 @@ function M.resize(size) end end +function M.increase_size(value) + if value then + M.resize(M.View.width + value) + end +end + +function M.decrease_size(value) + if value then + M.resize(M.View.width - value) + end +end + function M.reposition_window() local move_to = move_tbl[M.View.side] a.nvim_command("wincmd "..move_to) From 14abd4143bae5318b4a7896a5d92269e9e915e98 Mon Sep 17 00:00:00 2001 From: Andreas Bissinger Date: Sat, 5 Mar 2022 10:32:36 +0100 Subject: [PATCH 2/3] make resize function able to handle increase/decrease functionality --- README.md | 2 -- doc/nvim-tree-lua.txt | 15 ++++----------- lua/nvim-tree.lua | 6 +----- lua/nvim-tree/utils.lua | 6 ++++++ lua/nvim-tree/view.lua | 31 +++++++++++++++++++------------ 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index c23c98eb415..f0f8260d787 100644 --- a/README.md +++ b/README.md @@ -96,8 +96,6 @@ nnoremap n :NvimTreeFindFile " NvimTreeFocus " NvimTreeFindFileToggle " NvimTreeResize -" NvimTreeIncreaseSize -" NvimTreeDecreaseSize set termguicolors " this variable must be enabled for colors to be applied properly diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index abd40a84d10..d0e1794700d 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -61,17 +61,10 @@ Print clipboard content for both cut and copy |:NvimTreeResize| *:NvimTreeResize* Resize the NvimTree window to the given size. Example: `:NvimTreeResize 50` -resizes the window to the width of 50. - -|:NvimTreeIncreaseSize| *:NvimTreeIncreaseSize* - -Increases the NvimTree window size. Example: `:NvimTreeIncrease 10` -increases the window with the value 10. - -|:NvimTreeDecreaseSize| *:NvimTreeDecreaseSize* - -Decreases the NvimTree window size. Example: `:NvimTreeDecreaseSize 10` -Decreases the window with the value 10. +resizes the window to the width of 50. If the size starts with "+" or "-" it +adds or removes the given value to the current window width. +Example `:NvimTreeResize -20` removes the value 20 from the current width. And +`:NvimTreeResize +20` adds the value 20 to the current width. ============================================================================== diff --git a/lua/nvim-tree.lua b/lua/nvim-tree.lua index 05c50f34003..fb781cd67b0 100644 --- a/lua/nvim-tree.lua +++ b/lua/nvim-tree.lua @@ -128,8 +128,6 @@ function M.find_file(with_open, bufnr) end M.resize = view.resize -M.increase_size = view.increase_size -M.decrease_size = view.decrease_size local function should_abort_auto_close() local buf = api.nvim_get_current_buf() @@ -278,9 +276,7 @@ local function setup_vim_commands() command! NvimTreeClipboard lua require'nvim-tree.actions.copy-paste'.print_clipboard() command! NvimTreeFindFile lua require'nvim-tree'.find_file(true) command! NvimTreeFindFileToggle lua require'nvim-tree'.toggle(true) - command! -nargs=1 NvimTreeResize lua require'nvim-tree'.resize() - command! -nargs=1 NvimTreeIncreaseSize lua require'nvim-tree'.increase_size() - command! -nargs=1 NvimTreeDecreaseSize lua require'nvim-tree'.decrease_size() + command! -nargs=1 NvimTreeResize lua require'nvim-tree'.resize("") ]] end diff --git a/lua/nvim-tree/utils.lua b/lua/nvim-tree/utils.lua index e0772c8cff1..cb2b8a7ba68 100644 --- a/lua/nvim-tree/utils.lua +++ b/lua/nvim-tree/utils.lua @@ -245,4 +245,10 @@ function M.table_create_missing(tbl, sub) return t end +-- @param value string +-- @return string +function M.trim_string(value) + return (string.gsub(value, "^%s*(.-)%s*$", "%1")) +end + return M diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index 989a84c3e0c..f24e16327aa 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -1,4 +1,5 @@ local a = vim.api +local utils = require'nvim-tree.utils' local M = {} @@ -175,6 +176,24 @@ function M.open(options) end function M.resize(size) + if type(size) == "string" then + size = utils.trim_string(size) + local first_char = size:sub(1, 1) + size = tonumber(size) + + if first_char == "+" or first_char == "-" then + size = M.View.width + size + end + end + + if type(size) ~= "number" then + return + end + + if size <= 0 then + return + end + if size then M.View.width = size M.View.height = size @@ -195,18 +214,6 @@ function M.resize(size) end end -function M.increase_size(value) - if value then - M.resize(M.View.width + value) - end -end - -function M.decrease_size(value) - if value then - M.resize(M.View.width - value) - end -end - function M.reposition_window() local move_to = move_tbl[M.View.side] a.nvim_command("wincmd "..move_to) From 7a69bee4b4aa15ebe0d0db07fd171a2bee0460a6 Mon Sep 17 00:00:00 2001 From: Andreas Bissinger Date: Sat, 5 Mar 2022 14:31:52 +0100 Subject: [PATCH 3/3] use vim.trim --- lua/nvim-tree/utils.lua | 6 ------ lua/nvim-tree/view.lua | 3 +-- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/lua/nvim-tree/utils.lua b/lua/nvim-tree/utils.lua index cb2b8a7ba68..e0772c8cff1 100644 --- a/lua/nvim-tree/utils.lua +++ b/lua/nvim-tree/utils.lua @@ -245,10 +245,4 @@ function M.table_create_missing(tbl, sub) return t end --- @param value string --- @return string -function M.trim_string(value) - return (string.gsub(value, "^%s*(.-)%s*$", "%1")) -end - return M diff --git a/lua/nvim-tree/view.lua b/lua/nvim-tree/view.lua index f24e16327aa..e0333ecaf88 100644 --- a/lua/nvim-tree/view.lua +++ b/lua/nvim-tree/view.lua @@ -1,5 +1,4 @@ local a = vim.api -local utils = require'nvim-tree.utils' local M = {} @@ -177,7 +176,7 @@ end function M.resize(size) if type(size) == "string" then - size = utils.trim_string(size) + size = vim.trim(size) local first_char = size:sub(1, 1) size = tonumber(size)