File: assert.vim

package info (click to toggle)
vim-tlib 1.28-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 752 kB
  • sloc: ruby: 61; makefile: 5
file content (44 lines) | stat: -rw-r--r-- 1,144 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
" @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: 2017-02-22
" @Revision:    42


" Enable tracing via |:Tlibassert|.
function! tlib#assert#Enable() abort "{{{3
    " :nodoc:
    command! -nargs=+ -bang Tlibassert call tlib#assert#Assert(expand('<sfile>'), <q-args>, [<args>])
endf


" Disable tracing via |:Tlibassert|.
function! tlib#assert#Disable() abort "{{{3
    " :nodoc:
    command! -nargs=+ -bang Tlibassert :
endf


function! tlib#assert#Assert(caller, check, vals) abort "{{{3
    for val in a:vals
        " TLogVAR val
        if type(val) == 3
            call tlib#assert#Assert(a:caller, a:check, val)
        elseif !val
            throw 'Tlibassert: '. tlib#trace#Backtrace(a:caller) .': '. a:check
        endif
    endfor
endf


function! tlib#assert#Map(vals, expr) abort "{{{3
    return tlib#assert#All(map(a:vals, a:expr))
endf


function! tlib#assert#All(vals) abort "{{{3
    " TLogVAR a:vals, empty(filter(a:vals, '!v:val'))
    return empty(filter(a:vals, '!v:val'))
endf