"============================================================================= " FILE: dein/log.vim " AUTHOR: Shougo Matsushita " License: MIT license "============================================================================= function! unite#sources#dein_log#define() abort return s:source endfunction let s:source = { \ 'name' : 'dein/log', \ 'description' : 'print previous dein install logs', \ 'syntax' : 'uniteSource__deinLog', \ 'hooks' : {}, \ } function! s:source.hooks.on_syntax(args, context) abort syntax match uniteSource__deinLog_Message /.*/ \ contained containedin=uniteSource__deinLog highlight default link uniteSource__deinLog_Message Comment syntax match uniteSource__deinLog_Progress /(.\{-}):\s*.*/ \ contained containedin=uniteSource__deinLog highlight default link uniteSource__deinLog_Progress String syntax match uniteSource__deinLog_Source /|.\{-}|/ \ contained containedin=uniteSource__deinLog_Progress highlight default link uniteSource__deinLog_Source Type syntax match uniteSource__deinLog_URI /-> diff URI/ \ contained containedin=uniteSource__deinLog highlight default link uniteSource__deinLog_URI Underlined endfunction function! s:source.gather_candidates(args, context) abort let a:context.source__is_bang = \ (get(a:args, 0, '') ==# '!') let a:context.source__log = [] return [] endfunction function! s:source.async_gather_candidates(args, context) abort if empty(dein#install#_get_context()) let a:context.is_async = 0 endif let log = a:context.source__is_bang ? \ dein#install#_get_updates_log() \ : dein#install#_get_log() let candidates = map(copy(log[len(a:context.source__log):]), { _, val -> { \ 'word' : (val =~# '^\s*\h\w*://' ? ' -> diff URI' : val), \ 'kind' : (val =~# '^\s*\h\w*://' ? 'uri' : 'word'), \ 'action__uri' : substitute(val, '^\s\+', '', ''), \ } }) let a:context.source__log = copy(log) return candidates endfunction