diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2020-08-18 15:53:18 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2020-08-18 15:53:18 +0200 |
commit | 00015bd10507181797dd74cbba375f9e88c61e51 (patch) | |
tree | e594b99f168aacf6cba65e53b6410caeed3bbab9 /build.py | |
parent | d821de3142fc67592686cba3f09ce91eac7cee0d (diff) | |
download | vim-polyglot-00015bd10507181797dd74cbba375f9e88c61e51.tar.gz vim-polyglot-00015bd10507181797dd74cbba375f9e88c61e51.zip |
Migrate all ftdetect to linguist
Diffstat (limited to 'build.py')
-rwxr-xr-x | build.py | 152 |
1 files changed, 146 insertions, 6 deletions
@@ -14,6 +14,9 @@ def language(name, extensions=None, filenames=None, syntax=None, + outer_filetype=None, + custom_set=None, + compound=False, extra_extensions=[], extra_filenames=[], ignored_extensions=[] @@ -23,20 +26,78 @@ def language(name, polyglot_name = polyglot or filetype_name lines.append(f"if index(g:polyglot_disabled, '{polyglot_name}') == -1") if syntax != None: - syntax = " syn=" + syntax + 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))): - 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}") + 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') + +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) + +""") + language("ASL", polyglot="acpiasl", extensions=[".asl", ".dsl"]) language("API Blueprint") language("AppleScript") @@ -90,7 +151,7 @@ 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("HTML+Django", polyglot="jinja", filetype="jinja.html", ignored_extensions=[".mustache", ".njk"], extra_extensions=[".j2"]) language("HAProxy") language("Haskell", extra_extensions=[".bpk", ".hsig"]) language("Haxe") @@ -117,7 +178,86 @@ 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") + +lines.append('" restore Vi compatibility settings') +lines.append('let &cpo = s:cpo_save') +lines.append('unlet s:cpo_save') -f = open("ftdetect/polyglot_auto.vim", "w") +f = open("ftdetect/polyglot.vim", "w") f.write("\n".join(lines)) f.close() + |