nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 88020835d614143c0d5a7d062f4d01cd16e7386d
parent d4b78be3060b36b196b8fcb01700bfb23539d44c
Author: Martin Grenfell <martin_grenfell@msn.com>
Date:   Wed, 17 Dec 2008 23:22:43 +1300

make the nerd tree only appear on the left or right

remove "top" and "bottom" as valid settings for NERDTreeWinPos

Diffstat:
Mdoc/NERD_tree.txt | 5+----
Mplugin/NERD_tree.vim | 42+++++++++---------------------------------
2 files changed, 10 insertions(+), 37 deletions(-)
diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt
@@ -861,15 +861,12 @@ Other examples: >
 
 ------------------------------------------------------------------------------
                                                             *'NERDTreeWinPos'*
-Values: "left", "right", "top" or "bottom"
+Values: "left" or "right"
 Default: "left".
 
 This option is used to determine where NERD tree window is placed on the
 screen.
 
-"top" or "bottom", will cause a horizontal split to be created for the tree,
-while "left" and "right" will cause a vertical split.
-
 This option is makes it possible to use two different explorer type
 plugins simultaneously. For example, you could have the taglist plugin on the
 left of the window and the NERD tree on the right.
diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim
@@ -1893,13 +1893,12 @@ endfunction
 "options etc
 function! s:createTreeWin()
     "create the nerd tree window
-    let splitLocation = (g:NERDTreeWinPos == "top" || g:NERDTreeWinPos == "left") ? "topleft " : "botright "
-    let splitMode = s:shouldSplitVertically() ? "vertical " : ""
+    let splitLocation = g:NERDTreeWinPos == "left" ? "topleft " : "botright "
     let splitSize = g:NERDTreeWinSize
     if !exists('t:NERDTreeBufName')
         let t:NERDTreeBufName = localtime() . s:NERDTreeBufName
     endif
-    let cmd = splitLocation . splitMode . splitSize . ' new ' . t:NERDTreeBufName
+    let cmd = splitLocation . 'vertical ' . splitSize . ' new ' . t:NERDTreeBufName
     silent! execute cmd
 
     setlocal winfixwidth
@@ -2474,11 +2473,6 @@ function! s:openNodeSplit(treenode)
     let savesplitbelow=&splitbelow
     let savesplitright=&splitright
 
-    " Figure out how to do the split based on the user's preferences.
-    " We want to split to the (left,right,top,bottom) of the explorer
-    " window, but we want to extract the screen real-estate from the
-    " window next to the explorer if possible.
-    "
     " 'there' will be set to a command to move from the split window
     " back to the explorer window
     "
@@ -2488,17 +2482,10 @@ 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 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 == "top" ? "wincmd k" : "wincmd j"
-        let back = g:NERDTreeWinPos == "top" ? "wincmd j" : "wincmd k"
-        let below= g:NERDTreeWinPos == "top"
-        let right=0
-    endif
+    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
 
     " Attempt to go to adjacent window
     exec(back)
@@ -2515,13 +2502,7 @@ function! s:openNodeSplit(treenode)
         let &splitbelow=!below
     endif
 
-    " Create a variable to use if splitting vertically
-    let splitMode = ""
-    if (onlyOneWin && s:shouldSplitVertically()) || (!onlyOneWin && !s:shouldSplitVertically())
-        let splitMode = "vertical"
-    endif
-
-    echomsg splitMode
+    let splitMode = onlyOneWin ? "vertical" : ""
 
     " Open the new window
     try
@@ -2712,7 +2693,7 @@ function! s:restoreScreenState()
     if !exists("b:NERDTreeOldTopLine") || !exists("b:NERDTreeOldPos") || !exists("b:NERDTreeOldWindowSize")
         return
     endif
-    exec("silent ". (s:shouldSplitVertically() ? "vertical" : "") ." resize ".b:NERDTreeOldWindowSize)
+    exec("silent vertical resize ".b:NERDTreeOldWindowSize)
 
     let old_scrolloff=&scrolloff
     let &scrolloff=0
@@ -2731,7 +2712,7 @@ function! s:saveScreenState()
         call s:putCursorInTreeWin()
         let b:NERDTreeOldPos = getpos(".")
         let b:NERDTreeOldTopLine = line("w0")
-        let b:NERDTreeOldWindowSize = s:shouldSplitVertically() ? winwidth("") : winheight("")
+        let b:NERDTreeOldWindowSize = winwidth("")
         exec win . "wincmd w"
     catch /NERDTree.view.InvalidOperation/
     endtry
@@ -2828,11 +2809,6 @@ function! s:setupSyntaxHighlighting()
     hi def link NERDTreeCurrentNode Search
 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
 "