summaryrefslogtreecommitdiffstats
path: root/build.py
blob: ffe094716678069741c5c23d089b242ae921b162 (plain) (blame)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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()