commit 1f2e28d4766e661435e423f6dbae62b61a69b7ce
parent 6895e5259eea5af37556139dd9f7a974e5001041
Author: Ali Rezvani <3788964+rzvxa@users.noreply.github.com>
Date: Sun, 3 Sep 2023 07:15:35 +0330
Add horizontal position options to `g:NERDTreeWinPos` (#1363)
Diffstat:
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/doc/NERDTree.txt b/doc/NERDTree.txt
@@ -1128,7 +1128,7 @@ setting is used.
------------------------------------------------------------------------------
*NERDTreeWinPos*
-Values: "left" or "right"
+Values: "left", "right", "top" or "bottom"
Default: "left".
This setting is used to determine where NERDTree window is placed on the
@@ -1138,6 +1138,13 @@ This setting makes it possible to use two different explorer plugins
simultaneously. For example, you could have the taglist plugin on the left of
the window and the NERDTree on the right.
+When setting this variable to "top" or "bottom" make sure to also change the
+|NERDTreeWinSize| to a more reasonable size.
+
+For example:
+>
+ let g:NERDTreeWinSize = 15
+<
------------------------------------------------------------------------------
*NERDTreeWinSize*
Values: a positive integer.
diff --git a/lib/nerdtree/creator.vim b/lib/nerdtree/creator.vim
@@ -182,16 +182,17 @@ endfunction
" Initialize the NERDTree window. Open the window, size it properly, set all
" local options, etc.
function! s:Creator._createTreeWin()
- let l:splitLocation = g:NERDTreeWinPos ==# 'left' ? 'topleft ' : 'botright '
+ let l:splitLocation = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'top' ? 'topleft ' : 'botright '
+ let l:splitDirection = g:NERDTreeWinPos ==# 'left' || g:NERDTreeWinPos ==# 'right' ? 'vertical' : ''
let l:splitSize = g:NERDTreeWinSize
if !g:NERDTree.ExistsForTab()
let t:NERDTreeBufName = self._nextBufferName()
- silent! execute l:splitLocation . 'vertical ' . l:splitSize . ' new'
+ silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' new'
silent! execute 'edit ' . t:NERDTreeBufName
- silent! execute 'vertical resize '. l:splitSize
+ silent! execute l:splitDirection . ' resize '. l:splitSize
else
- silent! execute l:splitLocation . 'vertical ' . l:splitSize . ' split'
+ silent! execute l:splitLocation . l:splitDirection . ' ' . l:splitSize . ' split'
silent! execute 'buffer ' . t:NERDTreeBufName
endif