commit 5f4a0027870008f178f1c0406a00c9d95947b642
parent c34968d2827b9b2811dc7470f7858bba22ab35fa
Author: Martin Grenfell <martin_grenfell@msn.com>
Date: Sun, 29 Jun 2008 19:43:50 +1200
combine NERDTreeSplitVertical and NERDTreeWinPos
instead of using 2 options to specify the position of the tree, just use
NERDTreeWinPos and set it to "left", "right", "top", "bottom"
Diffstat:
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -73,8 +73,7 @@ endif
"once here
let s:NERDTreeSortStarIndex = index(g:NERDTreeSortOrder, '*')
-call s:InitVariable("g:NERDTreeSplitVertical", 1)
-call s:InitVariable("g:NERDTreeWinPos", 1)
+call s:InitVariable("g:NERDTreeWinPos", "left")
call s:InitVariable("g:NERDTreeWinSize", 31)
let s:running_windows = has("win16") || has("win32") || has("win64")
@@ -1719,8 +1718,8 @@ endfunction
"options etc
function! s:CreateTreeWin()
"create the nerd tree window
- let splitLocation = g:NERDTreeWinPos ? "topleft " : "botright "
- let splitMode = g:NERDTreeSplitVertical ? "vertical " : ""
+ let splitLocation = (g:NERDTreeWinPos == "top" || g:NERDTreeWinPos == "left") ? "topleft " : "botright "
+ let splitMode = s:ShouldSplitVertically() ? "vertical " : ""
let splitSize = g:NERDTreeWinSize
let t:NERDTreeWinName = localtime() . s:NERDTreeWinName
let cmd = splitLocation . splitMode . splitSize . ' new ' . t:NERDTreeWinName
@@ -2264,16 +2263,16 @@ function! s:OpenNodeSplit(treenode)
" 'right' and 'below' will be set to the settings needed for
" splitbelow and splitright IF the explorer is the only window.
"
- if g:NERDTreeSplitVertical == 1
- let there= g:NERDTreeWinPos ? "wincmd h" : "wincmd l"
- let back= g:NERDTreeWinPos ? "wincmd l" : "wincmd h"
- let right=g:NERDTreeWinPos ? 1 : 0
+ if s:ShouldSplitVertically()
+ let there= g:NERDTreeWinPos == "left" ? "wincmd h" : "wincmd l"
+ let back = g:NERDTreeWinPos == "left" ? "wincmd l" : "wincmd h"
+ let right= g:NERDTreeWinPos == "left"
let below=0
else
- let there= g:NERDTreeWinPos ? "wincmd k" : "wincmd j"
- let back= g:NERDTreeWinPos ? "wincmd j" : "wincmd k"
+ let there= g:NERDTreeWinPos == "top" ? "wincmd k" : "wincmd j"
+ let back = g:NERDTreeWinPos == "top" ? "wincmd j" : "wincmd k"
+ let below= g:NERDTreeWinPos == "top"
let right=0
- let below=g:NERDTreeWinPos ? 1 : 0
endif
" Attempt to go to adjacent window
@@ -2293,10 +2292,12 @@ function! s:OpenNodeSplit(treenode)
" Create a variable to use if splitting vertically
let splitMode = ""
- if (onlyOneWin && g:NERDTreeSplitVertical) || (!onlyOneWin && !g:NERDTreeSplitVertical)
+ if (onlyOneWin && s:ShouldSplitVertically()) || (!onlyOneWin && !s:ShouldSplitVertically())
let splitMode = "vertical"
endif
+ echomsg splitMode
+
" Open the new window
try
exec("silent " . splitMode." sp " . a:treenode.path.StrForEditCmd())
@@ -2469,7 +2470,7 @@ function! s:RestoreScreenState()
if !exists("t:NERDTreeOldTopLine") || !exists("t:NERDTreeOldPos") || !exists("t:NERDTreeOldWindowSize")
return
endif
- exec("silent ". (g:NERDTreeSplitVertical ? "vertical" : "") ." resize ".t:NERDTreeOldWindowSize)
+ exec("silent ". (s:ShouldSplitVertically() ? "vertical" : "") ." resize ".t:NERDTreeOldWindowSize)
let old_scrolloff=&scrolloff
let &scrolloff=0
@@ -2487,7 +2488,7 @@ endfunction
function! s:SaveScreenState()
let t:NERDTreeOldPos = getpos(".")
let t:NERDTreeOldTopLine = line("w0")
- let t:NERDTreeOldWindowSize = g:NERDTreeSplitVertical ? winwidth("") : winheight("")
+ let t:NERDTreeOldWindowSize = s:ShouldSplitVertically() ? winwidth("") : winheight("")
endfunction
"FUNCTION: s:SetupSyntaxHighlighting() {{{2
@@ -2612,6 +2613,11 @@ function! s:ShouldSplitToOpen(winnumber)
return modified && s:BufInWindows(winbufnr(a:winnumber)) < 2
endfunction
+" Function: s:ShouldSplitVertically() {{{2
+" Returns 1 if g:NERDTreeWinPos is 'left' or 'right'
+function! s:ShouldSplitVertically()
+ return g:NERDTreeWinPos == 'left' || g:NERDTreeWinPos == 'right'
+endfunction
"FUNCTION: s:StripMarkupFromLine(line, removeLeadingSpaces){{{2
"returns the given line with all the tree parts stripped off
"