summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkotborealis <kotborealis@awooo.ru>2021-06-15 17:00:35 +0300
committerAndrew Gallant <jamslam@gmail.com>2023-07-08 18:52:42 -0400
commitf30a30867e2ad79ca7b556e5c0dbbe8c58a89267 (patch)
treeaa4c4b52c3963b3e311cd1af72994fbc18d29d00
parent7313dca47286f5c71bf720172656cf2c14d8f756 (diff)
ignore/types: name aliases for file types
We also make py/python, md/markdown and ts/typescript aliases of one another. Note that this only introduces aliases at the point where default types are defined. This just makes them a bit easier to read/write, and also makes it easier to expose more names that describe the same thing. Fixes #1857, Closes #1895
-rw-r--r--crates/ignore/src/default_types.rs405
-rw-r--r--crates/ignore/src/types.rs16
2 files changed, 208 insertions, 213 deletions
diff --git a/crates/ignore/src/default_types.rs b/crates/ignore/src/default_types.rs
index 6288adf9..06170752 100644
--- a/crates/ignore/src/default_types.rs
+++ b/crates/ignore/src/default_types.rs
@@ -9,111 +9,111 @@
/// Please try to keep this list sorted lexicographically and wrapped to 79
/// columns (inclusive).
#[rustfmt::skip]
-pub const DEFAULT_TYPES: &[(&str, &[&str])] = &[
- ("ada", &["*.adb", "*.ads"]),
- ("agda", &["*.agda", "*.lagda"]),
- ("aidl", &["*.aidl"]),
- ("alire", &["alire.toml"]),
- ("amake", &["*.mk", "*.bp"]),
- ("asciidoc", &["*.adoc", "*.asc", "*.asciidoc"]),
- ("asm", &["*.asm", "*.s", "*.S"]),
- ("asp", &[
+pub const DEFAULT_TYPES: &[(&[&str], &[&str])] = &[
+ (&["ada"], &["*.adb", "*.ads"]),
+ (&["agda"], &["*.agda", "*.lagda"]),
+ (&["aidl"], &["*.aidl"]),
+ (&["alire"], &["alire.toml"]),
+ (&["amake"], &["*.mk", "*.bp"]),
+ (&["asciidoc"], &["*.adoc", "*.asc", "*.asciidoc"]),
+ (&["asm"], &["*.asm", "*.s", "*.S"]),
+ (&["asp"], &[
"*.aspx", "*.aspx.cs", "*.aspx.vb", "*.ascx", "*.ascx.cs",
"*.ascx.vb", "*.asp"
]),
- ("ats", &["*.ats", "*.dats", "*.sats", "*.hats"]),
- ("avro", &["*.avdl", "*.avpr", "*.avsc"]),
- ("awk", &["*.awk"]),
- ("bazel", &[
+ (&["ats"], &["*.ats", "*.dats", "*.sats", "*.hats"]),
+ (&["avro"], &["*.avdl", "*.avpr", "*.avsc"]),
+ (&["awk"], &["*.awk"]),
+ (&["bazel"], &[
"*.bazel", "*.bzl", "*.BUILD", "*.bazelrc", "BUILD", "MODULE.bazel",
"WORKSPACE", "WORKSPACE.bazel",
]),
- ("bitbake", &["*.bb", "*.bbappend", "*.bbclass", "*.conf", "*.inc"]),
- ("brotli", &["*.br"]),
- ("buildstream", &["*.bst"]),
- ("bzip2", &["*.bz2", "*.tbz2"]),
- ("c", &["*.[chH]", "*.[chH].in", "*.cats"]),
- ("cabal", &["*.cabal"]),
- ("candid", &["*.did"]),
- ("carp", &["*.carp"]),
- ("cbor", &["*.cbor"]),
- ("ceylon", &["*.ceylon"]),
- ("clojure", &["*.clj", "*.cljc", "*.cljs", "*.cljx"]),
- ("cmake", &["*.cmake", "CMakeLists.txt"]),
- ("cml", &["*.cml"]),
- ("coffeescript", &["*.coffee"]),
- ("config", &["*.cfg", "*.conf", "*.config", "*.ini"]),
- ("coq", &["*.v"]),
- ("cpp", &[
+ (&["bitbake"], &["*.bb", "*.bbappend", "*.bbclass", "*.conf", "*.inc"]),
+ (&["brotli"], &["*.br"]),
+ (&["buildstream"], &["*.bst"]),
+ (&["bzip2"], &["*.bz2", "*.tbz2"]),
+ (&["c"], &["*.[chH]", "*.[chH].in", "*.cats"]),
+ (&["cabal"], &["*.cabal"]),
+ (&["candid"], &["*.did"]),
+ (&["carp"], &["*.carp"]),
+ (&["cbor"], &["*.cbor"]),
+ (&["ceylon"], &["*.ceylon"]),
+ (&["clojure"], &["*.clj", "*.cljc", "*.cljs", "*.cljx"]),
+ (&["cmake"], &["*.cmake", "CMakeLists.txt"]),
+ (&["cml"], &["*.cml"]),
+ (&["coffeescript"], &["*.coffee"]),
+ (&["config"], &["*.cfg", "*.conf", "*.config", "*.ini"]),
+ (&["coq"], &["*.v"]),
+ (&["cpp"], &[
"*.[ChH]", "*.cc", "*.[ch]pp", "*.[ch]xx", "*.hh", "*.inl",
"*.[ChH].in", "*.cc.in", "*.[ch]pp.in", "*.[ch]xx.in", "*.hh.in",
]),
- ("creole", &["*.creole"]),
- ("crystal", &["Projectfile", "*.cr", "*.ecr", "shard.yml"]),
- ("cs", &["*.cs"]),
- ("csharp", &["*.cs"]),
- ("cshtml", &["*.cshtml"]),
- ("css", &["*.css", "*.scss"]),
- ("csv", &["*.csv"]),
- ("cuda", &["*.cu", "*.cuh"]),
- ("cython", &["*.pyx", "*.pxi", "*.pxd"]),
- ("d", &["*.d"]),
- ("dart", &["*.dart"]),
- ("devicetree", &["*.dts", "*.dtsi"]),
- ("dhall", &["*.dhall"]),
- ("diff", &["*.patch", "*.diff"]),
- ("dita", &["*.dita", "*.ditamap", "*.ditaval"]),
- ("docker", &["*Dockerfile*"]),
- ("dockercompose", &["docker-compose.yml", "docker-compose.*.yml"]),
- ("dts", &["*.dts", "*.dtsi"]),
- ("dvc", &["Dvcfile", "*.dvc"]),
- ("ebuild", &["*.ebuild", "*.eclass"]),
- ("edn", &["*.edn"]),
- ("elisp", &["*.el"]),
- ("elixir", &["*.ex", "*.eex", "*.exs", "*.heex", "*.leex", "*.livemd"]),
- ("elm", &["*.elm"]),
- ("erb", &["*.erb"]),
- ("erlang", &["*.erl", "*.hrl"]),
- ("fennel", &["*.fnl"]),
- ("fidl", &["*.fidl"]),
- ("fish", &["*.fish"]),
- ("flatbuffers", &["*.fbs"]),
- ("fortran", &[
+ (&["creole"], &["*.creole"]),
+ (&["crystal"], &["Projectfile", "*.cr", "*.ecr", "shard.yml"]),
+ (&["cs"], &["*.cs"]),
+ (&["csharp"], &["*.cs"]),
+ (&["cshtml"], &["*.cshtml"]),
+ (&["css"], &["*.css", "*.scss"]),
+ (&["csv"], &["*.csv"]),
+ (&["cuda"], &["*.cu", "*.cuh"]),
+ (&["cython"], &["*.pyx", "*.pxi", "*.pxd"]),
+ (&["d"], &["*.d"]),
+ (&["dart"], &["*.dart"]),
+ (&["devicetree"], &["*.dts", "*.dtsi"]),
+ (&["dhall"], &["*.dhall"]),
+ (&["diff"], &["*.patch", "*.diff"]),
+ (&["dita"], &["*.dita", "*.ditamap", "*.ditaval"]),
+ (&["docker"], &["*Dockerfile*"]),
+ (&["dockercompose"], &["docker-compose.yml", "docker-compose.*.yml"]),
+ (&["dts"], &["*.dts", "*.dtsi"]),
+ (&["dvc"], &["Dvcfile", "*.dvc"]),
+ (&["ebuild"], &["*.ebuild", "*.eclass"]),
+ (&["edn"], &["*.edn"]),
+ (&["elisp"], &["*.el"]),
+ (&["elixir"], &["*.ex", "*.eex", "*.exs", "*.heex", "*.leex", "*.livemd"]),
+ (&["elm"], &["*.elm"]),
+ (&["erb"], &["*.erb"]),
+ (&["erlang"], &["*.erl", "*.hrl"]),
+ (&["fennel"], &["*.fnl"]),
+ (&["fidl"], &["*.fidl"]),
+ (&["fish"], &["*.fish"]),
+ (&["flatbuffers"], &["*.fbs"]),
+ (&["fortran"], &[
"*.f", "*.F", "*.f77", "*.F77", "*.pfo",
"*.f90", "*.F90", "*.f95", "*.F95",
]),
- ("fsharp", &["*.fs", "*.fsx", "*.fsi"]),
- ("fut", &["*.fut"]),
- ("gap", &["*.g", "*.gap", "*.gi", "*.gd", "*.tst"]),
- ("gn", &["*.gn", "*.gni"]),
- ("go", &["*.go"]),
- ("gprbuild", &["*.gpr"]),
- ("gradle", &["*.gradle"]),
- ("graphql", &["*.graphql", "*.graphqls"]),
- ("groovy", &["*.groovy", "*.gradle"]),
- ("gzip", &["*.gz", "*.tgz"]),
- ("h", &["*.h", "*.hh", "*.hpp"]),
- ("haml", &["*.haml"]),
- ("hare", &["*.ha"]),
- ("haskell", &["*.hs", "*.lhs", "*.cpphs", "*.c2hs", "*.hsc"]),
- ("hbs", &["*.hbs"]),
- ("hs", &["*.hs", "*.lhs"]),
- ("html", &["*.htm", "*.html", "*.ejs"]),
- ("hy", &["*.hy"]),
- ("idris", &["*.idr", "*.lidr"]),
- ("janet", &["*.janet"]),
- ("java", &["*.java", "*.jsp", "*.jspx", "*.properties"]),
- ("jinja", &["*.j2", "*.jinja", "*.jinja2"]),
- ("jl", &["*.jl"]),
- ("js", &["*.js", "*.jsx", "*.vue", "*.cjs", "*.mjs"]),
- ("json", &["*.json", "composer.lock"]),
- ("jsonl", &["*.jsonl"]),
- ("julia", &["*.jl"]),
- ("jupyter", &["*.ipynb", "*.jpynb"]),
- ("k", &["*.k"]),
- ("kotlin", &["*.kt", "*.kts"]),
- ("less", &["*.less"]),
- ("license", &[
+ (&["fsharp"], &["*.fs", "*.fsx", "*.fsi"]),
+ (&["fut"], &["*.fut"]),
+ (&["gap"], &["*.g", "*.gap", "*.gi", "*.gd", "*.tst"]),
+ (&["gn"], &["*.gn", "*.gni"]),
+ (&["go"], &["*.go"]),
+ (&["gprbuild"], &["*.gpr"]),
+ (&["gradle"], &["*.gradle"]),
+ (&["graphql"], &["*.graphql", "*.graphqls"]),
+ (&["groovy"], &["*.groovy", "*.gradle"]),
+ (&["gzip"], &["*.gz", "*.tgz"]),
+ (&["h"], &["*.h", "*.hh", "*.hpp"]),
+ (&["haml"], &["*.haml"]),
+ (&["hare"], &["*.ha"]),
+ (&["haskell"], &["*.hs", "*.lhs", "*.cpphs", "*.c2hs", "*.hsc"]),
+ (&["hbs"], &["*.hbs"]),
+ (&["hs"], &["*.hs", "*.lhs"]),
+ (&["html"], &["*.htm", "*.html", "*.ejs"]),
+ (&["hy"], &["*.hy"]),
+ (&["idris"], &["*.idr", "*.lidr"]),
+ (&["janet"], &["*.janet"]),
+ (&["java"], &["*.java", "*.jsp", "*.jspx", "*.properties"]),
+ (&["jinja"], &["*.j2", "*.jinja", "*.jinja2"]),
+ (&["jl"], &["*.jl"]),
+ (&["js"], &["*.js", "*.jsx", "*.vue", "*.cjs", "*.mjs"]),
+ (&["json"], &["*.json", "composer.lock"]),
+ (&["jsonl"], &["*.jsonl"]),
+ (&["julia"], &["*.jl"]),
+ (&["jupyter"], &["*.ipynb", "*.jpynb"]),
+ (&["k"], &["*.k"]),
+ (&["kotlin"], &["*.kt", "*.kts"]),
+ (&["less"], &["*.less"]),
+ (&["license"], &[
// General
"COPYING", "COPYING[.-]*",
"COPYRIGHT", "COPYRIGHT[.-]*",
@@ -140,23 +140,23 @@ pub const DEFAULT_TYPES: &[(&str, &[&str])] = &[
"MPL-*[0-9]*",
"OFL-*[0-9]*",
]),
- ("lilypond", &["*.ly", "*.ily"]),
- ("lisp", &["*.el", "*.jl", "*.lisp", "*.lsp", "*.sc", "*.scm"]),
- ("lock", &["*.lock", "package-lock.json"]),
- ("log", &["*.log"]),
- ("lua", &["*.lua"]),
- ("lz4", &["*.lz4"]),
- ("lzma", &["*.lzma"]),
- ("m4", &["*.ac", "*.m4"]),
- ("make", &[
+ (&["lilypond"], &["*.ly", "*.ily"]),
+ (&["lisp"], &["*.el", "*.jl", "*.lisp", "*.lsp", "*.sc", "*.scm"]),
+ (&["lock"], &["*.lock", "package-lock.json"]),
+ (&["log"], &["*.log"]),
+ (&["lua"], &["*.lua"]),
+ (&["lz4"], &["*.lz4"]),
+ (&["lzma"], &["*.lzma"]),
+ (&["m4"], &["*.ac", "*.m4"]),
+ (&["make"], &[
"[Gg][Nn][Uu]makefile", "[Mm]akefile",
"[Gg][Nn][Uu]makefile.am", "[Mm]akefile.am",
"[Gg][Nn][Uu]makefile.in", "[Mm]akefile.in",
"*.mk", "*.mak"
]),
- ("mako", &["*.mako", "*.mao"]),
- ("man", &["*.[0-9lnpx]", "*.[0-9][cEFMmpSx]"]),
- ("markdown", &[
+ (&["mako"], &["*.mako", "*.mao"]),
+ (&["man"], &["*.[0-9lnpx]", "*.[0-9][cEFMmpSx]"]),
+ (&["markdown", "md"], &[
"*.markdown",
"*.md",
"*.mdown",
@@ -165,75 +165,66 @@ pub const DEFAULT_TYPES: &[(&str, &[&str])] = &[
"*.mkdn",
"*.mdx",
]),
- ("matlab", &["*.m"]),
- ("md", &[
- "*.markdown",
- "*.md",
- "*.mdown",
- "*.mdwn",
- "*.mkd",
- "*.mkdn",
- "*.mdx",
- ]),
- ("meson", &["meson.build", "meson_options.txt"]),
- ("minified", &["*.min.html", "*.min.css", "*.min.js"]),
- ("mint", &["*.mint"]),
- ("mk", &["mkfile"]),
- ("ml", &["*.ml"]),
- ("motoko", &["*.mo"]),
- ("msbuild", &[
+ (&["matlab"], &["*.m"]),
+ (&["meson"], &["meson.build", "meson_options.txt"]),
+ (&["minified"], &["*.min.html", "*.min.css", "*.min.js"]),
+ (&["mint"], &["*.mint"]),
+ (&["mk"], &["mkfile"]),
+ (&["ml"], &["*.ml"]),
+ (&["motoko"], &["*.mo"]),
+ (&["msbuild"], &[
"*.csproj", "*.fsproj", "*.vcxproj", "*.proj", "*.props", "*.targets",
"*.sln",
]),
- ("nim", &["*.nim", "*.nimf", "*.nimble", "*.nims"]),
- ("nix", &["*.nix"]),
- ("objc", &["*.h", "*.m"]),
- ("objcpp", &["*.h", "*.mm"]),
- ("ocaml", &["*.ml", "*.mli", "*.mll", "*.mly"]),
- ("org", &["*.org", "*.org_archive"]),
- ("pants", &["BUILD"]),
- ("pascal", &["*.pas", "*.dpr", "*.lpr", "*.pp", "*.inc"]),
- ("pdf", &["*.pdf"]),
- ("perl", &["*.perl", "*.pl", "*.PL", "*.plh", "*.plx", "*.pm", "*.t"]),
- ("php", &[
+ (&["nim"], &["*.nim", "*.nimf", "*.nimble", "*.nims"]),
+ (&["nix"], &["*.nix"]),
+ (&["objc"], &["*.h", "*.m"]),
+ (&["objcpp"], &["*.h", "*.mm"]),
+ (&["ocaml"], &["*.ml", "*.mli", "*.mll", "*.mly"]),
+ (&["org"], &["*.org", "*.org_archive"]),
+ (&["pants"], &["BUILD"]),
+ (&["pascal"], &["*.pas", "*.dpr", "*.lpr", "*.pp", "*.inc"]),
+ (&["pdf"], &["*.pdf"]),
+ (&["perl"], &["*.perl", "*.pl", "*.PL", "*.plh", "*.plx", "*.pm", "*.t"]),
+ (&["php"], &[
// note that PHP 6 doesn't exist
// See: https://wiki.php.net/rfc/php6
"*.php", "*.php3", "*.php4", "*.php5", "*.php7", "*.php8",
"*.pht", "*.phtml"
]),
- ("po", &["*.po"]),
- ("pod", &["*.pod"]),
- ("postscript", &["*.eps", "*.ps"]),
- ("protobuf", &["*.proto"]),
- ("ps", &["*.cdxml", "*.ps1", "*.ps1xml", "*.psd1", "*.psm1"]),
- ("puppet", &["*.epp", "*.erb", "*.pp", "*.rb"]),
- ("purs", &["*.purs"]),
- ("py", &["*.py", "*.pyi"]),
- ("qmake", &["*.pro", "*.pri", "*.prf"]),
- ("qml", &["*.qml"]),
- ("r", &["*.R", "*.r", "*.Rmd", "*.Rnw"]),
- ("racket", &["*.rkt"]),
- ("raku", &[
+ (&["po"], &["*.po"]),
+ (&["pod"], &["*.pod"]),
+ (&["postscript"], &["*.eps", "*.ps"]),
+ (&["protobuf"], &["*.proto"]),
+ (&["ps"], &["*.cdxml", "*.ps1", "*.ps1xml", "*.psd1", "*.psm1"]),
+ (&["puppet"], &["*.epp", "*.erb", "*.pp", "*.rb"]),
+ (&["purs"], &["*.purs"]),
+ (&["py", "python"], &["*.py", "*.pyi"]),
+ (&["qmake"], &["*.pro", "*.pri", "*.prf"]),
+ (&["qml"], &["*.qml"]),
+ (&["r"], &["*.R", "*.r", "*.Rmd", "*.Rnw"]),
+ (&["racket"], &["*.rkt"]),
+ (&["raku"], &[
"*.raku", "*.rakumod", "*.rakudoc", "*.rakutest",
"*.p6", "*.pl6", "*.pm6"
]),
- ("rdoc", &["*.rdoc"]),
- ("readme", &["README*", "*README"]),
- ("reasonml", &["*.re", "*.rei"]),
- ("red", &["*.r", "*.red", "*.reds"]),
- ("rescript", &["*.res", "*.resi"]),
- ("robot", &["*.robot"]),
- ("rst", &["*.rst"]),
- ("ruby", &[
+ (&["rdoc"], &["*.rdoc"]),
+ (&["readme"], &["README*", "*README"]),
+ (&["reasonml"], &["*.re", "*.rei"]),
+ (&["red"], &["*.r", "*.red", "*.reds"]),
+ (&["rescript"], &["*.res", "*.resi"]),
+ (&["robot"], &["*.robot"]),
+ (&["rst"], &["*.rst"]),
+ (&["ruby"], &[
// Idiomatic files
"config.ru", "Gemfile", ".irbrc", "Rakefile",
// Extensions
"*.gemspec", "*.rb", "*.rbw"
]),
- ("rust", &["*.rs"]),
- ("sass", &["*.sass", "*.scss"]),
- ("scala", &["*.scala", "*.sbt"]),
- ("sh", &[
+ (&["rust"], &["*.rs"]),
+ (&["sass"], &["*.sass", "*.scss"]),
+ (&["scala"], &["*.scala", "*.sbt"]),
+ (&["sh"], &[
// Portable/misc. init files
".login", ".logout", ".profile", "profile",
// bash-specific init files
@@ -256,67 +247,66 @@ pub const DEFAULT_TYPES: &[(&str, &[&str])] = &[
// Extensions
"*.bash", "*.csh", "*.ksh", "*.sh", "*.tcsh", "*.zsh",
]),
- ("slim", &["*.skim", "*.slim", "*.slime"]),
- ("smarty", &["*.tpl"]),
- ("sml", &["*.sml", "*.sig"]),
- ("solidity", &["*.sol"]),
- ("soy", &["*.soy"]),
- ("spark", &["*.spark"]),
- ("spec", &["*.spec"]),
- ("sql", &["*.sql", "*.psql"]),
- ("stylus", &["*.styl"]),
- ("sv", &["*.v", "*.vg", "*.sv", "*.svh", "*.h"]),
- ("svg", &["*.svg"]),
- ("swift", &["*.swift"]),
- ("swig", &["*.def", "*.i"]),
- ("systemd", &[
+ (&["slim"], &["*.skim", "*.slim", "*.slime"]),
+ (&["smarty"], &["*.tpl"]),
+ (&["sml"], &["*.sml", "*.sig"]),
+ (&["solidity"], &["*.sol"]),
+ (&["soy"], &["*.soy"]),
+ (&["spark"], &["*.spark"]),
+ (&["spec"], &["*.spec"]),
+ (&["sql"], &["*.sql", "*.psql"]),
+ (&["stylus"], &["*.styl"]),
+ (&["sv"], &["*.v", "*.vg", "*.sv", "*.svh", "*.h"]),
+ (&["svg"], &["*.svg"]),
+ (&["swift"], &["*.swift"]),
+ (&["swig"], &["*.def", "*.i"]),
+ (&["systemd"], &[
"*.automount", "*.conf", "*.device", "*.link", "*.mount", "*.path",
"*.scope", "*.service", "*.slice", "*.socket", "*.swap", "*.target",
"*.timer",
]),
- ("taskpaper", &["*.taskpaper"]),
- ("tcl", &["*.tcl"]),
- ("tex", &["*.tex", "*.ltx", "*.cls", "*.sty", "*.bib", "*.dtx", "*.ins"]),
- ("texinfo", &["*.texi"]),
- ("textile", &["*.textile"]),
- ("tf", &[
+ (&["taskpaper"], &["*.taskpaper"]),
+ (&["tcl"], &["*.tcl"]),
+ (&["tex"], &["*.tex", "*.ltx", "*.cls", "*.sty", "*.bib", "*.dtx", "*.ins"]),
+ (&["texinfo"], &["*.texi"]),
+ (&["textile"], &["*.textile"]),
+ (&["tf"], &[
"*.tf", "*.auto.tfvars", "terraform.tfvars", "*.tf.json",
"*.auto.tfvars.json", "terraform.tfvars.json", "*.terraformrc",
"terraform.rc", "*.tfrc", "*.terraform.lock.hcl",
]),
- ("thrift", &["*.thrift"]),
- ("toml", &["*.toml", "Cargo.lock"]),
- ("ts", &["*.ts", "*.tsx", "*.cts", "*.mts"]),
- ("twig", &["*.twig"]),
- ("txt", &["*.txt"]),
- ("typescript", &["*.ts", "*.tsx", "*.cts", "*.mts"]),
- ("typoscript", &["*.typoscript", "*.ts"]),
- ("usd", &["*.usd", "*.usda", "*.usdc"]),
- ("v", &["*.v"]),
- ("vala", &["*.vala"]),
- ("vb", &["*.vb"]),
- ("vcl", &["*.vcl"]),
- ("verilog", &["*.v", "*.vh", "*.sv", "*.svh"]),
- ("vhdl", &["*.vhd", "*.vhdl"]),
- ("vim", &[
+ (&["thrift"], &["*.thrift"]),
+ (&["toml"], &["*.toml", "Cargo.lock"]),
+ (&["ts", "typescript"], &["*.ts", "*.tsx", "*.cts", "*.mts"]),
+ (&["twig"], &["*.twig"]),
+ (&["txt"], &["*.txt"]),
+ (&["typoscript"], &["*.typoscript", "*.ts"]),
+ (&["usd"], &["*.usd", "*.usda", "*.usdc"]),
+ (&["v"], &["*.v"]),
+ (&["vala"], &["*.vala"]),
+ (&["vb"], &["*.vb"]),
+ (&["vcl"], &["*.vcl"]),
+ (&["verilog"], &["*.v", "*.vh", "*.sv", "*.svh"]),
+ (&["vhdl"], &["*.vhd", "*.vhdl"]),
+ (&["vim"], &[
"*.vim", ".vimrc", ".gvimrc", "vimrc", "gvimrc", "_vimrc", "_gvimrc",
]),
- ("vimscript", &[
+ (&["vimscript"], &[
"*.vim", ".vimrc", ".gvimrc", "vimrc", "gvimrc", "_vimrc", "_gvimrc",
]),
- ("webidl", &["*.idl", "*.webidl", "*.widl"]),
- ("wiki", &["*.mediawiki", "*.wiki"]),
- ("xml", &[
+ (&["webidl"], &["*.idl", "*.webidl", "*.widl"]),
+ (&["wiki"], &["*.mediawiki", "*.wiki"]),
+ (&["xml"], &[
"*.xml", "*.xml.dist", "*.dtd", "*.xsl", "*.xslt", "*.xsd", "*.xjb",
"*.rng", "*.sch", "*.xhtml",
]),
- ("xz", &["*.xz", "*.txz"]),
- ("yacc", &["*.y"]),
- ("yaml", &["*.yaml", "*.yml"]),
- ("yang", &["*.yang"]),
- ("z", &["*.Z"]),
- ("zig", &["*.zig"]),
- ("zsh", &[
+ (&["xz"], &["*.xz", "*.txz"]),
+ (&["yacc"], &["*.y"]),
+ (&["yaml"], &["*.yaml", "*.yml"]),
+ (&["yang"], &["*.yang"]),
+ (&["z"], &["*.Z"]),
+ (&["zig"], &["*.zig"]),
+ (&["zsh"], &[
".zshenv", "zshenv",
".zlogin", "zlogin",
".zlogout", "zlogout",
@@ -324,7 +314,7 @@ pub const DEFAULT_TYPES: &[(&str, &[&str])] = &[
".zshrc", "zshrc",
"*.zsh",
]),
- ("zstd", &["*.zst", "*.zstd"]),
+ (&["zstd"], &["*.zst", "*.zstd"]),
];
#[cfg(test)]
@@ -333,10 +323,8 @@ mod tests {
#[test]
fn default_types_are_sorted() {
- let mut names = DEFAULT_TYPES.iter().map(|(name, _exts)| name);
-
+ let mut names = DEFAULT_TYPES.iter().map(|(aliases, _)| aliases[0]);
let Some(mut previous_name) = names.next() else { return; };
-
for name in names {
assert!(
name > previous_name,
@@ -344,7 +332,6 @@ mod tests {
name,
previous_name
);
-
previous_name = name;
}
}
diff --git a/crates/ignore/src/types.rs b/crates/ignore/src/types.rs
index 616a8d21..fc1c35d7 100644
--- a/crates/ignore/src/types.rs
+++ b/crates/ignore/src/types.rs
@@ -488,9 +488,11 @@ impl TypesBuilder {
/// Add a set of default file type definitions.
pub fn add_defaults(&mut self) -> &mut TypesBuilder {
static MSG: &'static str = "adding a default type should never fail";
- for &(name, exts) in DEFAULT_TYPES {
- for ext in exts {
- self.add(name, ext).expect(MSG);
+ for &(names, exts) in DEFAULT_TYPES {
+ for name in names {
+ for ext in exts {
+ self.add(name, ext).expect(MSG);
+ }
}
}
self
@@ -537,6 +539,8 @@ mod tests {
"html:*.htm",
"rust:*.rs",
"js:*.js",
+ "py:*.py",
+ "python:*.py",
"foo:*.{rs,foo}",
"combo:include:html,rust",
]
@@ -551,6 +555,8 @@ mod tests {
matched!(match7, types(), vec!["foo"], vec!["rust"], "main.foo");
matched!(match8, types(), vec!["combo"], vec![], "index.html");
matched!(match9, types(), vec!["combo"], vec![], "lib.rs");
+ matched!(match10, types(), vec!["py"], vec![], "main.py");
+ matched!(match11, types(), vec!["python"], vec![], "main.py");
matched!(not, matchnot1, types(), vec!["rust"], vec![], "index.html");
matched!(not, matchnot2, types(), vec![], vec!["rust"], "main.rs");
@@ -558,6 +564,8 @@ mod tests {
matched!(not, matchnot4, types(), vec!["rust"], vec!["foo"], "main.rs");
matched!(not, matchnot5, types(), vec!["rust"], vec!["foo"], "main.foo");
matched!(not, matchnot6, types(), vec!["combo"], vec![], "leftpad.js");
+ matched!(not, matchnot7, types(), vec!["py"], vec![], "index.html");
+ matched!(not, matchnot8, types(), vec!["python"], vec![], "doc.md");
#[test]
fn test_invalid_defs() {
@@ -569,7 +577,7 @@ mod tests {
let original_defs = btypes.definitions();
let bad_defs = vec![
// Reference to type that does not exist
- "combo:include:html,python",
+ "combo:include:html,qwerty",
// Bad format
"combo:foobar:html,rust",
"",