/// This list represents the default file types that ripgrep ships with. In /// general, any file format is fair game, although it should generally be /// limited to reasonably popular open formats. For other cases, you can add /// types to each invocation of ripgrep with the '--type-add' flag. /// /// If you would like to add or improve this list, please file a PR: /// . /// /// Please try to keep this list sorted lexicographically and wrapped to 79 /// columns (inclusive). #[rustfmt::skip] pub(crate) 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"]), (&["bat", "batch"], &["*.bat"]), (&["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"]), (&["cmd"], &["*.bat", "*.cmd"]), (&["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"]), (&["csproj"], &["*.csproj"]), (&["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", "*.gradle.kts", "gradle.properties", "gradle-wrapper.*", "gradlew", "gradlew.bat", ]), (&["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", "*.sarif"]), (&["jsonl"], &["*.jsonl"]), (&["julia"], &["*.jl"]), (&["jupyter"], &["*.ipynb", "*.jpynb"]), (&["k"], &["*.k"]), (&["kotlin"], &["*.kt", "*.kts"]), (&["lean"], &["*.lean"]), (&["less"], &["*.less"]), (&["license"], &[ // General "COPYING", "COPYING[.-]*", "COPYRIGHT", "COPYRIGHT[.-]*", "EULA", "EULA[.-]*", "licen[cs]e", "licen[cs]e.*", "LICEN[CS]E", "LICEN[CS]E[.-]*", "*[.-]LICEN[CS]E*", "NOTICE", "NOTICE[.-]*", "PATENTS", "PATENTS[.-]*", "UNLICEN[CS]E", "UNLICEN[CS]E[.-]*", // GPL (gpl.txt, etc.) "agpl[.-]*", "gpl[.-]*", "lgpl[.-]*", // Other license-specific (APACHE-2.0.txt, etc.) "AGPL-*[0-9]*", "APACHE-*[0-9]*", "BSD-*[0-9]*", "CC-BY-*", "GFDL-*[0-9]*", "GNU-*[0-9]*", "GPL-*[0-9]*", "LGPL-*[0-9]*", "MIT-*[0-9]*", "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"], &[ "[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", "md"], &[ "*.markdown", "*.md", "*.mdown", "*.mdwn", "*.mkd", "*.mkdn", "*.mdx", ]), (&["matlab"], &["*.m"]), (&["meson"], &["meson.build", "meson_options.txt", "meson.options"]), (&["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"], &[ // 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"]), (&["prolog"], &["*.pl", "*.pro", "*.prolog", "*.P"]), (&["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"], &[ // Idiomatic files "config.ru", "Gemfile", ".irbrc", "Rakefile", // Extensions "*.gemspec", "*.rb", "*.rbw" ]), (&["rust"], &["*.rs"]), (&["sass"], &["*.sass", "*.scss"]), (&["scala"], &["*.scala", "*.sbt"]), (&["sh"], &[ // Portable/misc. init files ".login", ".logout", ".profile", "profile", // bash-specific init files ".bash_login", "bash_login", ".bash_logout", "bash_logout", ".bash_profile", "bash_profile", ".bashrc", "bashrc", "*.bashrc", // csh-specific init files ".cshrc", "*.cshrc", // ksh-specific init files ".kshrc", "*.kshrc", // tcsh-specific init files ".tcshrc", // zsh-specific init files ".zshenv", "zshenv", ".zlogin", "zlogin", ".zlogout", "zlogout", ".zprofile", "zprofile", ".zshrc", "zshrc", // 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"]), (&["svelte"], &["*.svelte"]), (&["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"], &[ "*.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", "typescript"], &["*.ts", "*.tsx", "*.cts", "*.mts"]), (&["twig"], &["*.twig"]), (&["txt"], &["*.txt"]), (&["typoscript"], &["*.typoscript", "*.ts"]), (&["usd"], &["*.usd", "*.usda", "*.usdc"]), (&["v"], &["*.v", "*.vsh"]), (&["vala"], &["*.vala"]), (&["vb"], &["*.vb"]), (&["vcl"], &["*.vcl"]), (&["verilog"], &["*.v", "*.vh", "*.sv", "*.svh"]), (&["vhdl"], &["*.vhd", "*.vhdl"]), (&["vim"], &[ "*.vim", ".vimrc", ".gvimrc", "vimrc", "gvimrc", "_vimrc", "_gvimrc", ]), (&["vimscript"], &[ "*.vim", ".vimrc", ".gvimrc", "vimrc", "gvimrc", "_vimrc", "_gvimrc", ]), (&["vue"], &["*.vue"]), (&["webidl"], &["*.idl", "*.webidl", "*.widl"]), (&["wgsl"], &["*.wgsl"]), (&["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"], &[ ".zshenv", "zshenv", ".zlogin", "zlogin", ".zlogout", "zlogout", ".zprofile", "zprofile", ".zshrc", "zshrc", "*.zsh", ]), (&["zstd"], &["*.zst", "*.zstd"]), ]; #[cfg(test)] mod tests { use super::DEFAULT_TYPES; #[test] fn default_types_are_sorted() { 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, r#""{}" should be sorted before "{}" in `DEFAULT_TYPES`"#, name, previous_name ); previous_name = name; } } }