diff options
Diffstat (limited to 'vim/bundle/tlib_vim/autoload/tlib/trace.vim')
m--------- | vim/bundle/tlib_vim | 0 | ||||
-rw-r--r-- | vim/bundle/tlib_vim/autoload/tlib/trace.vim | 159 |
2 files changed, 0 insertions, 159 deletions
diff --git a/vim/bundle/tlib_vim b/vim/bundle/tlib_vim new file mode 160000 +Subproject 5636472e5dba1a4104376ce6bd93cc2546e0248 diff --git a/vim/bundle/tlib_vim/autoload/tlib/trace.vim b/vim/bundle/tlib_vim/autoload/tlib/trace.vim deleted file mode 100644 index cdda1de..0000000 --- a/vim/bundle/tlib_vim/autoload/tlib/trace.vim +++ /dev/null @@ -1,159 +0,0 @@ -" @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim]) -" @Website: https://github.com/tomtom -" @License: GPL (see http://www.gnu.org/licenses/gpl.txt) -" @Last Change: 2016-06-08 -" @Revision: 177 - - -if !exists('g:tlib#trace#backtrace') - " The length of the backtrace that should be included in - " |tlib#trace#Print()|. - let g:tlib#trace#backtrace = 2 "{{{2 -endif - - -if !exists('g:tlib#trace#printer') - " Possible values: - " - 'echom' - " - ['file', FILENAME] - let g:tlib#trace#printer = 'echom' "{{{2 -endif - - -if !exists('g:tlib#trace#hl') - let g:tlib#trace#hl = {'error': 'ErrorMsg', 'fatal': 'ErrorMsg', 'warn': 'WarningMsg'} "{{{2 -endif - - -" Print traces from |tlib#trace#Print()|. -function! tlib#trace#Printer_echom(type, text, args) abort "{{{3 - let hl = get(g:tlib#trace#hl, a:type, '') - try - if !empty(hl) - exec 'echohl' hl - endif - echom a:text - finally - if !empty(hl) - echohl NONE - endif - endtry -endf - - -function! tlib#trace#Printer_file(type, text, args) abort "{{{3 - let filename = get(a:args, 0, '') - if !filewritable(filename) - throw 'tlib#trace#Printer_file: Cannot write to file: '. filename - else - call writefile([a:text], filename, 'a') - endif -endf - - -" Set the tracing |regexp|. See |:Tlibtrace|. -" This will also call |tlib#trace#Enable()|. -" -" Examples: -" call tlib#trace#Set(["+foo", "-bar"]) -" call tlib#trace#Set("+foo,-bar") -function! tlib#trace#Set(vars) abort "{{{3 - call tlib#trace#Enable() - if type(a:vars) == 1 - let vars = tlib#string#SplitCommaList(a:vars, '[,[:space:]]\+') - else - let vars = a:vars - endif - " TLogVAR vars - for rx in vars - let rx1 = substitute(rx, '^[+-]', '', 'g') - if rx1 !~# '^\%(error\|warn\|fatal\)$' - let erx1 = tlib#rx#Escape(rx1) - " TLogVAR rx, rx1 - " echom "DBG" s:trace_rx - if rx =~ '^+' - if s:trace_rx !~# '[(|]'. erx1 .'\\' - let s:trace_rx = substitute(s:trace_rx, '\ze\\)\$', '\\|'. erx1, '') - endif - elseif rx =~ '^-' - if s:trace_rx =~# '[(|]'. erx1 .'\\' - let s:trace_rx = substitute(s:trace_rx, '\\|'. erx1, '', '') - endif - else - echohl WarningMsg - echom 'tlib#trace#Print: Unsupported syntax:' rx - echohl NONE - endif - " echom "DBG" s:trace_rx - endif - endfor - echom "SetTrace:" s:trace_rx -endf - - -function! tlib#trace#Backtrace(caller) abort "{{{3 - let caller = split(a:caller, '\.\.') - let start = max([0, len(caller) - g:tlib#trace#backtrace - 1]) - let caller = caller[start : -1] - return join(caller, '..') -endf - - -" Print the values of vars. The first value is a "guard" (see -" |:Tlibtrace|). -function! tlib#trace#Print(caller, vars, values) abort "{{{3 - let msg = ['TRACE'] - let guard = a:values[0] - if type(guard) == 0 - let cond = guard - else - let cond = guard =~# s:trace_rx - endif - " TLogVAR guard, cond, a:vars, a:values - if cond - call add(msg, guard) - call add(msg, tlib#time#FormatNow() .':') - if g:tlib#trace#backtrace > 0 - let bt = tlib#trace#Backtrace(a:caller) - if !empty(bt) - call add(msg, bt .':') - endif - endif - for i in range(1, len(a:vars) - 1) - let v = substitute(a:vars[i], ',$', '', '') - let r = a:values[i] - if v =~# '^\([''"]\).\{-}\1$' - call add(msg, r .';') - else - call add(msg, v .'='. string(r) .';') - endif - unlet r - endfor - if type(g:tlib#trace#printer) == 1 - let printer = g:tlib#trace#printer - let args = [] - else - let [printer; args] = g:tlib#trace#printer - endif - call tlib#trace#Printer_{printer}(guard, join(msg), args) - endif -endf - - -" Enable tracing via |:Tlibtrace|. -function! tlib#trace#Enable() abort "{{{3 - if !exists('s:trace_rx') - let s:trace_rx = '^\%(error\|fatal\|warn\|info\)$' - " :nodoc: - command! -nargs=+ -bang Tlibtrace call tlib#trace#Print(expand('<sfile>'), [<f-args>], [<args>]) - endif -endf - - -" Disable tracing via |:Tlibtrace|. -function! tlib#trace#Disable() abort "{{{3 - " :nodoc: - command! -nargs=+ -bang Tlibtrace : - unlet! s:trace_rx -endf - |