From e51a40c0d8294131510b77c89ccaa348a59bc5a7 Mon Sep 17 00:00:00 2001 From: Martin Grenfell Date: Wed, 11 Jan 2012 13:44:19 +0000 Subject: [PATCH] make the mouse work as expected with NERDTreeMouseMode This was broken at some point - fix it. --- plugin/NERD_tree.vim | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index 9fd5658..4b0614c 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -151,7 +151,7 @@ let s:NERDTreeBufName = 'NERD_tree_' let s:tree_wid = 2 if g:NERDTreeDirArrows - let s:tree_markup_reg = '^ *\([▾▸] \)\?' + let s:tree_markup_reg = '^\([▾▸] \| \+[▾▸] \| \+\)' else let s:tree_markup_reg = '^[ `|]*[\-+~]' endif @@ -4058,8 +4058,8 @@ function! s:handleLeftClick() endfor if currentNode.path.isDirectory - if startToCur =~# s:tree_markup_reg . '$' && startToCur =~# '[+~▾▸]$' - call s:activateNode(currentNode) + if startToCur =~# s:tree_markup_reg && startToCur =~# '[+~▾▸] \?$' + call currentNode.activate() return endif endif @@ -4067,7 +4067,11 @@ function! s:handleLeftClick() if (g:NERDTreeMouseMode ==# 2 && currentNode.path.isDirectory) || g:NERDTreeMouseMode ==# 3 let char = strpart(startToCur, strlen(startToCur)-1, 1) if char !~# s:tree_markup_reg - call s:activateNode(currentNode) + if currentNode.path.isDirectory + call currentNode.activate() + else + call currentNode.activate({'reuse': 1, 'where': 'p'}) + endif return endif endif