aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-snipmate/autoload/snipmate/util.vim
blob: a80d3077058856b888f62ff3828473dc2daaf9e0 (plain)
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
" The next function was based on s:function and s:add_methods in fugitive
" <https://github.com/tpope/vim-fugitive/blob/master/plugin/fugitive.vim>
function! snipmate#util#add_methods(sfile, namespace, methods) abort
	let dict = {}
	for name in a:methods
		let dict[name] = function(join([matchstr(a:sfile, '<SNR>\d\+'),
                    \ a:namespace, name], '_'))
	endfor
	return dict
endfunction

function! snipmate#util#eval(arg)
    try
        let ret = eval(a:arg)
    catch
        echohl ErrorMsg
        echom 'SnipMate:Expression: ' . v:exception
        echohl None
        let ret = ''
    endtry
    return type(ret) == type('') ? ret : string(ret)
endfunction

function! snipmate#util#tabwidth()
    if &sts > 0
        return &sts
    else
        return exists('*shiftwidth') ? shiftwidth() : &sw
    endif
endfunction