aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim')
-rw-r--r--.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim164
1 files changed, 0 insertions, 164 deletions
diff --git a/.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim b/.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim
deleted file mode 100644
index f3268c2..0000000
--- a/.config/nvim/plugged/nerdtree/lib/nerdtree/key_map.vim
+++ /dev/null
@@ -1,164 +0,0 @@
-"CLASS: KeyMap
-"============================================================
-let s:KeyMap = {}
-let g:NERDTreeKeyMap = s:KeyMap
-let s:keyMaps = {}
-
-"FUNCTION: KeyMap.All() {{{1
-function! s:KeyMap.All()
- let sortedKeyMaps = values(s:keyMaps)
- call sort(sortedKeyMaps, s:KeyMap.Compare, s:KeyMap)
-
- return sortedKeyMaps
-endfunction
-
-"FUNCTION: KeyMap.Compare(keyMap1, keyMap2) {{{1
-function! s:KeyMap.Compare(keyMap1, keyMap2)
-
- if a:keyMap1.key >? a:keyMap2.key
- return 1
- endif
-
- if a:keyMap1.key <? a:keyMap2.key
- return -1
- endif
-
- return 0
-endfunction
-
-"FUNCTION: KeyMap.FindFor(key, scope) {{{1
-function! s:KeyMap.FindFor(key, scope)
- return get(s:keyMaps, a:key . a:scope, {})
-endfunction
-
-"FUNCTION: KeyMap.BindAll() {{{1
-function! s:KeyMap.BindAll()
- for i in values(s:keyMaps)
- call i.bind()
- endfor
-endfunction
-
-"FUNCTION: KeyMap.bind() {{{1
-function! s:KeyMap.bind()
- " If the key sequence we're trying to map contains any '<>' notation, we
- " must replace each of the '<' characters with '<lt>' to ensure the string
- " is not translated into its corresponding keycode during the later part
- " of the map command below
- " :he <>
- let specialNotationRegex = '\m<\([[:alnum:]_-]\+>\)'
- if self.key =~# specialNotationRegex
- let keymapInvokeString = substitute(self.key, specialNotationRegex, '<lt>\1', 'g')
- else
- let keymapInvokeString = self.key
- endif
- let keymapInvokeString = escape(keymapInvokeString, '\')
-
- let premap = self.key ==# '<LeftRelease>' ? ' <LeftRelease>' : ' '
-
- exec 'nnoremap <buffer> <silent> '. self.key . premap . ':call nerdtree#ui_glue#invokeKeyMap("'. keymapInvokeString .'")<cr>'
-endfunction
-
-"FUNCTION: KeyMap.Remove(key, scope) {{{1
-function! s:KeyMap.Remove(key, scope)
- return remove(s:keyMaps, a:key . a:scope)
-endfunction
-
-"FUNCTION: KeyMap.invoke() {{{1
-"Call the KeyMaps callback function
-function! s:KeyMap.invoke(...)
- let Callback = type(self.callback) ==# type(function('tr')) ? self.callback : function(self.callback)
- if a:0
- call Callback(a:1)
- else
- call Callback()
- endif
-endfunction
-
-"FUNCTION: KeyMap.Invoke() {{{1
-"Find a keymapping for a:key and the current scope invoke it.
-"
-"Scope is determined as follows:
-" * if the cursor is on a dir node then DirNode
-" * if the cursor is on a file node then FileNode
-" * if the cursor is on a bookmark then Bookmark
-"
-"If a keymap has the scope of 'all' then it will be called if no other keymap
-"is found for a:key and the scope.
-function! s:KeyMap.Invoke(key)
-
- "required because clicking the command window below another window still
- "invokes the <LeftRelease> mapping - but changes the window cursor
- "is in first
- "
- "TODO: remove this check when the vim bug is fixed
- if !g:NERDTree.ExistsForBuf()
- return {}
- endif
-
- let node = g:NERDTreeFileNode.GetSelected()
- if !empty(node)
-
- "try file node
- if !node.path.isDirectory
- let km = s:KeyMap.FindFor(a:key, 'FileNode')
- if !empty(km)
- return km.invoke(node)
- endif
- endif
-
- "try dir node
- if node.path.isDirectory
- let km = s:KeyMap.FindFor(a:key, 'DirNode')
- if !empty(km)
- return km.invoke(node)
- endif
- endif
-
- "try generic node
- let km = s:KeyMap.FindFor(a:key, 'Node')
- if !empty(km)
- return km.invoke(node)
- endif
-
- endif
-
- "try bookmark
- let bm = g:NERDTreeBookmark.GetSelected()
- if !empty(bm)
- let km = s:KeyMap.FindFor(a:key, 'Bookmark')
- if !empty(km)
- return km.invoke(bm)
- endif
- endif
-
- "try all
- let km = s:KeyMap.FindFor(a:key, 'all')
- if !empty(km)
- return km.invoke()
- endif
-endfunction
-
-"FUNCTION: KeyMap.Create(options) {{{1
-function! s:KeyMap.Create(options)
- let opts = extend({'scope': 'all', 'quickhelpText': ''}, copy(a:options))
-
- "dont override other mappings unless the 'override' option is given
- if get(opts, 'override', 0) ==# 0 && !empty(s:KeyMap.FindFor(opts['key'], opts['scope']))
- return
- end
-
- let newKeyMap = copy(self)
- let newKeyMap.key = opts['key']
- let newKeyMap.quickhelpText = opts['quickhelpText']
- let newKeyMap.callback = opts['callback']
- let newKeyMap.scope = opts['scope']
-
- call s:KeyMap.Add(newKeyMap)
-endfunction
-
-"FUNCTION: KeyMap.Add(keymap) {{{1
-function! s:KeyMap.Add(keymap)
- let s:keyMaps[a:keymap.key . a:keymap.scope] = a:keymap
-endfunction
-
-" vim: set sw=4 sts=4 et fdm=marker: