Merge pull request #838 from lifecrisis/updir-fix
This commit is contained in:
commit
6188c5ea5f
@ -29,9 +29,9 @@ function! nerdtree#ui_glue#createDefaultBindings()
|
|||||||
|
|
||||||
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenRecursively, 'scope': "DirNode", 'callback': s."openNodeRecursively" })
|
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenRecursively, 'scope': "DirNode", 'callback': s."openNodeRecursively" })
|
||||||
|
|
||||||
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdir, 'scope': "all", 'callback': s."upDirCurrentRootClosed" })
|
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdir, 'scope': 'all', 'callback': s . 'upDirCurrentRootClosed' })
|
||||||
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdirKeepOpen, 'scope': "all", 'callback': s."upDirCurrentRootOpen" })
|
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdirKeepOpen, 'scope': 'all', 'callback': s . 'upDirCurrentRootOpen' })
|
||||||
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChangeRoot, 'scope': "Node", 'callback': s."chRoot" })
|
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChangeRoot, 'scope': 'Node', 'callback': s . 'chRoot' })
|
||||||
|
|
||||||
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChdir, 'scope': "Node", 'callback': s."chCwd" })
|
call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChdir, 'scope': "Node", 'callback': s."chCwd" })
|
||||||
|
|
||||||
@ -619,40 +619,33 @@ function! s:toggleZoom()
|
|||||||
call b:NERDTree.ui.toggleZoom()
|
call b:NERDTree.ui.toggleZoom()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
"FUNCTION: nerdtree#ui_glue#upDir(keepState) {{{1
|
" FUNCTION: nerdtree#ui_glue#upDir(preserveState) {{{1
|
||||||
"moves the tree up a level
|
" Move the NERDTree up one level.
|
||||||
"
|
"
|
||||||
"Args:
|
" Args:
|
||||||
"keepState: 1 if the current root should be left open when the tree is
|
" preserveState: if 1, the current root is left open when the new tree is
|
||||||
"re-rendered
|
" rendered; if 0, the current root node is closed
|
||||||
function! nerdtree#ui_glue#upDir(keepState)
|
function! nerdtree#ui_glue#upDir(preserveState)
|
||||||
let cwd = b:NERDTree.root.path.str({'format': 'UI'})
|
|
||||||
if cwd ==# "/" || cwd =~# '^[^/]..$'
|
|
||||||
call nerdtree#echo("already at top dir")
|
|
||||||
else
|
|
||||||
if !a:keepState
|
|
||||||
call b:NERDTree.root.close()
|
|
||||||
endif
|
|
||||||
|
|
||||||
let oldRoot = b:NERDTree.root
|
try
|
||||||
|
call b:NERDTree.root.cacheParent()
|
||||||
|
catch /^NERDTree.CannotCacheParentError/
|
||||||
|
call nerdtree#echo('already at root directory')
|
||||||
|
return
|
||||||
|
endtry
|
||||||
|
|
||||||
if empty(b:NERDTree.root.parent)
|
let l:oldRoot = b:NERDTree.root
|
||||||
let path = b:NERDTree.root.path.getParent()
|
let l:newRoot = b:NERDTree.root.parent
|
||||||
let newRoot = g:NERDTreeDirNode.New(path, b:NERDTree)
|
|
||||||
call newRoot.open()
|
|
||||||
call newRoot.transplantChild(b:NERDTree.root)
|
|
||||||
let b:NERDTree.root = newRoot
|
|
||||||
else
|
|
||||||
let b:NERDTree.root = b:NERDTree.root.parent
|
|
||||||
endif
|
|
||||||
|
|
||||||
if g:NERDTreeChDirMode ==# 2
|
call l:newRoot.open()
|
||||||
call b:NERDTree.root.path.changeToDir()
|
call l:newRoot.transplantChild(l:oldRoot)
|
||||||
endif
|
|
||||||
|
|
||||||
call b:NERDTree.render()
|
if !a:preserveState
|
||||||
call oldRoot.putCursorHere(0, 0)
|
call l:oldRoot.close()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
call b:NERDTree.changeRoot(l:newRoot)
|
||||||
|
call l:oldRoot.putCursorHere(0, 0)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" FUNCTION: s:upDirCurrentRootOpen() {{{1
|
" FUNCTION: s:upDirCurrentRootOpen() {{{1
|
||||||
|
Loading…
Reference in New Issue
Block a user