/** * Default file icon associations * Keys are icon file basenames */ type FileIcons = Record< string, { languageIds?: Array; fileExtensions?: Array; fileNames?: Array; } >; // @keep-sorted const fileIcons: FileIcons = { "3d": { fileExtensions: [ "fbx", "glb", "gltf", "ma", "mb", "obj", "prc", "stl", "u3d", "usd", ], }, "adobe-ae": { fileExtensions: ["aep"], }, "adobe-ai": { fileExtensions: ["ai"], }, "adobe-id": { fileExtensions: ["indd", "indl", "indb"], }, "adobe-ps": { fileExtensions: ["psd", "psb"], }, "adobe-xd": { fileExtensions: ["xd"], }, adonis: { fileNames: [".adonisrc.json", "ace"], }, alex: { fileNames: [".alexrc", ".alexrc.yaml", ".alexrc.yml", ".alexrc.js"], }, amber: { languageIds: ["amber"], fileExtensions: ["ab", "amber"], }, android: { fileNames: ["androidmanifest.xml"], fileExtensions: ["apk", "smali", "dex"], }, angular: { fileExtensions: ["ng-template"], fileNames: [ "angular-cli.json", ".angular-cli.json", "angular.json", "ng-package.json", ], }, "ansible-lint": { fileNames: [".ansible-lint", "ansible-lint.yml", "ansible-lint.yaml"], }, antlr: { fileExtensions: ["g4"], }, apache: { fileNames: ["maven.config", "jvm.config", "pom.xml"], fileExtensions: ["thrift"], }, "api-blueprint": { fileExtensions: ["apib", "apiblueprint"], }, apollo: { fileNames: ["apollo.config.js", "apollo.config.ts"], }, apple: { fileNames: [ "apple-app-site-association", "apple-developer-merchantid-domain-association", ], }, arduino: { languageIds: ["arduino"], fileExtensions: ["ino"], }, asciidoc: { fileExtensions: ["adoc", "asciidoc", "asc"], }, assembly: { fileExtensions: [ "asm", "a51", "inc", "nasm", "s", "ms", "agc", "ags", "aea", "argus", "mitigus", "binsource", ], }, "astro-config": { fileNames: [ "astro.config.js", "astro.config.mjs", "astro.config.cjs", "astro.config.ts", "astro.config.cts", "astro.config.mts", ], }, astro: { fileExtensions: ["astro"], languageIds: ["astro"], }, audio: { fileExtensions: [ "aac", "aiff", "alac", "flac", "m4a", "m4p", "mogg", "mp3", "oga", "opus", "wav", "wma", "wv", ], }, autohotkey: { fileExtensions: ["ahk"], languageIds: ["ahk"], }, "azure-pipelines": { fileNames: [ "azure-pipelines.yml", "azure-pipelines.yaml", "azure-pipelines-main.yml", "azure-pipelines-main.yaml", ], fileExtensions: [ "azure-pipelines.yml", "azure-pipelines.yaml", "azure-pipelines-main.yml", "azure-pipelines-main.yaml", ], }, babel: { fileNames: [ ".babelrc", ".babelrc.cjs", ".babelrc.js", ".babelrc.mjs", ".babelrc.json", "babel.config.cjs", "babel.config.js", "babel.config.mjs", "babel.config.json", "babel-transform.js", ".babel-plugin-macrosrc", ".babel-plugin-macrosrc.json", ".babel-plugin-macrosrc.yaml", ".babel-plugin-macrosrc.yml", ".babel-plugin-macrosrc.js", "babel-plugin-macros.config.js", ], }, bash: { languageIds: ["awk", "shellscript"], fileExtensions: ["sh", "ksh", "csh", "tcsh", "zsh", "bash", "awk", "fish"], fileNames: [ "applypatch-msg", "pre-applypatch", "post-applypatch", "pre-commit", "prepare-commit-message", "commit-msg", "post-commit", "pre-rebase", "post-checkout", "post-merge", "pre-receive", "update", "post-receive", "post-update", "pre-auto-gc", "post-rewrite", "pre-push", ], }, batch: { languageIds: ["bat"], fileExtensions: ["bat", "cmd"], }, bazel: { fileExtensions: ["bzl", "bazel"], fileNames: [".bazelrc"], }, benchmark: { fileNames: [ "benchmark.md", "benchmark.rst", "benchmark.txt", "benchmarks.md", "benchmarks.rst", "benchmarks.txt", ], }, bicep: { languageIds: ["bicep"], fileExtensions: ["bicep", "bicepparam"], fileNames: ["bicepconfig.json"], }, binary: { languageIds: ["code-text-binary"], fileExtensions: ["bin"], }, biome: { fileNames: ["biome.json", "biome.jsonc"], }, bitbucket: { fileNames: ["bitbucket-pipelines.yaml", "bitbucket-pipelines.yml"], }, blink: { fileExtensions: ["blink"], }, blitz: { fileNames: [ "blitz.config.js", "blitz.config.ts", ".blitz.config.compiled.js", ], }, bower: { fileNames: [".bowerrc", "bower.json"], }, browserslist: { fileNames: ["browserslist", ".browserslistrc"], }, "bun-lock": { fileNames: ["bun.lock", "bun.lockb"], }, bun: { fileNames: ["bunfig.toml"], }, "c-header": { fileExtensions: ["h"], }, c: { languageIds: ["c"], fileExtensions: ["c", "i", "mi"], }, cabal: { fileExtensions: ["cabal"], fileNames: ["cabal.project"], }, caddy: { fileExtensions: ["caddyfile"], fileNames: ["caddyfile"], }, capacitor: { fileNames: ["capacitor.config.json", "capacitor.config.ts"], }, "cargo-lock": { fileNames: ["cargo.lock"], }, cargo: { fileNames: ["cargo.toml"], }, certificate: { fileExtensions: ["cer", "cert", "crt", "pfx", "entitlements"], }, changelog: { fileNames: [ "changelog", "changelog.md", "changelog.rst", "changelog.txt", "changes", "changes.md", "changes.rst", "changes.txt", ], }, "circle-ci": { fileNames: ["circle.yml"], }, clojure: { languageIds: ["clojure"], fileExtensions: ["clj", "cljs", "cljc"], }, cmake: { fileExtensions: ["cmake"], fileNames: ["cmakelists.txt", "cmakecache.txt"], }, cobol: { languageIds: ["cobol"], fileExtensions: ["cob", "cbl"], }, "code-climate": { fileNames: [".codeclimate.yml"], }, "code-of-conduct": { fileNames: ["code_of_conduct.md", "code_of_conduct.txt", "code_of_conduct"], }, codeowners: { fileNames: ["codeowners", "owners"], }, coffeescript: { languageIds: ["coffeescript"], fileExtensions: ["coffee", "cson", "iced"], }, commitlint: { fileNames: [ ".commitlintrc", ".commitlintrc.js", ".commitlintrc.cjs", ".commitlintrc.ts", ".commitlintrc.cts", ".commitlintrc.json", ".commitlintrc.yaml", ".commitlintrc.yml", ".commitlint.yaml", ".commitlint.yml", "commitlint.config.js", "commitlint.config.cjs", "commitlint.config.ts", "commitlint.config.cts", ], }, contributing: { fileNames: [ "contributing.md", "contributing.rst", "contributing.txt", "contributing", ], }, "cpp-header": { fileExtensions: ["hh", "hpp", "hxx", "h++", "hp", "tcc", "inl"], }, cpp: { languageIds: ["cpp"], fileExtensions: ["cc", "cpp", "cxx", "c++", "cp", "mii", "ii"], }, crystal: { languageIds: ["crystal", "ecr"], fileExtensions: ["cr", "ecr"], }, csharp: { languageIds: ["csharp"], fileExtensions: ["cs", "csx", "csharp"], }, cspell: { fileNames: [ "cspell.json", "cspell.yml", "cspell.yaml", ".cspell.json", ".cspell.yml", ".cspell.yaml", "cspell.config.js", "cspell.config.cjs", "cspell.config.yml", "cspell.config.yaml", ], }, "css-map": { fileExtensions: ["css.map"], }, css: { languageIds: ["css"], fileExtensions: ["css"], }, csv: { languageIds: ["csv", "tsv", "psv"], fileExtensions: ["csv", "tsv", "psv"], }, cucumber: { languageIds: ["cucumber"], fileExtensions: ["feature", "features"], }, cuda: { languageIds: ["cuda-cpp"], fileExtensions: ["cu", "cuh"], }, cue: { languageIds: ["cue"], fileExtensions: ["cue"], }, "cursor-ignore": { fileNames: [".cursorignore", ".cursorindexingignore"], }, cursor: { fileNames: [".cursorrules"], }, cypress: { fileNames: [ "cypress.json", "cypress.env.json", "cypress.config.ts", "cypress.config.js", "cypress.config.cjs", "cypress.config.mjs", ], }, d: { languageIds: ["d"], fileExtensions: ["d", "di"], }, darklua: { fileExtensions: ["darklua.json", "darklua.json5"], }, "dart-generated": { fileExtensions: ["config.dart", "freezed.dart", "gr.dart", "g.dart"], }, dart: { languageIds: ["dart"], fileExtensions: ["dart"], }, database: { languageIds: ["sql"], fileExtensions: [ "pdb", "sql", "pks", "pkb", "accdb", "mdb", "sqlite", "sqlite3", "pgsql", "postgres", "plpgsql", "psql", "db", "db3", "dat", ], }, deno_lock: { fileNames: ["deno.lock"], }, deno: { fileNames: ["deno.json", "deno.jsonc"], }, dependabot: { fileNames: ["dependabot.yml", "dependabot.yaml"], }, devcontainer: { fileNames: ["devcontainer.json", ".devcontainer.json"], }, dhall: { languageIds: ["dhall"], fileExtensions: ["dhall", "dhallb"], }, diff: { languageIds: ["diff"], }, django: { languageIds: ["django-html", "django-txt"], fileExtensions: ["djt"], }, "docker-compose": { fileExtensions: [ "docker-compose.yml", "docker-compose.yaml", "compose.yaml", "compose.yml", ], fileNames: [ "docker-compose.yml", "docker-compose.override.yml", "docker-compose.prod.yml", "docker-compose.production.yml", "docker-compose.alpha.yml", "docker-compose.beta.yml", "docker-compose.stage.yml", "docker-compose.staging.yml", "docker-compose.dev.yml", "docker-compose.development.yml", "docker-compose.local.yml", "docker-compose.test.yml", "docker-compose.testing.yml", "docker-compose.ci.yml", "docker-compose.web.yml", "docker-compose.worker.yml", "docker-compose.yaml", "docker-compose.override.yaml", "docker-compose.prod.yaml", "docker-compose.production.yaml", "docker-compose.alpha.yaml", "docker-compose.beta.yaml", "docker-compose.stage.yaml", "docker-compose.staging.yaml", "docker-compose.dev.yaml", "docker-compose.development.yaml", "docker-compose.local.yaml", "docker-compose.test.yaml", "docker-compose.testing.yaml", "docker-compose.ci.yaml", "docker-compose.web.yaml", "docker-compose.worker.yaml", "compose.yaml", "compose.override.yaml", "compose.prod.yaml", "compose.production.yaml", "compose.alpha.yaml", "compose.beta.yaml", "compose.stage.yaml", "compose.staging.yaml", "compose.dev.yaml", "compose.development.yaml", "compose.local.yaml", "compose.test.yaml", "compose.testing.yaml", "compose.ci.yaml", "compose.web.yaml", "compose.worker.yaml", "compose.yml", "compose.override.yml", "compose.prod.yml", "compose.production.yml", "compose.alpha.yml", "compose.beta.yml", "compose.stage.yml", "compose.staging.yml", "compose.dev.yml", "compose.development.yml", "compose.local.yml", "compose.test.yml", "compose.testing.yml", "compose.ci.yml", "compose.web.yml", "compose.worker.yml", ], }, "docker-ignore": { fileExtensions: ["dockerignore", "containerignore"], }, docker: { fileExtensions: ["dockerfile", "containerfile"], fileNames: [ "dockerfile", "dockerfile.prod", "dockerfile.production", "dockerfile.alpha", "dockerfile.beta", "dockerfile.stage", "dockerfile.staging", "dockerfile.dev", "dockerfile.development", "dockerfile.local", "dockerfile.test", "dockerfile.testing", "dockerfile.ci", "dockerfile.web", "dockerfile.worker", "containerfile", "containerfile.prod", "containerfile.production", "containerfile.alpha", "containerfile.beta", "containerfile.stage", "containerfile.staging", "containerfile.dev", "containerfile.development", "containerfile.local", "containerfile.test", "containerfile.testing", "containerfile.ci", "containerfile.web", "containerfile.worker", ], }, docusaurus: { fileNames: [ "docusaurus.config.js", "docusaurus.config.mjs", "docusaurus.config.cjs", "docusaurus.config.ts", ], }, drawio: { fileExtensions: ["drawio", "dio"], }, "drizzle-orm": { fileNames: ["drizzle.config.ts", "drizzle.config.js"], }, "dub-selections": { fileNames: ["dub.selections.json"], }, dub: { fileNames: ["dub.json", "dub.sdl"], }, editorconfig: { languageIds: ["editorconfig"], fileNames: [".editorconfig"], }, ejs: { fileExtensions: ["ejs"], }, eleventy: { fileNames: [ ".eleventy.js", "eleventy.config.js", "eleventy.config.mjs", "eleventy.config.cjs", ".eleventyignore", ], }, elixir: { languageIds: ["elixir"], fileExtensions: ["ex", "exs", "eex", "leex", "heex"], }, elm: { languageIds: ["elm"], fileExtensions: ["elm"], }, ember: { fileNames: [".ember-cli", ".ember-cli.js", "ember-cli-builds.js"], }, env: { fileExtensions: ["env"], fileNames: [ ".env.defaults", ".env.example", ".env.sample", ".env.template", ".env.schema", ".env.local", ".env.dev", ".env.development", ".env.alpha", ".env.e2e", ".env.qa", ".env.dist", ".env.prod", ".env.production", ".env.stage", ".env.staging", ".env.preview", ".env.test", ".env.testing", ".env.dev.local", ".env.development.local", ".env.qa.local", ".env.prod.local", ".env.production.local", ".env.staging.local", ".env.test.local", ".env.uat", ".env.cat", ], }, envrc: { fileNames: [".envrc"], }, erlang: { languageIds: ["erlang"], fileExtensions: ["erl"], }, esbuild: { fileNames: [ "esbuild.js", "esbuild.ts", "esbuild.cjs", "esbuild.mjs", "esbuild.config.js", "esbuild.config.ts", "esbuild.config.cjs", "esbuild.config.mjs", ], }, "eslint-ignore": { fileNames: [".eslintignore", ".eslintcache,"], }, eslint: { fileNames: [ ".eslintrc.js", ".eslintrc.cjs", ".eslintrc.yaml", ".eslintrc.yml", ".eslintrc.json", ".eslintrc-md.js", ".eslintrc-jsdoc.js", ".eslintrc", "eslint.config.js", "eslint.config.cjs", "eslint.config.mjs", "eslint.config.ts", "eslint.config.cts", "eslint.config.mts", ], }, exe: { fileExtensions: ["exe", "msi"], }, fastlane: { fileNames: [ "fastfile", "appfile", "snapfile", "matchfile", "deliverfile", "scanfile", "gymfile", ], }, favicon: { fileNames: ["favicon.ico"], }, figma: { fileExtensions: ["fig"], }, firebase: { fileNames: [ "firebase.json", ".firebaserc", "firestore.rules", "storage.rules", "firestore.indexes.json", ], }, flutter: { fileNames: [ ".flutter-plugins", ".flutter-plugins-dependencies", ".metadata", ], }, font: { fileExtensions: [ "woff", "woff2", "ttf", "eot", "suit", "otf", "bmap", "fnt", "odttf", "ttc", "font", "fonts", "sui", "ntf", "mrf", ], }, foreman: { fileNames: ["foreman.toml", "aftman.toml"], }, fortran: { fileExtensions: ["f", "f77", "f90", "f95", "f03", "f08", "for"], }, fsharp: { languageIds: ["fsharp"], fileExtensions: ["fs", "fsx", "fsi"], }, fvm: { fileNames: [".fvmrc", "fvm_config.json"], }, gatsby: { fileNames: [ "gatsby-config.js", "gatsby-config.mjs", "gatsby-config.ts", "gatsby-node.js", "gatsby-node.mjs", "gatsby-node.ts", "gatsby-browser.js", "gatsby-browser.tsx", "gatsby-ssr.js", "gatsby-ssr.tsx", ], }, gcp: { fileNames: ["release-please-config.json", ".release-please-manifest.json"], }, "git-cliff": { fileNames: ["cliff.toml"], }, git: { languageIds: ["git", "git-commit", "git-rebase", "ignore"], fileExtensions: ["patch"], fileNames: [ ".git", ".gitignore", ".gitmessage", ".gitignore-global", ".gitignore_global", ".gitattributes", ".gitattributes-global", ".gitattributes_global", ".gitconfig", ".gitmodules", ".gitkeep", ".keep", ".gitpreserve", ".gitinclude", ".git-blame-ignore", ".git-blame-ignore-revs", ".git-for-windows-updater", "git-history", ], }, gitlab: { fileExtensions: ["gitlab-ci.yml", "gitlab-ci.yaml"], }, gitpod: { fileNames: [".gitpod.yml"], }, "gleam-config": { fileNames: ["gleam.toml"], }, gleam: { fileExtensions: ["gleam"], languageIds: ["gleam"], }, "go-mod": { fileNames: ["go.mod", "go.sum", "go.work", "go.work.sum"], }, "go-template": { fileExtensions: ["tmpl", "templ", "gotmpl", "gohtml", "go.tmp", "go.html"], }, go: { languageIds: ["go"], fileExtensions: ["go"], }, "godot-assets": { fileExtensions: [ "godot", "tres", "tscn", "gdns", "gdnlib", "gdshader", "gdshaderinc", "gdextension", "gd.uid", ], fileNames: [".gdignore", "._sc_", "_sc_"], }, godot: { languageIds: ["gdscript"], fileExtensions: ["gd"], }, gradle: { fileExtensions: ["gradle"], fileNames: ["gradle.properties", "gradlew", "gradle-wrapper.properties"], }, graphql: { languageIds: ["graphql"], fileExtensions: ["graphql", "gql"], fileNames: [ ".graphqlconfig", ".graphqlrc", ".graphqlrc.json", ".graphqlrc.js", ".graphqlrc.cjs", ".graphqlrc.ts", ".graphqlrc.toml", ".graphqlrc.yaml", ".graphqlrc.yml", "graphql.config.json", "graphql.config.js", "graphql.config.cjs", "graphql.config.ts", "graphql.config.toml", "graphql.config.yaml", "graphql.config.yml", ], }, groovy: { languageIds: ["groovy"], fileExtensions: ["groovy"], }, gulp: { fileNames: [ "gulpfile.js", "gulpfile.mjs", "gulpfile.ts", "gulpfile.cts", "gulpfile.mts", "gulpfile.babel.js", ], }, hacking: { fileNames: ["hacking.md", "hacking.txt", "hacking"], }, haml: { languageIds: ["haml"], fileExtensions: ["haml"], }, handlebars: { languageIds: ["handlebars"], fileExtensions: ["hbs", "mustache"], }, hardhat: { fileNames: ["hardhat.config.js", "hardhat.config.ts"], }, hare: { languageIds: ["hare"], fileExtensions: ["ha"], }, haskell: { languageIds: ["haskell"], fileExtensions: ["hs"], }, haxe: { languageIds: ["haxe", "hxml"], fileExtensions: ["hx"], }, helm: { fileNames: [".helmignore", "chart.lock"], }, heroku: { fileNames: ["procfile"], }, histoire: { fileNames: [ "histoire.config.ts", "histoire.config.js", ".histoire.js", ".histoire.ts", ], }, html: { languageIds: ["html"], fileExtensions: ["htm", "html", "xhtml", "html_vm", "asp"], }, http: { fileExtensions: ["http", "rest"], fileNames: ["CNAME"], }, huff: { fileExtensions: ["huff"], }, hugo: { fileNames: ["hugo.toml", "hugo.yaml", "hugo.json"], }, humans: { fileNames: ["humans.txt"], }, husky: { fileNames: [ ".huskyrc", "husky.config.js", ".huskyrc.json", ".huskyrc.js", ".huskyrc.yaml", ".huskyrc.yml", ], }, image: { fileExtensions: [ "png", "jpeg", "jpg", "gif", "ico", "tif", "tiff", "psb", "ami", "apx", "avif", "bmp", "bpg", "brk", "cur", "dds", "dng", "exr", "fpx", "gbr", "img", "jbig2", "jb2", "jng", "jxr", "pgf", "pic", "raw", "webp", "eps", "afphoto", "ase", "aseprite", "clip", "cpt", "heif", "heic", "kra", "mdp", "ora", "pdn", "reb", "sai", "tga", "xcf", "jfif", "ppm", "pbm", "pgm", "pnm", "icns", ], }, ionic: { fileNames: ["ionic.config.json", ".io-config.json"], }, "java-class": { fileExtensions: ["class"], }, "java-jar": { fileExtensions: ["jar"], }, java: { languageIds: ["java"], fileExtensions: ["java", "jsp"], }, "javascript-config": { fileNames: ["jsconfig.json"], fileExtensions: ["jsconfig.json"], }, "javascript-map": { fileExtensions: ["js.map", "mjs.map", "cjs.map"], }, "javascript-react": { languageIds: ["javascriptreact"], fileExtensions: ["jsx"], }, "javascript-test": { fileExtensions: [ "spec.js", "spec.cjs", "spec.mjs", "e2e-spec.js", "e2e-spec.cjs", "e2e-spec.mjs", "test.js", "test.cjs", "test.mjs", "js.snap", "cy.js", "spec.jsx", "test.jsx", "jsx.snap", "cy.jsx", ], }, javascript: { languageIds: ["javascript"], fileExtensions: ["esx", "js", "cjs", "mjs"], }, jest: { fileNames: [ "jest.config.js", "jest.config.cjs", "jest.config.mjs", "jest.config.ts", "jest.config.cts", "jest.config.mts", "jest.config.json", "jest.e2e.config.js", "jest.e2e.config.cjs", "jest.e2e.config.mjs", "jest.e2e.config.ts", "jest.e2e.config.cts", "jest.e2e.config.mts", "jest.e2e.config.json", "jest.e2e.json", "jest-unit.config.js", "jest-e2e.config.js", "jest-e2e.config.cjs", "jest-e2e.config.mjs", "jest-e2e.config.ts", "jest-e2e.config.cts", "jest-e2e.config.mts", "jest-e2e.config.json", "jest-e2e.json", "jest-github-actions-reporter.js", "jest.setup.js", "jest.setup.ts", "jest.json", ".jestrc", ".jestrc.js", ".jestrc.json", "jest.teardown.js", "jest-preset.json", "jest-preset.js", "jest-preset.cjs", "jest-preset.mjs", "jest.preset.js", "jest.preset.mjs", "jest.preset.cjs", "jest.preset.json", ], }, jinja: { languageIds: ["jinja"], fileExtensions: ["jinja", "jinja2", "j2", "jinja-html"], }, "json-schema": { fileExtensions: ["schema.json"], }, json: { languageIds: ["hjson"], fileExtensions: [ "json", "jsonc", "tsbuildinfo", "json5", "jsonl", "ndjson", "hjson", "webmanifest", ], fileNames: [ ".jscsrc", ".jshintrc", "composer.lock", ".jsbeautifyrc", ".esformatter", "cdp.pid", ".lintstagedrc", ".whitesource", ], }, juce: { fileExtensions: ["jucer"], }, jule: { languageIds: ["jule"], fileExtensions: ["jule"], fileNames: ["jule.mod"], }, julia: { languageIds: ["julia"], fileExtensions: ["jl"], }, jupyter: { languageIds: ["jupyter"], fileExtensions: ["ipynb"], }, just: { fileExtensions: ["just"], fileNames: ["justfile", ".justfile"], }, kdl: { languageIds: ["kdl"], fileExtensions: ["kdl"], }, key: { fileExtensions: ["pub", "key", "pem", "asc", "gpg", "passwd", "keystore"], fileNames: [".htpasswd"], }, knip: { fileNames: [ "knip.json", "knip.jsonc", ".knip.jsonc", ".knip.jsonc", "knip.ts", "knip.js", "knip.config.ts", "knip.config.js", ], }, kotlin: { fileExtensions: ["kt", "kts"], }, laravel: { fileExtensions: ["blade.php", "inky.php"], fileNames: ["artisan"], }, latex: { languageIds: ["tex", "doctex", "latex", "latex-expl3"], fileExtensions: ["tex", "sty", "dtx", "ltx"], }, latte: { fileExtensions: ["latte"], }, lerna: { fileNames: ["lerna.json"], }, less: { languageIds: ["less"], fileExtensions: ["less"], }, lib: { languageIds: ["bibtex", "bibtex-style"], fileExtensions: ["lib", "bib"], }, license: { fileNames: [ "copying", "copying.md", "copying.rst", "copying.txt", "copyright", "copyright.md", "copyright.rst", "copyright.txt", "license", "license-agpl", "license-apache", "license-bsd", "license-mit", "license-gpl", "license-lgpl", "unlicense", "license.md", "license.rst", "license.txt", "licence", "licence-agpl", "licence-apache", "licence-bsd", "licence-mit", "licence-gpl", "licence-lgpl", "unlicence", "licence.md", "licence.rst", "licence.txt", ], }, "lint-staged": { fileNames: [ ".lintstagedrc", ".lintstagedrc.json", ".lintstagedrc.yaml", ".lintstagedrc.yml", ".lintstagedrc.mjs", ".lintstagedrc.mts", ".lintstagedrc.cjs", ".lintstagedrc.cts", ".lintstagedrc.js", ".lintstagedrc.ts", "lint-staged.config.js", "lint-staged.config.ts", "lint-staged.config.mjs", "lint-staged.config.mts", "lint-staged.config.cjs", "lint-staged.config.cts", ], }, liquid: { fileExtensions: ["liquid"], fileNames: [".liquidrc.json", ".liquidrc"], languageIds: ["liquid"], }, lisp: { fileExtensions: ["lisp", "lsp", "cl", "fast"], }, log: { languageIds: ["log"], fileExtensions: ["log"], }, "lua-check": { fileNames: [".luacheckrc"], }, "lua-client": { fileExtensions: ["client.lua"], }, "lua-rocks": { fileNames: [".rock", ".rockspec"], }, "lua-server": { fileExtensions: ["server.lua"], }, "lua-test": { fileExtensions: ["spec.lua", "test.lua"], }, lua: { languageIds: ["lua"], fileExtensions: ["lua"], fileNames: [".luacheckrc"], }, "luau-check": { fileNames: ["selene.toml", "selene.yml", "selene.yaml"], }, "luau-client": { fileExtensions: ["client.luau"], }, "luau-config": { fileNames: [".luaurc"], }, "luau-server": { fileExtensions: ["server.luau"], }, "luau-test": { fileExtensions: ["spec.luau", "test.luau"], }, luau: { fileExtensions: ["luau"], }, macos: { fileNames: [".ds_store"], }, makefile: { languageIds: ["makefile"], fileExtensions: ["mk"], fileNames: ["makefile", "gnumakefile", "kbuild"], }, mantle: { fileNames: ["mantle.yml", ".mantle-state.yml"], }, "markdown-mdx": { fileExtensions: ["mdx"], }, markdown: { languageIds: ["markdown"], fileExtensions: ["md", "markdown", "rst"], }, marko: { fileExtensions: ["marko"], }, matlab: { languageIds: ["matlab"], fileExtensions: ["m", "mat"], }, mdbook: { fileNames: ["book.toml"], }, mermaid: { fileExtensions: ["mmd", "mermaid"], }, meson: { fileNames: ["meson.build", "meson_options.txt"], fileExtensions: ["wrap"], }, midi: { fileExtensions: ["mid", "midi"], }, mjml: { fileExtensions: ["mjml"], fileNames: [".mjmlconfig"], }, modernizr: { fileNames: [".modernizrrc", ".modernizrrc.js", ".modernizrrc.json"], }, moonrepo: { fileNames: ["moon.yml", "moon.yaml"], }, moonwave: { fileNames: ["moonwave.toml"], }, "ms-excel": { fileExtensions: [ "xlsx", "xlsm", "xls", "xlsb", "xltx", "xltm", "xlt", "ods", ], }, "ms-powerpoint": { fileExtensions: [ "pptx", "ppt", "pptm", "potx", "potm", "ppsx", "ppsm", "pps", "ppam", "ppa", "odp", ], }, "ms-word": { fileExtensions: [ "doc", "docm", "docx", "dot", "dotm", "dotx", "rtf", "odt", ], }, msbuild: { fileNames: [ "directory.build.props", "directory.build.rsp", "directory.build.targets", "directory.packages.props", ], }, nativescript: { fileNames: ["nativescript.config.ts", "nativescript.config.js"], }, nest: { fileNames: [ "nest-cli.json", ".nest-cli.json", "nestconfig.json", ".nestconfig.json", ], }, netlify: { fileNames: ["netlify.json", "netlify.yml", "netlify.yaml", "netlify.toml"], }, next: { fileNames: [ "next.config.js", "next.config.mjs", "next.config.ts", "next.config.mts", ], }, nextflow: { fileExtensions: ["nf"], }, nginx: { fileNames: ["nginx.conf"], fileExtensions: ["nginx", "nginxconf", "nginxconfig"], }, nim: { languageIds: ["nim", "nimble"], fileExtensions: ["nim", "nimble"], }, ninja: { fileExtensions: ["ninja"], }, "nix-lock": { fileNames: ["flake.lock"], }, nix: { languageIds: ["nix"], fileExtensions: ["nix"], }, nodemon: { fileNames: ["nodemon.json", "nodemon-debug.json"], }, "npm-ignore": { fileNames: [".npmignore"], }, "npm-lock": { fileNames: ["package-lock.json"], }, npm: { fileNames: [".npmrc"], }, nuget: { fileNames: ["nuget.config", ".nuspec", "nuget.exe"], fileExtensions: ["nupkg"], }, nunjucks: { languageIds: ["nunjucks"], fileExtensions: ["njk", "nunjucks"], }, "nuxt-ignore": { fileNames: [".nuxtignore"], }, nuxt: { fileNames: [".nuxtrc", "nuxt.config.js", "nuxt.config.ts"], }, "nx-ignore": { fileNames: [".nxignore"], }, nx: { fileNames: ["nx.json"], }, ocaml: { fileExtensions: ["ml", "mli", "cmx"], }, odin: { languageIds: ["odin"], fileExtensions: ["odin"], }, opentofu: { languageIds: ["opentofu"], fileExtensions: ["tofu", "tofu.json"], }, org: { languageIds: ["org"], fileExtensions: ["org"], }, "package-json": { fileNames: ["package.json", ".nvmrc", ".esmrc", ".node-version"], }, "panda-css": { fileNames: [ "panda.config.ts", "panda.config.js", "panda.config.mjs", "panda.config.mts", "panda.config.cjs", ], }, pdf: { fileExtensions: ["pdf"], }, perl: { languageIds: ["perl", "perl6", "raku"], fileExtensions: [ "pl", "pm", "pod", "t", "psgi", "raku", "rakumod", "rakutest", "rakudoc", "nqp", "p6", "pl6", "pm6", ], }, "pesde-lock": { fileNames: ["pesde.lock"], }, pesde: { fileNames: ["pesde.toml"], }, php: { languageIds: ["php"], fileExtensions: ["php"], }, phrase: { fileNames: [ ".phrase.yml", ".phraseapp.yml", ".phrase.yaml", ".phraseapp.yaml", ], }, phtml: { fileExtensions: ["phtml"], }, "pixi-lock": { fileNames: ["pixi.lock"], }, pixi: { fileNames: ["pixi.toml"], }, plantuml: { fileExtensions: ["pu", "puml", "plantuml"], }, playwright: { fileNames: [ "playwright.config.js", "playwright.config.mjs", "playwright.config.ts", "playwright.config.base.js", "playwright.config.base.mjs", "playwright.config.base.ts", "playwright-ct.config.js", "playwright-ct.config.mjs", "playwright-ct.config.ts", ], }, plop: { fileNames: ["plopfile.js", "plopfile.cjs", "plopfile.mjs", "plopfile.ts"], }, "pnpm-lock": { fileNames: ["pnpm-lock.yaml"], }, pnpm: { fileNames: ["pnpm-workspace.yaml", ".pnpmfile.cjs"], }, "poetry-lock": { fileNames: ["poetry.lock"], }, postcss: { languageIds: ["postcss"], fileExtensions: ["pcss", "sss"], fileNames: [ "postcss.config.js", "postcss.config.cjs", "postcss.config.mjs", "postcss.config.ts", "postcss.config.cts", "postcss.config.mts", ".postcssrc.js", ".postcssrc.cjs", ".postcssrc.ts", ".postcssrc.cts", ".postcssrc", ".postcssrc.json", ".postcssrc.yaml", ".postcssrc.yml", ], }, powershell: { languageIds: ["powershell"], fileExtensions: ["ps1", "psm1", "psd1", "ps1xml", "psc1", "pssc"], }, "pre-commit": { fileNames: [".pre-commit-config.yaml", ".pre-commit-hooks.yaml"], }, premake: { fileNames: ["premake4.lua", "premake5.lua", "premake.lua"], }, "prettier-ignore": { fileNames: [".prettierignore"], }, prettier: { fileNames: [ ".prettierrc", ".prettierrc.json", ".prettierrc.yml", ".prettierrc.yaml", ".prettierrc.json5", ".prettierrc.js", "prettier.config.js", ".prettierrc.ts", "prettier.config.ts", ".prettierrc.mjs", "prettier.config.mjs", ".prettierrc.mts", "prettier.config.mts", ".prettierrc.cjs", "prettier.config.cjs", ".prettierrc.cts", "prettier.config.cts", ".prettierrc.toml", ], }, prisma: { fileNames: [ "prisma.config.ts", "prisma.config.js", "prisma.config.cts", "prisma.config.cjs", "prisma.config.mts", "prisma.config.mjs", "prisma.yml", ], fileExtensions: ["prisma"], }, prolog: { languageIds: ["prolog"], fileExtensions: ["p", "pro"], }, properties: { languageIds: ["ini", "properties", "spring-boot-properties"], fileExtensions: [ "ini", "dlc", "config", "conf", "properties", "prop", "settings", "option", "props", "prefs", "sln.dotsettings", "sln.dotsettings.user", "cfg", ], }, proto: { languageIds: ["proto"], fileExtensions: ["proto"], }, prototools: { fileNames: [".prototools"], }, pug: { languageIds: ["jade"], fileExtensions: ["jade", "pug"], fileNames: [".pug-lintrc", ".pug-lintrc.js", ".pug-lintrc.json"], }, puppet: { languageIds: ["puppet"], fileExtensions: ["pp", "epp"], }, puppeteer: { fileNames: [ ".puppeteerrc.cjs,", ".puppeteerrc.js,", ".puppeteerrc", ".puppeteerrc.json,", ".puppeteerrc.yaml,", "puppeteer.config.js", "puppeteer.config.cjs", ], }, "python-compiled": { fileExtensions: ["pyc", "pyo", "pyd"], }, "python-config": { fileNames: [ "pyproject.toml", "requirements.txt", "requirements-dev.txt", "requirements-test.txt", ".python-version", ], }, python: { languageIds: ["python"], fileExtensions: ["py"], }, r: { languageIds: ["r", "rsweave"], fileExtensions: ["r"], fileNames: [".rhistory"], }, racket: { fileExtensions: ["rkt"], }, razor: { languageIds: ["razor", "aspnetcorerazor"], fileExtensions: ["cshtml", "vbhtml"], }, rdata: { fileExtensions: ["rdata"], }, readme: { fileNames: ["readme.md", "readme.rst", "readme.txt", "readme"], }, reason: { languageIds: ["reason", "reason_lisp"], fileExtensions: ["re", "rei"], }, redwood: { fileNames: ["redwood.toml"], }, release: { fileNames: [".goreleaser.yaml"], }, remix: { fileNames: ["remix.config.js", "remix.config.ts"], }, renovate: { fileNames: [ ".renovaterc", ".renovaterc.json", "renovate-config.json", "renovate.json", "renovate.json5", ], }, rescript: { languageIds: ["rescript"], fileExtensions: ["res"], }, rmd: { fileExtensions: ["rmd"], }, roblox: { fileExtensions: ["rbxl", "rbxlx", "rbxm", "rbxmx"], }, robots: { fileNames: ["robots.txt"], }, rocket: { fileNames: ["rocket.toml"], }, rokit: { fileNames: ["rokit.toml"], }, rollup: { fileNames: [ "rollup.config.js", "rollup.config.mjs", "rollup.config.ts", "rollup-config.js", "rollup-config.mjs", "rollup-config.ts", "rollup.config.common.js", "rollup.config.common.mjs", "rollup.config.common.ts", "rollup.config.base.js", "rollup.config.base.mjs", "rollup.config.base.ts", "rollup.config.prod.js", "rollup.config.prod.mjs", "rollup.config.prod.ts", "rollup.config.dev.js", "rollup.config.dev.mjs", "rollup.config.dev.ts", "rollup.config.prod.vendor.js", "rollup.config.prod.vendor.mjs", "rollup.config.prod.vendor.ts", ], }, rproj: { fileExtensions: ["rproj"], }, rsml: { fileExtensions: ["rsml"], }, "ruby-gem-lock": { fileNames: ["gemfile.lock"], }, "ruby-gem": { fileNames: ["gemfile"], }, ruby: { languageIds: ["ruby"], fileExtensions: ["rb", "erb", "rbs"], fileNames: [".ruby-version"], }, ruff: { fileNames: ["ruff.toml", ".ruff.toml"], }, "rust-config": { fileNames: [ "rustfmt.toml", ".rustfmt.toml", "rust-toolchain.toml", "clippy.toml", ], }, rust: { languageIds: ["rust"], fileExtensions: ["rs", "ron"], }, salesforce: { fileExtensions: ["cls"], }, sass: { languageIds: ["sass", "scss"], fileExtensions: ["scss", "sass"], }, scala: { languageIds: ["scala"], fileExtensions: ["scala", "sc"], }, scheme: { fileExtensions: ["scm"], }, search: { languageIds: ["search-result"], fileExtensions: ["code-search"], }, security: { fileNames: ["security.md", "security.txt", "security"], }, "semantic-release": { fileNames: [ ".releaserc", ".releaserc.yaml", ".releaserc.yml", ".releaserc.json", ".releaserc.js", ".releaserc.cjs", "release.config.js", "release.config.cjs", ], }, "semgrep-ignore": { fileNames: [".semgrepignore"], }, semgrep: { fileNames: ["semgrep.yml"], }, sentry: { fileNames: [".sentryclirc"], }, serverless: { fileNames: [ "serverless.yml", "serverless.yaml", "serverless.json", "serverless.js", "serverless.ts", ], }, shader: { languageIds: ["hlsl", "glsl", "wgsl"], fileExtensions: [ "glsl", "vert", "tesc", "tese", "geom", "frag", "comp", "vert.glsl", "tesc.glsl", "tese.glsl", "geom.glsl", "frag.glsl", "comp.glsl", "vertex.glsl", "geometry.glsl", "fragment.glsl", "compute.glsl", "ts.glsl", "gs.glsl", "vs.glsl", "fs.glsl", "shader", "vertexshader", "fragmentshader", "geometryshader", "computeshader", "hlsl", "pixel.hlsl", "geometry.hlsl", "compute.hlsl", "tessellation.hlsl", "px.hlsl", "geom.hlsl", "comp.hlsl", "tess.hlsl", "wgsl", ], }, sketch: { fileExtensions: ["sketch"], }, slidesk: { languageIds: ["sdf"], fileExtensions: ["sdf", "sdt"], }, snowpack: { fileNames: [ "snowpack.config.js", "snowpack.config.cjs", "snowpack.config.mjs", "snowpack.config.ts", "snowpack.config.cts", "snowpack.config.mts", "snowpack.deps.json", "snowpack.config.json", ], }, solidity: { languageIds: ["solidity"], fileExtensions: ["sol"], }, "sonar-cloud": { fileNames: [ "sonar-project.properties", ".sonarcloud.properties", "sonarcloud.yaml", ], }, spwn: { fileExtensions: ["spwn"], }, squirrel: { languageIds: ["squirrel"], fileExtensions: ["nut"], }, stackblitz: { fileNames: [".stackblitzrc"], }, stata: { fileExtensions: ["ado", "do", "dta"], }, stencil: { fileNames: ["stencil.config.js", "stencil.config.ts"], }, stitches: { fileNames: ["stitches.config.js", "stitches.config.ts"], }, "storybook-svelte": { fileExtensions: ["story.svelte", "stories.svelte"], }, "storybook-vue": { fileExtensions: ["story.vue", "stories.vue"], }, storybook: { fileExtensions: [ "stories.js", "stories.jsx", "stories.mdx", "story.js", "story.jsx", "stories.ts", "stories.tsx", "story.ts", "story.tsx", "story.mdx", ], }, "stylelint-ignore": { fileNames: [".stylelintignore", ".stylelintcache"], }, stylelint: { fileNames: [ ".stylelintrc", "stylelint.config.js", "stylelint.config.ts", "stylelint.config.cjs", "stylelint.config.cts", "stylelint.config.mjs", "stylelint.config.mts", ".stylelintrc.json", ".stylelintrc.yaml", ".stylelintrc.yml", ".stylelintrc.js", ".stylelintrc.ts", ".stylelintrc.cjs", ".stylelintrc.cts", ".stylelintrc.mjs", ".stylelintrc.mts", ], }, "stylua-ignore": { fileNames: [".styluaignore"], }, stylua: { fileNames: ["stylua.toml"], }, sublime: { fileExtensions: ["sublime-project", "sublime-workspace"], }, "super-collider": { fileExtensions: ["sc", "scd"], }, "svelte-config": { fileNames: [ "svelte.config.js", "svelte.config.ts", "svelte.config.cjs", "svelte.config.mjs", ], }, svelte: { languageIds: ["svelte"], fileExtensions: ["svelte"], }, svg: { languageIds: ["svg"], fileExtensions: ["svg"], }, swift: { languageIds: ["swift"], fileExtensions: ["swift"], }, swiftformat: { fileNames: [".swiftformat"], }, tailwind: { fileNames: [ "tailwind.js", "tailwind.ts", "tailwind.config.js", "tailwind.config.cjs", "tailwind.config.mjs", "tailwind.config.ts", "tailwind.config.cts", "tailwind.config.mts", ], }, taskfile: { fileNames: [ "taskfile.yml", "taskfile.yaml", "taskfile.dist.yml", "taskfile.dist.yaml", ".taskrc.yml", ".taskrc.yaml", ], }, "tauri-ignore": { fileNames: [".taurignore"], }, tauri: { fileNames: [ "tauri.conf.json", "tauri.conf.json5", "tauri.config.json", "tauri.linux.conf.json", "tauri.windows.conf.json", "tauri.macos.conf.json", "Tauri.toml", ], fileExtensions: ["tauri"], }, terraform: { languageIds: ["terraform"], fileExtensions: ["tf", "tf.json", "tfvars", "tfstate", "tfbackend"], }, text: { languageIds: ["plaintext"], fileExtensions: ["txt"], }, todo: { fileExtensions: ["todo"], fileNames: ["todo.md", "todos.md"], }, toml: { languageIds: ["toml"], fileExtensions: ["toml"], }, turbo: { fileNames: ["turbo.json"], }, twig: { languageIds: ["twig"], fileExtensions: ["twig"], }, twine: { languageIds: [ "twee3", "twee3-harlowe-3", "twee3-chapbook-1", "twee3-sugarcube-2", ], fileExtensions: ["tw", "twee"], }, "typescript-config": { fileNames: [ "tsconfig.json", "tsconfig.app.json", "tsconfig.editor.json", "tsconfig.spec.json", "tsconfig.base.json", "tsconfig.build.json", "tsconfig.eslint.json", "tsconfig.lib.json", "tsconfig.lib.prod.json", "tsconfig.node.json", "tsconfig.test.json", "tsconfig.e2e.json", "tsconfig.web.json", "tsconfig.webworker.json", "tsconfig.worker.json", "tsconfig.config.json", "tsconfig.vitest.json", "tsconfig.cjs.json", "tsconfig.esm.json", "tsconfig.mjs.json", "tsconfig.doc.json", "tsconfig.paths.json", "tsconfig.main.json", "tsconfig.cypress-ct.json", "tsconfig.components.json", ], fileExtensions: ["tsconfig.json"], }, "typescript-def": { fileExtensions: ["d.ts", "d.cts", "d.mts"], }, "typescript-react": { languageIds: ["typescriptreact"], fileExtensions: ["tsx"], }, "typescript-test": { fileExtensions: [ "spec.ts", "spec.cts", "spec.mts", "cy.ts", "e2e-spec.ts", "e2e-spec.cts", "e2e-spec.mts", "test.ts", "test.cts", "test.mts", "ts.snap", "spec-d.ts", "test-d.ts", "spec.tsx", "test.tsx", "tsx.snap", "cy.tsx", ], }, typescript: { languageIds: ["typescript"], fileExtensions: ["ts", "cts", "mts"], }, typst: { languageIds: ["typst"], fileExtensions: ["typ"], fileNames: ["typst.toml"], }, unity: { languageIds: ["shaderlab"], fileExtensions: ["unity"], }, unocss: { fileNames: [ "uno.config.js", "uno.config.mjs", "uno.config.ts", "uno.config.mts", "unocss.config.js", "unocss.config.mjs", "unocss.config.ts", "unocss.config.mts", ], }, url: { fileExtensions: ["url"], }, uv: { fileNames: ["uv.lock"], }, v: { languageIds: ["v"], fileExtensions: ["v"], fileNames: ["vpkg.json", "v.mod"], }, vala: { languageIds: ["vala"], fileExtensions: ["vala"], }, "vanilla-extract": { fileExtensions: ["css.ts"], }, vapi: { fileExtensions: ["vapi"], }, vento: { fileExtensions: ["vto"], }, "vercel-ignore": { fileNames: [".vercelignore", ".nowignore"], }, vercel: { fileNames: ["vercel.json", "now.json"], }, verilog: { fileExtensions: ["vhd", "sv", "svh"], }, vhs: { fileExtensions: ["tape"], }, video: { fileExtensions: [ "webm", "mkv", "flv", "vob", "ogv", "ogg", "gifv", "avi", "mov", "qt", "wmv", "yuv", "rm", "rmvb", "mp4", "m4v", "mpg", "mp2", "mpeg", "mpe", "mpv", "m2v", ], }, vim: { languageIds: ["viml"], fileExtensions: ["vimrc", "gvimrc", "exrc", "vim", "viminfo"], }, "visual-studio": { languageIds: ["testOutput", "vb"], fileExtensions: [ "csproj", "csproj.user", "vbproj", "vbproj.user", "fsproj", "fsproj.user", "ruleset", "sln", "slnf", "slnx", "suo", "vb", "vbs", "vcxitems", "vcxitems.filters", "vcxproj", "vcxproj.filters", ], }, vital: { fileExtensions: [ "vital", "vitalbank", "vitallfo", "vitalskin", "vitaltable", "vitaltheme", ], }, vite: { fileNames: [ "vite.config.js", "vite.config.mjs", "vite.config.cjs", "vite.config.ts", "vite.config.cts", "vite.config.mts", ], }, vitest: { fileNames: [ "vitest.config.ts", "vitest.config.mts", "vitest.config.cts", "vitest.config.js", "vitest.config.mjs", "vitest.config.cjs", "vitest.workspace.js", "vitest.workspace.ts", "vitest.workspace.json", ], }, "vs-codium": {}, "vscode-ignore": { fileNames: [".vscodeignore"], }, vscode: { fileExtensions: [ "vsixmanifest", "vsix", "code-workplace", "code-workspace", "code-profile", "code-snippets", ], }, "vue-config": { fileNames: [ "vue.config.js", "vue.config.cjs", "vue.config.mjs", "vue.config.ts", "vue.config.cts", "vue.config.mts", ".vuerc", ], }, vue: { languageIds: ["vue"], fileExtensions: ["vue"], }, wally: { fileNames: ["wally.toml", "wally.lock"], }, "web-assembly": { fileExtensions: ["wat", "wasm"], }, webpack: { fileNames: [ "webpack.js", "webpack.cjs", "webpack.mjs", "webpack.ts", "webpack.cts", "webpack.mts", "webpack.base.js", "webpack.base.cjs", "webpack.base.mjs", "webpack.base.ts", "webpack.base.cts", "webpack.base.mts", "webpack.config.js", "webpack.config.cjs", "webpack.config.mjs", "webpack.config.ts", "webpack.config.cts", "webpack.config.mts", "webpack.common.js", "webpack.common.cjs", "webpack.common.mjs", "webpack.common.ts", "webpack.common.cts", "webpack.common.mts", "webpack.config.common.js", "webpack.config.common.cjs", "webpack.config.common.mjs", "webpack.config.common.ts", "webpack.config.common.cts", "webpack.config.common.mts", "webpack.config.common.babel.js", "webpack.config.common.babel.ts", "webpack.dev.js", "webpack.dev.cjs", "webpack.dev.mjs", "webpack.dev.ts", "webpack.dev.cts", "webpack.dev.mts", "webpack.development.js", "webpack.development.cjs", "webpack.development.mjs", "webpack.development.ts", "webpack.development.cts", "webpack.development.mts", "webpack.config.dev.js", "webpack.config.dev.cjs", "webpack.config.dev.mjs", "webpack.config.dev.ts", "webpack.config.dev.cts", "webpack.config.dev.mts", "webpack.config.dev.babel.js", "webpack.config.dev.babel.ts", "webpack.config.main.js", "webpack.config.renderer.ts", "webpack.mix.js", "webpack.mix.cjs", "webpack.mix.mjs", "webpack.mix.ts", "webpack.mix.cts", "webpack.mix.mts", "webpack.prod.js", "webpack.prod.cjs", "webpack.prod.mjs", "webpack.prod.ts", "webpack.prod.cts", "webpack.prod.mts", "webpack.prod.config.js", "webpack.prod.config.cjs", "webpack.prod.config.mjs", "webpack.prod.config.ts", "webpack.prod.config.cts", "webpack.prod.config.mts", "webpack.production.js", "webpack.production.cjs", "webpack.production.mjs", "webpack.production.ts", "webpack.production.cts", "webpack.production.mts", "webpack.server.js", "webpack.server.cjs", "webpack.server.mjs", "webpack.server.ts", "webpack.server.cts", "webpack.server.mts", "webpack.client.js", "webpack.client.cjs", "webpack.client.mjs", "webpack.client.ts", "webpack.client.cts", "webpack.client.mts", "webpack.config.server.js", "webpack.config.server.cjs", "webpack.config.server.mjs", "webpack.config.server.ts", "webpack.config.server.cts", "webpack.config.server.mts", "webpack.config.client.js", "webpack.config.client.cjs", "webpack.config.client.mjs", "webpack.config.client.ts", "webpack.config.client.cts", "webpack.config.client.mts", "webpack.config.production.babel.js", "webpack.config.production.babel.ts", "webpack.config.prod.babel.js", "webpack.config.prod.babel.cjs", "webpack.config.prod.babel.mjs", "webpack.config.prod.babel.ts", "webpack.config.prod.babel.cts", "webpack.config.prod.babel.mts", "webpack.config.prod.js", "webpack.config.prod.cjs", "webpack.config.prod.mjs", "webpack.config.prod.ts", "webpack.config.prod.cts", "webpack.config.prod.mts", "webpack.config.production.js", "webpack.config.production.cjs", "webpack.config.production.mjs", "webpack.config.production.ts", "webpack.config.production.cts", "webpack.config.production.mts", "webpack.config.staging.js", "webpack.config.staging.cjs", "webpack.config.staging.mjs", "webpack.config.staging.ts", "webpack.config.staging.cts", "webpack.config.staging.mts", "webpack.config.babel.js", "webpack.config.babel.ts", "webpack.config.base.babel.js", "webpack.config.base.babel.ts", "webpack.config.base.js", "webpack.config.base.cjs", "webpack.config.base.mjs", "webpack.config.base.ts", "webpack.config.base.cts", "webpack.config.base.mts", "webpack.config.staging.babel.js", "webpack.config.staging.babel.ts", "webpack.config.coffee", "webpack.config.test.js", "webpack.config.test.cjs", "webpack.config.test.mjs", "webpack.config.test.ts", "webpack.config.test.cts", "webpack.config.test.mts", "webpack.config.vendor.js", "webpack.config.vendor.cjs", "webpack.config.vendor.mjs", "webpack.config.vendor.ts", "webpack.config.vendor.cts", "webpack.config.vendor.mts", "webpack.config.vendor.production.js", "webpack.config.vendor.production.cjs", "webpack.config.vendor.production.mjs", "webpack.config.vendor.production.ts", "webpack.config.vendor.production.cts", "webpack.config.vendor.production.mts", "webpack.test.js", "webpack.test.cjs", "webpack.test.mjs", "webpack.test.ts", "webpack.test.cts", "webpack.test.mts", "webpack.dist.js", "webpack.dist.cjs", "webpack.dist.mjs", "webpack.dist.ts", "webpack.dist.cts", "webpack.dist.mts", "webpackfile.js", "webpackfile.cjs", "webpackfile.mjs", "webpackfile.ts", "webpackfile.cts", "webpackfile.mts", ], }, windi: { fileNames: [ "windi.config.js", "windi.config.cjs", "windi.config.ts", "windi.config.cts", "windi.config.json", ], fileExtensions: ["windi"], }, workflow: { languageIds: ["github-actions-workflow"], fileExtensions: ["workflows/yml", "workflows/yaml"], }, wrangler: { fileNames: ["wrangler.toml", "wrangler.json", "wrangler.jsonc"], }, wxt: { fileNames: ["wxt.config.js", "wxt.config.ts"], }, xaml: { fileExtensions: ["xaml", "axaml"], }, xcode: { fileExtensions: ["xcsettings", "xcworkspacedata"], }, xmake: { fileNames: ["xmake.lua"], }, xml: { fileExtensions: [ "xml", "plist", "xsd", "dtd", "xsl", "xslt", "resx", "iml", "xquery", "tmLanguage", "manifest", "project", "xml.dist", "xml.dist.sample", "dmn", "jrxml", ], fileNames: [".htaccess"], }, yaml: { languageIds: ["yaml", "spring-boot-properties-yaml"], fileExtensions: ["yml", "yaml"], }, "yarn-lock": { fileNames: ["yarn.lock"], }, yarn: { fileNames: [ ".yarnrc", ".yarnclean", ".yarn-integrity", "yarn-error.log", ".yarnrc.yml", ".yarnrc.yaml", "yarn.config.cjs", ], }, zap: { fileExtensions: ["zap"], }, zig: { fileExtensions: ["zig"], }, zip: { fileExtensions: [ "7z", "arj", "aseprite-extension", "bz", "bz2", "db", "gz", "paq8n", "paq8o", "pkg", "rar", "tar", "tbz", "tbz2", "tgz", "xz", "z", "zip", "zpaq", "zst", ], }, }; const { languageIds, fileExtensions, fileNames } = Object.entries( fileIcons, ).reduce( ({ languageIds, fileExtensions, fileNames }, [name, icon]) => ({ languageIds: { ...languageIds, ...icon.languageIds?.reduce((a, c) => ({ ...a, [c]: name }), {}), }, fileExtensions: { ...fileExtensions, ...icon.fileExtensions?.reduce((a, c) => ({ ...a, [c]: name }), {}), }, fileNames: { ...fileNames, ...icon.fileNames?.reduce((a, c) => ({ ...a, [c]: name }), {}), }, }), { languageIds: {}, fileExtensions: {}, fileNames: {}, }, ); export { fileExtensions, fileIcons, fileNames, languageIds };