summaryrefslogblamecommitdiffstats
path: root/build.py
blob: ffe094716678069741c5c23d089b242ae921b162 (plain) (tree)










































                                                                                           
#!/usr/bin/env python3

import yaml
import urllib.request as request

url = 'https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml'
data = yaml.safe_load(request.urlopen(url))

lines = []

def language(name,
             filetype=None,
             polyglot=None,
             extensions=None,
             filenames=None,
             extra_extensions=[],
             extra_filenames=[]
):
    language = data.get(name, {})
    filetype_name = filetype or name.lower().replace(" ", "")
    polyglot_name = polyglot or filetype_name
    lines.append(f"if index(g:polyglot_disabled, '{polyglot_name}') == -1")
    for ext in (extensions or language.get("extensions", [])) + extra_extensions:
        lines.append(f"  au BufNewFile,BufRead *{ext} set ft={filetype_name}")
    for fn in (filenames or language.get("filenames", [])) + extra_filenames:
        lines.append(f"  au BufNewFile,BufRead {fn} set ft={filetype_name}")
    lines.append("endif")
    lines.append("")

language("ASL", polyglot="acpiasl", extensions=[".asl", ".dsl"])
language("API Blueprint")
language("AppleScript")
language("Processing", filetype="arduino", extra_extensions=[".ino"])
language("AsciiDoc")
language("Blade")
language("Caddyfile", extensions=["Caddyfile"])
language("Carp", extensions=[".carp"])
language("CoffeeScript", filetype="coffee")
language("Clojure")

f = open("ftdetect/polyglot_auto.vim", "w")
f.write("\n".join(lines))
f.close()