summaryrefslogtreecommitdiffstats
path: root/build.py
blob: fd8ca04a51440eed39c046a0c177a0c215bb6a26 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/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,
             syntax=None,
             extra_extensions=[],
             extra_filenames=[],
             ignored_extensions=[]
):
    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")
    if syntax != None:
        syntax = " syn=" + syntax
    else:
        syntax = ""
    if extensions == None:
        extensions = language.get("extensions", [])
    if filenames == None:
        filenames = language.get("filenames", [])
    for ext in sorted(list(set(extensions + extra_extensions) - set(ignored_extensions))):
        lines.append(f"  au BufNewFile,BufRead *{ext} set ft={filetype_name}{syntax}")
    for fn in filenames + extra_filenames:
        lines.append(f"  au BufNewFile,BufRead {fn} set ft={filetype_name}{syntax}")
    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", polyglot="coffee-script", filetype="coffee", extra_extensions=[".coffeekup", '.ck'])
language("Literate CoffeeScript", polyglot="coffee-script", filetype="litcoffee", extra_extensions=[".coffee.md"])
language("Clojure")
language("CQL", extensions=[".cql"])
language("Cryptol", extensions=[".cry", ".cyl", ".lcry", ".lcyl"])
language("Crystal", extra_filenames=["Projectfile"])
language("HTML+ECR", polyglot="crystal", filetype="ecrystal")
language("CSV", extra_extensions=[".tsv", ".dat", ".tab"])
language("Gherkin", filetype="cucumber", extra_extensions=[".story"])
language("Cue", filetype="cuesheet", extensions=[".cue"], polyglot="cue")
language("Dart")
language("Dhall")
language("D", polyglot="dlang")
language("D", polyglot="dlang", filetype="dcov", extensions=[".lst"])
language("D", polyglot="dlang", filetype="dd", extensions=[".dd"])
language("D", polyglot="dlang", filetype="ddoc", extensions=[".ddoc"])
language("D", polyglot="dlang", filetype="dsdl", extensions=[".sdl"])
language("Dockerfile", extra_extensions=[".dock", ".Dockerfile"], extra_filenames=["dockerfile", "Dockerfile*"], filetype="Dockerfile", polyglot="dockerfile")
language("Dockerfile", extensions=[], filenames=["docker-compose*.yaml", "docker-compose*.yml"], filetype="yaml.docker-compose", polyglot="dockerfile")
language("Elixir")
language("HTML+EEX", polyglot="elixir", filetype="elixir", extra_extensions=[".leex"])
language("Elm")
language("EmberScript", filetype="ember-script", polyglot="emberscript")
language("Emblem", extensions=[".emblem"], filetype="emblem")
language("Erlang", extra_extensions=[".app", ".yaws"])
language("Ferm", extensions=[".ferm"], filenames=["ferm.conf"], filetype="ferm")
language("fish")
language("YAML", extra_filenames=["fish_history", "fish_read_history"])
language("Flatbuffers", extensions=[".fbs"], filetype="fbs", polyglot="flatbuffers")
language("F#", polyglot="fsharp", filetype="fsharp")
language("GDScript", filetype="gdscript3", polyglot="gdscript")
language("GLSL", extra_extensions=[".comp"])
language("Git Config", polyglot="git", filetype="gitconfig", extra_filenames=["*.git/config", "*/.config/git/config", "*.git/modules/**/config", "gitconfig"])
language("Git Rebase", polyglot="git", filetype="gitrebase", filenames=["git-rebase-todo"])
language("Git Send Email", polyglot="git", filetype="gitsendemail", filenames=[".gitsendemail.*"])
language("Git Commit", polyglot="git", filetype="gitcommit", filenames=["COMMIT_EDIT_MSG", "TAG_EDIT_MSG", "MERGE_MSG", "MSG"])
language("Gnu MathProg", polyglot="gmpl", filetype="gmpl", extensions=[".mod"])
language("Go")
language("Go Mod", filetype="gomod", filenames=["go.mod"], polyglot="go")
language("Go Template", filetype="gohtmltmpl", extensions=[".tmpl"], polyglot="go")
language("Assembly", filetype="asm", polyglot="assembly")
language("GraphQL")
language("Gradle", filetype="groovy", polyglot="gradle")
language("Haml", extra_extensions=[".hamlc", ".hamlbars"])
language("Handlebars", filetype="mustache", polyglot="handlebars", extra_extensions=[".hulk", ".hjs", ".mustache", ".njk"])
language("HTML+Django", polyglot="jinja", filetype="jinja.html", ignored_extensions=[".mustache", ".njk"])
language("HAProxy")
language("Haskell", extra_extensions=[".bpk", ".hsig"])
language("Haxe")
language("HCL", extra_extensions=[".nomad"], extra_filenames=["Appfile"])
language("Helm", extra_filenames=["*/templates/*.yaml", "*/templates/*.tpl"])
language("HiveQL", polyglot="hive", filetype="hive")
language("I3", extensions=[".i3.config"], filenames=["i3.config"], filetype="i3config", polyglot="i3")
language("HiveQL", polyglot="hive", filetype="hive")
language("iCalendar", polyglot="icalendar", filetype="icalendar", extensions=[".ics"])
language("Idris", extra_filenames=["idris-response"])
language("Ion", extensions=[".ion"], filenames=["~/.config/ion/initrc"])
language("JavaScript")
language("Flow", polyglot="javascript", filetype="flow", extensions=[".flow"])
language("Jenkinsfile", polyglot="jenkins", extensions=[".jenkinsfile", ".Jenkinsfile"], filenames=["Jenkinsfile*"], filetype="Jenkinsfile")
language("JSON5")
language("JSON", extra_extensions=[".jsonp", ".template"])
language("EJS", filetype="jst", extra_extensions=[".jst", ".djs", ".hamljs", ".ect"])
language("JSX", filetype="javascriptreact", polyglot="jsx")
language("Julia")
language("Kotlin")
language("Ledger", extensions=[".ldg", ".ledger", ".journal"])
language("Less")
language("LilyPond")
language("LiveScript")
language("LLVM")
language("Tablegen", polyglot="llvm", extensions=[".td"], filetype="tablegen")

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