mirror of
https://github.com/preservim/nerdtree.git
synced 2025-11-08 11:23:48 -05:00
Merge branch 'disable-cascade' of git://github.com/juanibiapina/nerdtree into juanibiapina-disable-cascade
This commit is contained in:
@@ -668,14 +668,18 @@ NERD tree. These options should be set in your vimrc.
|
|||||||
|'NERDTreeWinSize'| Sets the window size when the NERD tree is
|
|'NERDTreeWinSize'| Sets the window size when the NERD tree is
|
||||||
opened.
|
opened.
|
||||||
|
|
||||||
|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and
|
|'NERDTreeMinimalUI'| Disables display of the 'Bookmarks' label and
|
||||||
'Press ? for help' text.
|
'Press ? for help' text.
|
||||||
|
|
||||||
|
|'NERDTreeCascadeSingleChildDir'|
|
||||||
|
Collapses on the same line directories that
|
||||||
|
have only one child directory.
|
||||||
|
|
||||||
|'NERDTreeCascadeOpenSingleChildDir'|
|
|'NERDTreeCascadeOpenSingleChildDir'|
|
||||||
Cascade open while selected directory has only
|
Cascade open while selected directory has only
|
||||||
one child that also is a directory.
|
one child that also is a directory.
|
||||||
|
|
||||||
|'NERDTreeAutoDeleteBuffer'| Tells the NERD tree to automatically remove
|
|'NERDTreeAutoDeleteBuffer'| Tells the NERD tree to automatically remove
|
||||||
a buffer when a file is being deleted or renamed
|
a buffer when a file is being deleted or renamed
|
||||||
via a context menu command.
|
via a context menu command.
|
||||||
|
|
||||||
@@ -987,7 +991,18 @@ of the following lines to set this option: >
|
|||||||
<
|
<
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*'NERDTreeCascadeOpenSingleChildDir'*
|
*'NERDTreeCascadeSingleChildDir'*
|
||||||
|
Values: 0 or 1
|
||||||
|
Default: 1.
|
||||||
|
|
||||||
|
When displaying dir nodes, this option tells NERDTree to collapse dirs that
|
||||||
|
have only one child. Use one of the follow lines to set this option: >
|
||||||
|
let NERDTreeCascadeSingleChildDir=0
|
||||||
|
let NERDTreeCascadeSingleChildDir=1
|
||||||
|
<
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
*'NERDTreeCascadeOpenSingleChildDir'*
|
||||||
Values: 0 or 1
|
Values: 0 or 1
|
||||||
Default: 1.
|
Default: 1.
|
||||||
|
|
||||||
@@ -1001,7 +1016,7 @@ useful for Java projects. Use one of the follow lines to set this option: >
|
|||||||
<
|
<
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*'NERDTreeAutoDeleteBuffer'*
|
*'NERDTreeAutoDeleteBuffer'*
|
||||||
Values: 0 or 1
|
Values: 0 or 1
|
||||||
Default: 0.
|
Default: 0.
|
||||||
|
|
||||||
|
|||||||
@@ -117,28 +117,14 @@ endfunction
|
|||||||
"FUNCTION: TreeDirNode.getCascade() {{{1
|
"FUNCTION: TreeDirNode.getCascade() {{{1
|
||||||
"Return an array of dir nodes (starting from self) that can be cascade opened.
|
"Return an array of dir nodes (starting from self) that can be cascade opened.
|
||||||
function! s:TreeDirNode.getCascade()
|
function! s:TreeDirNode.getCascade()
|
||||||
|
if !self.isCascadable()
|
||||||
|
return [self]
|
||||||
|
endif
|
||||||
|
|
||||||
let rv = [self]
|
let vc = self.getVisibleChildren()
|
||||||
let node = self
|
let visChild = vc[0]
|
||||||
|
|
||||||
while 1
|
return [self] + visChild.getCascade()
|
||||||
let vc = node.getVisibleChildren()
|
|
||||||
if len(vc) != 1
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
|
|
||||||
let visChild = vc[0]
|
|
||||||
|
|
||||||
"TODO: optimize
|
|
||||||
if !visChild.path.isDirectory
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
|
|
||||||
call add(rv, visChild)
|
|
||||||
let node = visChild
|
|
||||||
endwhile
|
|
||||||
|
|
||||||
return rv
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: TreeDirNode.getChildCount() {{{1
|
"FUNCTION: TreeDirNode.getChildCount() {{{1
|
||||||
@@ -264,6 +250,10 @@ endfunction
|
|||||||
"FUNCTION: TreeDirNode.isCascadable() {{{1
|
"FUNCTION: TreeDirNode.isCascadable() {{{1
|
||||||
"true if this dir has only one visible child - which is also a dir
|
"true if this dir has only one visible child - which is also a dir
|
||||||
function! s:TreeDirNode.isCascadable()
|
function! s:TreeDirNode.isCascadable()
|
||||||
|
if g:NERDTreeCascadeSingleChildDir == 0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
let c = self.getVisibleChildren()
|
let c = self.getVisibleChildren()
|
||||||
return len(c) == 1 && c[0].path.isDirectory
|
return len(c) == 1 && c[0].path.isDirectory
|
||||||
endfunction
|
endfunction
|
||||||
@@ -466,7 +456,7 @@ function! s:TreeDirNode.refresh()
|
|||||||
|
|
||||||
" Regular expression is too expensive. Use simply string comparison
|
" Regular expression is too expensive. Use simply string comparison
|
||||||
" instead
|
" instead
|
||||||
if i[len(i)-3:2] != ".." && i[len(i)-2:2] != ".." &&
|
if i[len(i)-3:2] != ".." && i[len(i)-2:2] != ".." &&
|
||||||
\ i[len(i)-2:1] != "." && i[len(i)-1] != "."
|
\ i[len(i)-2:1] != "." && i[len(i)-1] != "."
|
||||||
try
|
try
|
||||||
"create a new path and see if it exists in this nodes children
|
"create a new path and see if it exists in this nodes children
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ else
|
|||||||
call s:initVariable("g:NERDTreeDirArrowCollapsible", "~")
|
call s:initVariable("g:NERDTreeDirArrowCollapsible", "~")
|
||||||
endif
|
endif
|
||||||
call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1)
|
call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1)
|
||||||
|
call s:initVariable("g:NERDTreeCascadeSingleChildDir", 1)
|
||||||
|
|
||||||
if !exists("g:NERDTreeSortOrder")
|
if !exists("g:NERDTreeSortOrder")
|
||||||
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']
|
let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$']
|
||||||
|
|||||||
Reference in New Issue
Block a user