install.fairie/dotfiles/.vim/plugged/nerdtree/lib/nerdtree/notifier.vim
Git E2E Dev Test Username a05e8babb7 git subrepo clone https://github.com/scrooloose/nerdtree.git ./dotfiles/.vim/plugged/nerdtree
subrepo:
  subdir:   "dotfiles/.vim/plugged/nerdtree"
  merged:   "fc85a6f0"
upstream:
  origin:   "https://github.com/scrooloose/nerdtree.git"
  branch:   "master"
  commit:   "fc85a6f0"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"
2022-10-18 10:36:34 -04:00

35 lines
1.1 KiB
VimL

"CLASS: Notifier
"============================================================
let s:Notifier = {}
function! s:Notifier.AddListener(event, funcname)
let listeners = s:Notifier.GetListenersForEvent(a:event)
if listeners == []
let listenersMap = s:Notifier.GetListenersMap()
let listenersMap[a:event] = listeners
endif
call add(listeners, a:funcname)
endfunction
function! s:Notifier.NotifyListeners(event, path, nerdtree, params)
let event = g:NERDTreeEvent.New(a:nerdtree, a:path, a:event, a:params)
for Listener in s:Notifier.GetListenersForEvent(a:event)
let l:Callback = type(Listener) == type(function('tr')) ? Listener : function(Listener)
call l:Callback(event)
endfor
endfunction
function! s:Notifier.GetListenersMap()
if !exists('s:refreshListenersMap')
let s:refreshListenersMap = {}
endif
return s:refreshListenersMap
endfunction
function! s:Notifier.GetListenersForEvent(name)
let listenersMap = s:Notifier.GetListenersMap()
return get(listenersMap, a:name, [])
endfunction
let g:NERDTreePathNotifier = deepcopy(s:Notifier)