if !exists('loaded_snippet') || &cp finish endif function! PyInit(text) if a:text != "args" return ', '.a:text else return '' endif endfunction function! PyRemDefVal(text) return substitute(a:text,'=.*','','g') endfunction function! PyInitVars(text) if a:text != "args" let text = substitute(a:text,'=.\{-},','','g') let text = substitute(text,'=.\{-}$','','g') let text = substitute(text,',','','g') let ret = '' let tabs = indent(".")/&tabstop let tab_text = '' for i in range(tabs) let tab_text = tab_text.'\t' endfor for Arg in split(text, ' ') let ret = ret.'self.'.Arg.' = '.Arg.'\n'.tab_text endfor return ret else return "pass" endif endfunction function! PyCount(haystack, needle) let counter = 0 let index = match(a:haystack, a:needle) while index > -1 let counter = counter + 1 let index = match(a:haystack, a:needle, index+1) endwhile return counter endfunction function! PyStringFormat(count) let st = g:snip_start_tag let et = g:snip_end_tag if a:count == 0 return "" elseif a:count == 1 return " % ".st.et else return ' % ('.join(repeat([st.et], a:count), ', ').')' endif endfunction let st = g:snip_start_tag let et = g:snip_end_tag let cd = g:snip_elem_delim exec "Snippet sf '".st."s".et."'".st."s:PyStringFormat(PyCount(@z, '%[^%]'))".et.st.et exec "Snippet class class ".st."ClassName".et."(".st."object".et."):def __init__(self".st."args:PyInit(@z)".et."):".st."args:PyInitVars(@z)".et.st.et exec "Snippet . self.".st.et exec "Snippet @@ self.__class__.".st.et exec "Snippet def def ".st."name".et."(".st."self".et."):".st.et exec "Snippet ifmain if __name__ == '__main__':".st.et exec "Snippet pyhead #!/usr/bin/env python# -*- coding: utf-8 -*-".st.et exec "Snippet for for ".st."item".et." in ".st."seq".et.":".st.et exec "Snippet while while ".st."True".et.":".st.et exec "Snippet from from ".st.et." import ".st.et