commit a3fdf1e3c111e011af09d6d5a6b58517ea4fa6d7
parent ab0a3a7c249b46f1e180f850edbfc3b3d6ed4f60
Author: Jason Franklin <lifecrisis@users.noreply.github.com>
Date: Sat, 8 Jul 2017 11:43:38 -0400
Merge pull request #721 from lifecrisis/issue67
UPDATE: The `p` mapping now works on cascades.
Diffstat:
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/autoload/nerdtree/ui_glue.vim b/autoload/nerdtree/ui_glue.vim
@@ -404,13 +404,27 @@ function! s:jumpToLastChild(node)
endfunction
" FUNCTION: s:jumpToParent(node) {{{1
-" moves the cursor to the parent of the current node
+" Move the cursor to the parent of the specified node. For a cascade, move to
+" the parent of the cascade's highest node. At the root, do nothing.
function! s:jumpToParent(node)
- if !empty(a:node.parent)
- call a:node.parent.putCursorHere(1, 0)
+ let l:parent = a:node.parent
+
+ " If "a:node" represents a directory, back out of its cascade.
+ if a:node.path.isDirectory
+ while !empty(l:parent) && !l:parent.isRoot()
+ if index(l:parent.getCascade(), a:node) >= 0
+ let l:parent = l:parent.parent
+ else
+ break
+ endif
+ endwhile
+ endif
+
+ if !empty(l:parent)
+ call l:parent.putCursorHere(1, 0)
call b:NERDTree.ui.centerView()
else
- call nerdtree#echo("cannot jump to parent")
+ call nerdtree#echo('could not jump to parent node')
endif
endfunction