Merge branch 'master' of git://github.com/scrooloose/nerdtree

Conflicts:
	doc/NERD_tree.txt
This commit is contained in:
Cam Thompson
2011-02-27 20:41:47 -05:00
2 changed files with 59 additions and 17 deletions

View File

@@ -645,6 +645,9 @@ NERD tree. These options should be set in your vimrc.
|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and |'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and
'Press ? for help' text. 'Press ? for help' text.
|'NERDTreeDirArrows'| Tells the NERD tree to use arrows instead of
+ ~ chars when displaying directories.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
3.2. Customisation details *NERDTreeOptionDetails* 3.2. Customisation details *NERDTreeOptionDetails*
@@ -935,6 +938,19 @@ of the following lines to set this option: >
let NERDTreeMinimalUI=1 let NERDTreeMinimalUI=1
< <
------------------------------------------------------------------------------
*'NERDTreeDirArrows'*
Values: 0 or 1
Default: 0.
This option is used to change the default look of directory nodes displayed in
the tree. When set to 0 it shows old-school bars (|), + and ~ chars. If set to
1 it shows right and down arrows. Use one of the follow lines to set this
option: >
let NERDTreeDirArrows=0
let NERDTreeDirArrows=1
<
============================================================================== ==============================================================================
4. The NERD tree API *NERDTreeAPI* 4. The NERD tree API *NERDTreeAPI*

View File

@@ -66,6 +66,7 @@ call s:initVariable("g:NERDTreeShowFiles", 1)
call s:initVariable("g:NERDTreeShowHidden", 0) call s:initVariable("g:NERDTreeShowHidden", 0)
call s:initVariable("g:NERDTreeShowLineNumbers", 0) call s:initVariable("g:NERDTreeShowLineNumbers", 0)
call s:initVariable("g:NERDTreeSortDirs", 1) call s:initVariable("g:NERDTreeSortDirs", 1)
call s:initVariable("g:NERDTreeDirArrows", 0)
if !exists("g:NERDTreeSortOrder") if !exists("g:NERDTreeSortOrder")
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$'] let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']
@@ -148,7 +149,7 @@ endif
let s:NERDTreeBufName = 'NERD_tree_' let s:NERDTreeBufName = 'NERD_tree_'
let s:tree_wid = 2 let s:tree_wid = 2
let s:tree_markup_reg = '^[ `|]*[\-+~]' let s:tree_markup_reg = '^[ `|]*[\-+~▾▸ ]*'
let s:tree_up_dir_line = '.. (up a dir)' let s:tree_up_dir_line = '.. (up a dir)'
"the number to add to the nerd tree buffer name to make the buf name unique "the number to add to the nerd tree buffer name to make the buf name unique
@@ -1314,34 +1315,51 @@ function! s:TreeFileNode._renderToString(depth, drawText, vertMap, isLastChild)
"get all the leading spaces and vertical tree parts for this line "get all the leading spaces and vertical tree parts for this line
if a:depth > 1 if a:depth > 1
for j in a:vertMap[0:-2] for j in a:vertMap[0:-2]
if g:NERDTreeDirArrows
let treeParts = treeParts . ' '
else
if j ==# 1 if j ==# 1
let treeParts = treeParts . '| ' let treeParts = treeParts . '| '
else else
let treeParts = treeParts . ' ' let treeParts = treeParts . ' '
endif endif
endif
endfor endfor
endif endif
"get the last vertical tree part for this line which will be different "get the last vertical tree part for this line which will be different
"if this node is the last child of its parent "if this node is the last child of its parent
if !g:NERDTreeDirArrows
if a:isLastChild if a:isLastChild
let treeParts = treeParts . '`' let treeParts = treeParts . '`'
else else
let treeParts = treeParts . '|' let treeParts = treeParts . '|'
endif endif
endif
"smack the appropriate dir/file symbol on the line before the file/dir "smack the appropriate dir/file symbol on the line before the file/dir
"name itself "name itself
if self.path.isDirectory if self.path.isDirectory
if self.isOpen if self.isOpen
if g:NERDTreeDirArrows
let treeParts = treeParts . '▾ '
else
let treeParts = treeParts . '~' let treeParts = treeParts . '~'
endif
else
if g:NERDTreeDirArrows
let treeParts = treeParts . '▸ '
else else
let treeParts = treeParts . '+' let treeParts = treeParts . '+'
endif endif
endif
else
if g:NERDTreeDirArrows
let treeParts = treeParts . ' '
else else
let treeParts = treeParts . '-' let treeParts = treeParts . '-'
endif endif
endif
let line = treeParts . self.displayString() let line = treeParts . self.displayString()
let output = output . line . "\n" let output = output . line . "\n"
@@ -3068,10 +3086,12 @@ function! s:getPath(ln)
return b:NERDTreeRoot.path return b:NERDTreeRoot.path
endif endif
if !g:NERDTreeDirArrows
" in case called from outside the tree " in case called from outside the tree
if line !~# '^ *[|`]' || line =~# '^$' if line !~# '^ *[|`▸▾ ]' || line =~# '^$'
return {} return {}
endif endif
endif
if line ==# s:tree_up_dir_line if line ==# s:tree_up_dir_line
return b:NERDTreeRoot.path.getParent() return b:NERDTreeRoot.path.getParent()
@@ -3126,7 +3146,13 @@ function! s:getTreeWinNum()
endfunction endfunction
"FUNCTION: s:indentLevelFor(line) {{{2 "FUNCTION: s:indentLevelFor(line) {{{2
function! s:indentLevelFor(line) function! s:indentLevelFor(line)
return match(a:line, '[^ \-+~`|]') / s:tree_wid let level = match(a:line, '[^ \-+~▸▾`|]') / s:tree_wid
" check if line includes arrows
if match(a:line, '[▸▾]') > -1
" decrement level as arrow uses 3 ascii chars
let level = level - 1
endif
return level
endfunction endfunction
"FUNCTION: s:isTreeOpen() {{{2 "FUNCTION: s:isTreeOpen() {{{2
function! s:isTreeOpen() function! s:isTreeOpen()
@@ -3407,7 +3433,7 @@ function! s:setupSyntaxHighlighting()
"highlighing for directory nodes and file nodes "highlighing for directory nodes and file nodes
syn match NERDTreeDirSlash #/# syn match NERDTreeDirSlash #/#
syn match NERDTreeDir #[^-| `].*/# contains=NERDTreeLink,NERDTreeDirSlash,NERDTreeOpenable,NERDTreeClosable syn match NERDTreeDir #[^-| `].*/# contains=NERDTreeLink,NERDTreeDirSlash,NERDTreeOpenable,NERDTreeClosable
syn match NERDTreeExecFile #[|`]-.*\*\($\| \)# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark syn match NERDTreeExecFile #[|` ].*\*\($\| \)# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark
syn match NERDTreeFile #|-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile syn match NERDTreeFile #|-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeFile #`-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile syn match NERDTreeFile #`-.*# contains=NERDTreeLink,NERDTreePart,NERDTreeRO,NERDTreePartFile,NERDTreeBookmark,NERDTreeExecFile
syn match NERDTreeCWD #^/.*$# syn match NERDTreeCWD #^/.*$#