Use argparse in the snipmate conversion script, renamed that script to convert_snipmate_snippets, removed the snipmate compatibility code from UltiSnips.vim and placed it into it's own file, fixed a bug where the user's value of g:snips_author was overwritten
This commit is contained in:
parent
d08b58cf39
commit
8276ec9b94
@ -12,16 +12,6 @@ if exists('did_UltiSnips_vim') || &cp || version < 700 || !has("python")
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Snipmate compatibilty: Filename function, taken from
|
|
||||||
" snipMate.vim {{{
|
|
||||||
let g:snips_author = "John Doe"
|
|
||||||
fun! Filename(...)
|
|
||||||
let filename = expand('%:t:r')
|
|
||||||
if filename == '' | return a:0 == 2 ? a:2 : '' | endif
|
|
||||||
return !a:0 || a:1 == '' ? filename : substitute(a:1, '$1', filename, 'g')
|
|
||||||
endf
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" Global Variables {{{
|
" Global Variables {{{
|
||||||
|
|
||||||
" The trigger used to expand a snippet.
|
" The trigger used to expand a snippet.
|
||||||
|
28
plugin/snipMate_compatibility.vim
Normal file
28
plugin/snipMate_compatibility.vim
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
" File: snipMate_compatibility.vim
|
||||||
|
" Author: Phillip Berndt <phillip.berndt@gmail.com>
|
||||||
|
" Description: Snipmate compatibility helper functions for UltiSnips
|
||||||
|
"
|
||||||
|
" Snipmate defines a function named Filename and a variable called
|
||||||
|
" g:snips_author for use in snippet subtitutions. See
|
||||||
|
" https://github.com/msanders/snipmate.vim/blob/master/doc/snipMate.txt
|
||||||
|
" for details.
|
||||||
|
"
|
||||||
|
|
||||||
|
if exists('did_UltiSnips_snipmate_compatibility')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let did_UltiSnips_snipmate_compatibility = 1
|
||||||
|
|
||||||
|
" Define g:snips_author; some snipmate snippets use this
|
||||||
|
if ! exists('g:snips_author')
|
||||||
|
let g:snips_author = "John Doe"
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Filename function, taken from snipMate.vim {{{
|
||||||
|
fun! Filename(...)
|
||||||
|
let filename = expand('%:t:r')
|
||||||
|
if filename == '' | return a:0 == 2 ? a:2 : '' | endif
|
||||||
|
return !a:0 || a:1 == '' ? filename : substitute(a:1, '$1', filename, 'g')
|
||||||
|
endf
|
||||||
|
" }}}
|
||||||
|
|
@ -7,6 +7,7 @@
|
|||||||
import sys
|
import sys
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
|
import argparse
|
||||||
|
|
||||||
def convert_snippet_contents(content):
|
def convert_snippet_contents(content):
|
||||||
" If the snippet contains snipmate style substitutions, convert them to ultisnips style "
|
" If the snippet contains snipmate style substitutions, convert them to ultisnips style "
|
||||||
@ -68,16 +69,20 @@ def convert_snippets(source):
|
|||||||
return convert_snippet_file(source)
|
return convert_snippet_file(source)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
if len(sys.argv) not in (3, 2):
|
# Parse command line
|
||||||
print >> sys.stderr, "Syntax: get_snipmate_snippets.py <source directory or file> [target file]"
|
argsp = argparse.ArgumentParser(description="Convert snipmate compatible snippets to UltiSnips' file format",
|
||||||
print >> sys.stderr
|
epilog="example:\n %s drupal/ drupal.snippets\n will convert all drupal specific snippets from snipmate into one file drupal.snippets" % sys.argv[0],
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
|
argsp.add_argument("source", help="Source directory for one filetype or a snippets file")
|
||||||
|
argsp.add_argument("target", help="File to write the resulting snippets into. If omitted, the snippets will be written to stdout.", nargs="?", default="-")
|
||||||
|
args = argsp.parse_args()
|
||||||
|
|
||||||
|
source = args.source
|
||||||
|
try:
|
||||||
|
target = sys.stdout if args.target == "-" else open(args.target, "w")
|
||||||
|
except IOError:
|
||||||
|
print >> sys.stderr, "Error: Failed to open output file %s for writing" % args.target
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
if len(sys.argv) == 2:
|
|
||||||
source = sys.argv[1]
|
|
||||||
target = sys.stdout
|
|
||||||
else:
|
|
||||||
source, target = sys.argv[1:]
|
|
||||||
target = open(target, "w")
|
|
||||||
|
|
||||||
snippets = convert_snippets(source)
|
snippets = convert_snippets(source)
|
||||||
print >> target, snippets
|
print >> target, snippets
|
Loading…
Reference in New Issue
Block a user