aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/tlib_vim/autoload/tlib/assert.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/tlib_vim/autoload/tlib/assert.vim')
-rw-r--r--vim/bundle/tlib_vim/autoload/tlib/assert.vim44
1 files changed, 44 insertions, 0 deletions
diff --git a/vim/bundle/tlib_vim/autoload/tlib/assert.vim b/vim/bundle/tlib_vim/autoload/tlib/assert.vim
new file mode 100644
index 0000000..5d4dea7
--- /dev/null
+++ b/vim/bundle/tlib_vim/autoload/tlib/assert.vim
@@ -0,0 +1,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: 2015-12-04
+" @Revision: 41
+
+
+" 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
+
+