From a63c8a2ec8ab03cef906c21f40fad7d00deeba10 Mon Sep 17 00:00:00 2001 From: Martin Grenfell Date: Wed, 4 Jan 2012 00:13:57 +0000 Subject: [PATCH] use the keymap api for the mouse mappings --- plugin/NERD_tree.vim | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index 0585a65..9b8d70a 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -509,11 +509,13 @@ endfunction "FUNCTION: KeyMap.bind() {{{3 function! s:KeyMap.bind() let mapkey = self.key - if mapkey =~ '^[CM]-' + if mapkey =~? '^\([CM]-\|middlerelease\|2-leftmouse\|leftrelease\)' let mapkey = '<' . mapkey . '>' endif - exec 'nnoremap '. mapkey .' :call KeyMap_Invoke("'. self.key .'")' + let premap = self.key == "leftrelease" ? " " : " " + + exec 'nnoremap '. mapkey . premap . ':call KeyMap_Invoke("'. self.key .'")' endfunction "FUNCTION: KeyMap.invoke() {{{3 @@ -3667,13 +3669,15 @@ endfunction "FUNCTION: s:bindMappings() {{{2 function! s:bindMappings() - " set up mappings and commands for this buffer - nnoremap :call handleMiddleMouse() - nnoremap :call handleLeftClick() - exec "nnoremap <2-leftmouse> :call KeyMap_Invoke('". g:NERDTreeMapActivateNode ."')" - let s = '' . s:SID() . '_' + call NERDTreeAddKeyMap({ 'key': 'middlerelease', 'scope': "all", 'callback': s."handleMiddleMouse" }) + call NERDTreeAddKeyMap({ 'key': 'leftrelease', 'scope': "all", 'callback': s."handleLeftClick" }) + call NERDTreeAddKeyMap({ 'key': '2-leftmouse', 'scope': "Node", 'callback': s."activateNode" }) + call NERDTreeAddKeyMap({ 'key': '2-leftmouse', 'scope': "Bookmark", 'callback': s."activateBookmark" }) + call NERDTreeAddKeyMap({ 'key': '2-leftmouse', 'scope': "all", 'callback': s."activateAll" }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': "Node", 'callback': s."activateNode" }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': "Bookmark", 'callback': s."activateBookmark" }) call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': "all", 'callback': s."activateAll" })