Pablo Caro Revuelta avatar Pablo Caro Revuelta committed 6d3042a Draft

better file name for snippets in importer

Comments (0)

Files changed (2)


-    <content><![CDATA[
-_columns = {
-    $1
-    <tabTrigger>_columns</tabTrigger>
-    <scope>source.python</scope>

+import string
 import sys
 import re
 import os
+def slugify(value):
+    """
+    Normalizes string, for use as file name.
+    """
+    value = re.sub('[-\s]+', '_', value)
+    valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
+    return ''.join(c for c in value if c in valid_chars)
 class Replacer(object):
     def __init__(self): = 1
         content = replace_re.sub(o.replace, content)
         snippet = SNIPPET_TEMPLATE % dict(content=content, name=name, scope=scope,
-        fname = name + '.sublime-snippet'
+        fname = slugify(name) + '.sublime-snippet'
         if os.path.exists(fname):
             print '%s exists' % fname
             with open(fname, "w") as f:
-                print "%s generated" % name
+                print "%s generated" % fname
 if __name__ == '__main__':
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.