summaryrefslogtreecommitdiffstats
path: root/build.py
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-08-23 23:25:06 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2020-08-23 23:25:06 +0200
commit114a93bb7c73443d4d0caf9bd9c1875bb96d9d62 (patch)
tree147fd27a288ed8f6e3c361cab884db3a38483354 /build.py
parentf3ab28a28761b6cd606833585c552490a1f5efe1 (diff)
downloadvim-polyglot-114a93bb7c73443d4d0caf9bd9c1875bb96d9d62.tar.gz
vim-polyglot-114a93bb7c73443d4d0caf9bd9c1875bb96d9d62.zip
Migrate ftdetect generation to ruby
Diffstat (limited to 'build.py')
-rwxr-xr-xbuild.py269
1 files changed, 0 insertions, 269 deletions
diff --git a/build.py b/build.py
deleted file mode 100755
index 6b3aa282..00000000
--- a/build.py
+++ /dev/null
@@ -1,269 +0,0 @@
-#!/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,
- outer_filetype=None,
- custom_set=None,
- compound=False,
- 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 = " syntax=" + syntax
- else:
- syntax = ""
- if extensions == None:
- extensions = language.get("extensions", [])
- if filenames == None:
- filenames = language.get("filenames", [])
- if custom_set == None:
- custom_set = f"set ft={filetype_name}{syntax}"
- for ext in sorted(list(set(extensions + extra_extensions) - set(ignored_extensions))):
- if outer_filetype != None:
- lines.append(f" au BufNewFile *.*{ext} execute \"do BufNewFile filetypedetect \" . expand(\"<afile>:r\") | {outer_filetype}")
- lines.append(f" au BufReadPre *.*{ext} execute \"do BufRead filetypedetect \" . expand(\"<afile>:r\") | {outer_filetype}")
- lines.append(f" au BufNewFile,BufRead *{ext} {custom_set}")
- for fn in sorted(filenames + extra_filenames):
- if fn[0] == ".":
- fn = "{.,}" + fn[1:]
- lines.append(f" au BufNewFile,BufRead {fn} {custom_set}")
- lines.append("endif")
- lines.append("")
-
-
-lines.append("""" don't spam the user when Vim is started in Vi compatibility mode
-let s:cpo_save = &cpo
-set cpo&vim
-
-if !exists('g:polyglot_disabled')
- let g:polyglot_disabled = []
-endif
-
-function! s:SetDefault(name, value)
- if !exists(a:name)
- let {a:name} = a:value
- endif
-endfunction
-
-call s:SetDefault('g:markdown_enable_spell_checking', 0)
-call s:SetDefault('g:markdown_enable_input_abbreviations', 0)
-call s:SetDefault('g:markdown_enable_mappings', 0)
-
-" Enable jsx syntax by default
-call s:SetDefault('g:jsx_ext_required', 0)
-
-" Make csv loading faster
-call s:SetDefault('g:csv_start', 1)
-call s:SetDefault('g:csv_end', 2)
-
-" Disable json concealing by default
-call s:SetDefault('g:vim_json_syntax_conceal', 0)
-
-call s:SetDefault('g:filetype_euphoria', 'elixir')
-
-if !exists('g:python_highlight_all')
- call s:SetDefault('g:python_highlight_builtins', 1)
- call s:SetDefault('g:python_highlight_builtin_objs', 1)
- call s:SetDefault('g:python_highlight_builtin_types', 1)
- call s:SetDefault('g:python_highlight_builtin_funcs', 1)
- call s:SetDefault('g:python_highlight_builtin_funcs_kwarg', 1)
- call s:SetDefault('g:python_highlight_exceptions', 1)
- call s:SetDefault('g:python_highlight_string_formatting', 1)
- call s:SetDefault('g:python_highlight_string_format', 1)
- call s:SetDefault('g:python_highlight_string_templates', 1)
- call s:SetDefault('g:python_highlight_indent_errors', 1)
- call s:SetDefault('g:python_highlight_space_errors', 1)
- call s:SetDefault('g:python_highlight_doctests', 1)
- call s:SetDefault('g:python_highlight_func_calls', 1)
- call s:SetDefault('g:python_highlight_class_vars', 1)
- call s:SetDefault('g:python_highlight_operators', 1)
- call s:SetDefault('g:python_highlight_file_headers_as_comments', 1)
- call s:SetDefault('g:python_slow_sync', 1)
-endif
-""")
-
-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("GDScript", filetype="gdscript3", polyglot="gdscript")
-language("GLSL", extra_extensions=[".comp"])
-language("F#", polyglot="fsharp", filetype="fsharp")
-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"], extra_extensions=[".j2"])
-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")
-language("Mako", outer_filetype="let b:mako_outer_lang = &filetype")
-language("Log", extensions=[".log"], filenames=["*_log"])
-language("Markdown", ignored_extensions=[".mdx"])
-language("Mdx", extensions=[".mdx"], polyglot="mdx", filetype="markdown.mdx")
-language("Mathematica", filetype="mma")
-language("Meson")
-language("Dosini", extensions=[".wrap"], filetype="dosini", polyglot="meson")
-language("MoonScript", filetype="moon", polyglot="moon")
-language("Nginx", extra_extensions=[".nginx"], extra_filenames=["*/etc/nginx/*", "*/usr/local/nginx/conf/*", "*/nginx/*.conf", "nginx*.conf", "*nginx.conf"])
-language("Nim")
-language("Nix")
-language("OCaml", extra_extensions=[".mlt", ".mlp", ".mlip", ".mli.cppo", ".ml.cppo"])
-language("OMake", extensions=[".om"], filenames=["OMakefile", "OMakeroot", "Omakeroot.in"], polyglot="ocaml", filetype="omake")
-language("OPam", extensions=[".opam", ".opam.template"], filenames=["opam"], filetype="opam", polyglot="ocaml")
-language("Oasis", filenames=["_oasis"], polyglot="ocaml", filetype="oasis")
-language("OpenCL")
-language("Perl")
-language("PLpgSQL", filetype="sql", ignored_extensions=[".sql"], custom_set="let b:sql_type_override='pgsql' | set ft=sql", polyglot="pgsql")
-language("PlantUML", extra_extensions=[".uml", ".pu"])
-language("Pony")
-language("PowerShell", extra_extensions=[".pssc"])
-language("Ps1XML", extensions=[".ps1xml"], polyglot="powershell", filetype="ps1xml")
-language("Protocol Buffer", polyglot="protobuf", filetype="proto")
-language("Pug")
-language("Puppet")
-language("Embedded Puppet", polyglot="puppet", filetype="embeddedpuppet", extensions=[".epp"])
-language("PureScript")
-language("QMake")
-language("QML")
-language("Racket")
-language("Raku", extra_extensions=[".rakudoc", ".rakutest", ".raku", ".rakumod", ".pod6", ".t6"])
-language("RAML")
-language("HTML+Razor", filetype="razor", polyglot="razor")
-language("Reason")
-language("Merlin", filetype="merlin", polyglot="razor", filenames=[".merlin"])
-language("Ruby", extra_extensions=[".rxml", ".rjs", ".rant", ".axlsx", ".cap", ".opal"], extra_filenames=["Rantfile", ".autotest", "Cheffile", "KitchenSink", "Routefile"])
-language("HTML+ERB", polyglot="ruby", filetype="eruby", extra_extensions=[".rhtml"])
-# Needs to be after ruby
-language("RSpec", filenames=["*_spec.rb"], polyglot="rspec", filetype="ruby", syntax="rspec")
-language("Rust")
-language("Scala", ignored_extensions=[".sbt"])
-language("Scala SBT", filetype="sbt.scala", extensions=[".sbt"], polyglot="scala")
-language("SCSS")
-language("Slim")
-language("Slime", extensions=[".slime"])
-language("SMT", filetype="smt2")
-language("Solidity", extra_extensions=[".sol"])
-language("Stylus", extra_extensions=[".stylus"])
-language("Svelte")
-language("Swift")
-language("Sxhkd", extensions=[".sxhkdrc"], filetype="sxhkdrc", polyglot="sxhkd")
-language("Systemd", extensions=[".automount", ".mount", ".path", ".service", ".socket", ".swap", ".target", ".timer"])
-language("HCL", filetype="terraform", polyglot="terraform")
-language("Textile")
-language("Thrift")
-language("Tmux", filenames=[".tmux.conf"])
-language("TOML", extra_filenames=["Pipfile", "*/.cargo/config", "*/.cargo/credentials"])
-language("TPTP", extensions=[".p", ".tptp", ".ax"])
-language("Twig", ignored_extensions=[".xml.twig"], filetype="html.twig", polyglot="twig")
-language("Twig XML", extensions=[".xml.twig"], filetype="xml.twig", polyglot="twig")
-language("TypeScript")
-language("TSX", filetype="typescriptreact", polyglot="typescript")
-language("XML", extra_extensions=[".cdxml"], ignored_extensions=[".ts", ".tsx"])
-language("V")
-language("Vala", extra_extensions=[".valadoc"])
-language("Visual Basic .NET", filetype="vbnet", polyglot="vbnet")
-language("VCL")
-language("Vifm", extensions=[".vifm"], filenames=["vifmrc", "*vifm/colors/*"])
-language("Vifm Rename", filetype="vifm-rename", filenames=["vifm.rename*"], polyglot="vifm")
-language("Velocity", extensions=[".vm"], filetype="velocity")
-language("Vue", extra_extensions=[".wpy"])
-language("XDC", extensions=[".xdc"])
-language("Zig", extra_extensions=[".zir"])
-language("Zir", extensions=[".zir"], polyglot="zig", filetype="zir")
-language("Jsonnet")
-language("Fennel", extensions=[".fnl"])
-language("mcfunction")
-language("JSONiq", extra_filenames=[".jqrc"], filetype="jq", polyglot="jq")
-language("Requirements", extensions=[".pip"], filenames=["*requirements.{txt,in}", "*require.{txt,in}", "constraints.{txt,in}"])
-
-lines.append('" restore Vi compatibility settings')
-lines.append('let &cpo = s:cpo_save')
-lines.append('unlet s:cpo_save')
-
-f = open("ftdetect/polyglot.vim", "w")
-f.write("\n".join(lines))
-f.close()
-