diff --git a/src/icons/fileIcons.ts b/src/icons/fileIcons.ts index 7251ce5089..f222ca2f2c 100644 --- a/src/icons/fileIcons.ts +++ b/src/icons/fileIcons.ts @@ -1,11 +1,14 @@ -import { FileIcons, IconPack } from '../models/index'; +import type { FileIcons } from '../models/icons/files/fileTypes'; +import { IconPack } from '../models/icons/iconPack'; +import { FileNamePattern } from '../models/icons/patterns/patterns'; +import { parseByPattern } from '../patterns/patterns'; /** * Defines file icons */ export const fileIcons: FileIcons = { defaultIcon: { name: 'file' }, - icons: [ + icons: parseByPattern([ { name: 'html', fileExtensions: ['htm', 'xhtml', 'html_vm', 'asp'] }, { name: 'pug', @@ -20,9 +23,17 @@ export const fileIcons: FileIcons = { { name: 'css', fileExtensions: ['css'] }, { name: 'sass', fileExtensions: ['scss', 'sass'] }, { name: 'less', fileExtensions: ['less'] }, + { name: 'just', fileNames: ['justfile', '.justfile'] }, { name: 'json', - fileExtensions: ['json', 'tsbuildinfo', 'json5', 'jsonl', 'ndjson'], + fileExtensions: [ + 'json', + 'jsonc', + 'tsbuildinfo', + 'json5', + 'jsonl', + 'ndjson', + ], fileNames: [ '.jscsrc', '.jshintrc', @@ -30,33 +41,43 @@ export const fileIcons: FileIcons = { '.jsbeautifyrc', '.esformatter', 'cdp.pid', - '.mjmlconfig', '.lintstagedrc', + '.whitesource', ], }, + { + name: 'hjson', + fileExtensions: ['hjson'], + }, { name: 'jinja', fileExtensions: ['jinja', 'jinja2', 'j2', 'jinja-html'], light: true, }, + { name: 'proto', fileExtensions: ['proto'] }, { - name: 'proto', - fileExtensions: ['proto'], + name: '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', + ], }, { name: 'sublime', fileExtensions: ['sublime-project', 'sublime-workspace'], }, + { name: 'simulink', fileExtensions: ['slx'] }, { name: 'twine', fileExtensions: ['tw', 'twee'] }, { name: 'yaml', - fileExtensions: [ - 'yml', - 'yaml', - 'yml.dist', - 'yaml.dist', - 'YAML-tmLanguage', - ], + fileExtensions: ['yml.dist', 'yaml.dist', 'YAML-tmLanguage'], }, { name: 'xml', @@ -74,9 +95,14 @@ export const fileIcons: FileIcons = { 'manifest', 'project', 'xml.dist', + 'xml.dist.sample', + 'dmn', + 'jrxml', + 'xmp', ], fileNames: ['.htaccess'], }, + { name: 'toml', fileExtensions: ['toml'], light: true }, { name: 'image', fileExtensions: [ @@ -91,12 +117,12 @@ export const fileIcons: FileIcons = { 'psb', 'ami', 'apx', + 'avif', 'bmp', 'bpg', 'brk', 'cur', 'dds', - 'dng', 'exr', 'fpx', 'gbr', @@ -130,11 +156,69 @@ export const fileIcons: FileIcons = { 'pbm', 'pgm', 'pnm', + 'icns', + '3fr', + 'ari', + 'arw', + 'bay', + 'braw', + 'crw', + 'cr2', + 'cr3', + 'cap', + 'data', + 'dcs', + 'dcr', + 'dng', + 'drf', + 'eip', + 'erf', + 'fff', + 'gpr', + 'iiq', + 'k25', + 'kdc', + 'mdc', + 'mef', + 'mos', + 'mrw', + 'nef', + 'nrw', + 'obm', + 'orf', + 'pef', + 'ptx', + 'pxn', + 'r3d', + 'raf', + 'rwl', + 'rw2', + 'rwz', + 'sr2', + 'srf', + 'srw', + 'x3f', ], }, + { name: 'palette', fileExtensions: ['pal', 'gpl', 'act'] }, { name: 'javascript', fileExtensions: ['esx', 'mjs'] }, { name: 'react', fileExtensions: ['jsx'] }, { name: 'react_ts', fileExtensions: ['tsx'] }, + { + name: 'rocket', + fileNames: [ + '.release-it.json', + '.release-it.ts', + '.release-it.js', + '.release-it.cjs', + '.release-it.yaml', + '.release-it.yml', + '.release-it.toml', + 'release.toml', + 'release-plz.toml', + '.release-plz.toml', + ], + }, { name: 'routing', fileExtensions: [ @@ -183,6 +267,17 @@ export const fileIcons: FileIcons = { fileNames: ['reducer.js', 'reducers.js', 'reducer.ts', 'reducers.ts'], enabledFor: [IconPack.Redux], }, + { + name: 'redux-selector', + fileExtensions: [ + 'selector.js', + 'selectors.js', + 'selector.ts', + 'selectors.ts', + ], + fileNames: ['selector.js', 'selectors.js', 'selector.ts', 'selectors.ts'], + enabledFor: [IconPack.Redux], + }, { name: 'redux-store', fileExtensions: ['store.js', 'store.ts'], @@ -194,7 +289,6 @@ export const fileIcons: FileIcons = { fileExtensions: [ 'ini', 'dlc', - 'dll', 'config', 'conf', 'properties', @@ -202,11 +296,11 @@ export const fileIcons: FileIcons = { 'settings', 'option', 'props', - 'toml', 'prefs', 'sln.dotsettings', 'sln.dotsettings.user', 'cfg', + 'cnf', ], fileNames: [ '.jshintignore', @@ -215,14 +309,36 @@ export const fileIcons: FileIcons = { '.yardopts', 'manifest.mf', '.clang-format', + '.clang-format-ignore', '.clang-tidy', + '.conf', ], }, - { name: 'typescript-def', fileExtensions: ['d.ts'] }, + { + name: 'typescript-def', + fileExtensions: ['d.ts', 'd.cts', 'd.mts'], + }, { name: 'markojs', fileExtensions: ['marko'] }, - { name: 'astro', fileExtensions: ['astro'] }, + { + name: 'astro', + fileExtensions: ['astro'], + }, + { + name: 'astro-config', + fileNames: [ + 'astro.config.js', + 'astro.config.mjs', + 'astro.config.cjs', + 'astro.config.ts', + 'astro.config.cts', + 'astro.config.mts', + ], + }, { name: 'pdf', fileExtensions: ['pdf'] }, - { name: 'table', fileExtensions: ['xlsx', 'xls', 'csv', 'tsv'] }, + { + name: 'table', + fileExtensions: ['xlsx', 'xlsm', 'xls', 'csv', 'tsv', 'psv', 'ods'], + }, { name: 'vscode', fileExtensions: [ @@ -230,6 +346,9 @@ export const fileIcons: FileIcons = { 'vsixmanifest', 'vsix', 'code-workplace', + 'code-workspace', + 'code-profile', + 'code-snippets', ], }, { @@ -238,6 +357,7 @@ export const fileIcons: FileIcons = { 'csproj', 'ruleset', 'sln', + 'slnx', 'suo', 'vb', 'vbs', @@ -260,49 +380,95 @@ export const fileIcons: FileIcons = { 'sqlite3', 'pgsql', 'postgres', + 'plpgsql', 'psql', 'db', 'db3', + 'dblite', + 'dblite3', + 'debugsymbols', ], }, { name: 'kusto', fileExtensions: ['kql'] }, - { name: 'csharp', fileExtensions: ['cs', 'csx'] }, + { name: 'csharp', fileExtensions: ['cs', 'csx', 'csharp'] }, { name: 'qsharp', fileExtensions: ['qs'] }, { name: 'zip', fileExtensions: [ 'zip', + 'z', 'tar', 'gz', 'xz', + 'lz', + 'liz', + 'lzma', + 'lzma2', + 'lz4', + 'lz5', + 'lzh', + 'lha', 'br', + 'bz2', 'bzip2', 'gzip', 'brotli', '7z', + '001', 'rar', + 'far', + 'tz', + 'taz', + 'tlz', + 'txz', 'tgz', + 'tpz', + 'tbz', + 'tbz2', + 'zst', + 'zstd', + 'tzst', + 'tzstd', + 'cab', + 'cpio', + 'rpm', + 'deb', + 'arj', + 'wim', + 'swm', + 'esd', + 'fat', + 'xar', + 'ntfs', + 'hfs', + 'squashfs', + 'apfs', ], }, { name: 'vala', fileExtensions: ['vala'] }, - { name: 'zig', fileExtensions: ['zig'] }, + { name: 'zig', fileExtensions: ['zig', 'zon'] }, { name: 'exe', fileExtensions: ['exe', 'msi'] }, { name: 'hex', fileExtensions: ['dat', 'bin', 'hex'] }, { name: 'java', fileExtensions: ['java', 'jsp'] }, { name: 'jar', fileExtensions: ['jar'] }, { name: 'javaclass', fileExtensions: ['class'] }, - { name: 'c', fileExtensions: ['c', 'm', 'i', 'mi'] }, + { name: 'c3', fileExtensions: ['c3'] }, + { name: 'c', fileExtensions: ['c', 'i', 'mi'] }, { name: 'h', fileExtensions: ['h'] }, { name: 'cpp', - fileExtensions: ['cc', 'cpp', 'cxx', 'c++', 'cp', 'mm', 'mii', 'ii'], + fileExtensions: ['cc', 'cpp', 'cxx', 'c++', 'cp', 'mii', 'ii'], }, { name: 'hpp', fileExtensions: ['hh', 'hpp', 'hxx', 'h++', 'hp', 'tcc', 'inl'], }, + { name: 'rc', fileExtensions: ['rc'] }, { name: 'go', fileExtensions: ['go'] }, - { name: 'go-mod', fileNames: ['go.mod', 'go.sum'] }, + { + name: 'go-mod', + fileNames: ['go.mod', 'go.sum', 'go.work', 'go.work.sum'], + }, { name: 'python', fileExtensions: ['py'] }, { name: 'python-misc', @@ -314,6 +480,8 @@ export const fileIcons: FileIcons = { 'manifest.in', 'pylintrc', '.pylintrc', + 'pyproject.toml', + 'py.typed', ], }, { name: 'url', fileExtensions: ['url'] }, @@ -331,7 +499,9 @@ export const fileIcons: FileIcons = { 'awk', 'fish', 'exp', + 'nu', ], + fileNames: ['commit-msg', 'pre-commit', 'pre-push', 'post-merge'], }, { name: 'powershell', @@ -342,29 +512,58 @@ export const fileIcons: FileIcons = { fileExtensions: ['gradle'], fileNames: ['gradle.properties', 'gradlew', 'gradle-wrapper.properties'], }, - { name: 'word', fileExtensions: ['doc', 'docx', 'rtf'] }, + { name: 'word', fileExtensions: ['doc', 'docx', 'rtf', 'odt'] }, { name: 'certificate', fileExtensions: ['cer', 'cert', 'crt'], fileNames: [ 'copying', 'copying.md', + 'copying.rst', 'copying.txt', 'copyright', - 'copyright.txt', 'copyright.md', + 'copyright.rst', + 'copyright.txt', 'license', + 'license-agpl', + 'license-apache', + 'license-bsd', + 'license-mit', + 'license-gpl', + 'license-lgpl', 'license.md', + 'license.rst', 'license.txt', 'licence', + 'licence-agpl', + 'licence-apache', + 'licence-bsd', + 'licence-mit', + 'licence-gpl', + 'licence-lgpl', 'licence.md', + 'licence.rst', 'licence.txt', + 'unlicense', + 'unlicense.txt', ], }, { name: 'key', - fileExtensions: ['pub', 'key', 'pem', 'asc', 'gpg', 'passwd'], - fileNames: ['.htpasswd'], + fileExtensions: [ + 'pub', + 'key', + 'pem', + 'asc', + 'gpg', + 'passwd', + 'shasum', + 'sha256', + 'sha256sum', + 'sha256sums', + ], + fileNames: ['.htpasswd', 'sha256sums', '.secrets'], }, { name: 'font', @@ -386,15 +585,35 @@ export const fileIcons: FileIcons = { 'mrf', ], }, - { name: 'lib', fileExtensions: ['lib', 'bib'] }, - { name: 'ruby', fileExtensions: ['rb', 'erb'] }, + { name: 'lib', fileExtensions: ['lib', 'bib', 'a'] }, + { name: 'dll', fileExtensions: ['dll', 'ilk', 'so'] }, + { + name: 'ruby', + fileExtensions: ['rb', 'erb', 'rbs'], + fileNames: ['.ruby-version'], + }, { name: 'gemfile', fileNames: ['gemfile'] }, + { + name: 'rubocop', + fileNames: ['.rubocop.yml', '.rubocop-todo.yml', '.rubocop_todo.yml'], + light: true, + }, + { name: 'rspec', fileNames: ['.rspec'] }, { name: 'fsharp', fileExtensions: ['fs', 'fsx', 'fsi', 'fsproj'] }, { name: 'swift', fileExtensions: ['swift'] }, { name: 'arduino', fileExtensions: ['ino'] }, { name: 'docker', - fileExtensions: ['dockerignore', 'dockerfile'], + fileExtensions: [ + 'dockerignore', + 'dockerfile', + 'docker-compose.yml', + 'docker-compose.yaml', + 'containerignore', + 'containerfile', + 'compose.yaml', + 'compose.yml', + ], fileNames: [ 'dockerfile', 'dockerfile.prod', @@ -445,6 +664,56 @@ export const fileIcons: FileIcons = { 'docker-compose.ci.yaml', 'docker-compose.web.yaml', 'docker-compose.worker.yaml', + + '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', + + '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', ], }, { name: 'tex', fileExtensions: ['tex', 'sty', 'dtx', 'ltx'] }, @@ -461,6 +730,7 @@ export const fileIcons: FileIcons = { 'pps', 'ppam', 'ppa', + 'odp', ], }, { @@ -491,6 +761,7 @@ export const fileIcons: FileIcons = { ], }, { name: 'virtual', fileExtensions: ['vdi', 'vbox', 'vbox-prev'] }, + { name: 'vedic', fileExtensions: ['ved', 'veda', 'vedic'] }, { name: 'email', fileExtensions: ['ics'], fileNames: ['.mailmap'] }, { name: 'audio', @@ -502,21 +773,45 @@ export const fileIcons: FileIcons = { name: 'graphql', fileExtensions: ['graphql', 'gql'], fileNames: ['.graphqlconfig'], + patterns: { + graphql: FileNamePattern.Ecmascript, + }, }, - { name: 'rust', fileExtensions: ['rs'] }, + { name: 'rust', fileExtensions: ['rs', 'ron'] }, { name: 'raml', fileExtensions: ['raml'] }, { name: 'xaml', fileExtensions: ['xaml'] }, - { name: 'haskell', fileExtensions: ['hs'] }, + { name: 'haskell', fileExtensions: ['hs', 'lhs'] }, { name: 'kotlin', fileExtensions: ['kt', 'kts'] }, + { + name: 'mist', + fileExtensions: ['mist.js', 'mist.ts', 'mist.jsx', 'mist.tsx'], + clone: { + base: 'liquid', + color: 'blue-500', + }, + }, + { name: 'otne', fileExtensions: ['otne'] }, { name: 'git', fileExtensions: ['patch'], fileNames: [ + '.git', '.gitignore', - '.gitconfig', + '.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', ], }, @@ -524,12 +819,14 @@ export const fileIcons: FileIcons = { { name: 'clojure', fileExtensions: ['clj', 'cljs', 'cljc'] }, { name: 'groovy', fileExtensions: ['groovy'] }, { name: 'r', fileExtensions: ['r', 'rmd'], fileNames: ['.Rhistory'] }, - { name: 'dart', fileExtensions: ['dart'] }, + { name: 'dart', fileExtensions: ['dart'], fileNames: ['.pubignore'] }, + { name: 'dart_generated', fileExtensions: ['freezed.dart', 'g.dart'] }, { name: 'actionscript', fileExtensions: ['as'] }, { name: 'mxml', fileExtensions: ['mxml'] }, { name: 'autohotkey', fileExtensions: ['ahk'] }, { name: 'flash', fileExtensions: ['swf'] }, - { name: 'swc', fileExtensions: ['swc'] }, + { name: 'adobe-swc', fileExtensions: ['swc'] }, + { name: 'swc', fileExtensions: ['swcrc'] }, { name: 'cmake', fileExtensions: ['cmake'], @@ -553,6 +850,7 @@ export const fileIcons: FileIcons = { ], }, { name: 'vue', fileExtensions: ['vue'] }, + { name: 'semgrep', fileNames: ['semgrep.yml', '.semgrepignore'] }, { name: 'vue-config', fileNames: [ @@ -560,6 +858,7 @@ export const fileIcons: FileIcons = { 'vue.config.ts', 'vetur.config.js', 'vetur.config.ts', + 'volar.config.js', ], }, { @@ -570,10 +869,14 @@ export const fileIcons: FileIcons = { }, { name: 'nuxt', - fileNames: ['nuxt.config.js', 'nuxt.config.ts'], - light: true, + fileNames: ['nuxt.config.js', 'nuxt.config.ts', '.nuxtignore', '.nuxtrc'], + }, + { + name: 'harmonix', + fileNames: ['harmonix.config.js', 'harmonix.config.ts'], }, { name: 'ocaml', fileExtensions: ['ml', 'mli', 'cmx'] }, + { name: 'odin', fileExtensions: ['odin'] }, { name: 'javascript-map', fileExtensions: ['js.map', 'mjs.map', 'cjs.map'], @@ -589,7 +892,21 @@ export const fileIcons: FileIcons = { { name: 'haxe', fileExtensions: ['hx'] }, { name: 'test-ts', - fileExtensions: ['spec.ts', 'e2e-spec.ts', 'test.ts', 'ts.snap'], + 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', + ], }, { name: 'test-jsx', @@ -600,50 +917,104 @@ export const fileIcons: FileIcons = { 'spec.jsx', 'test.jsx', 'jsx.snap', + 'cy.jsx', + 'cy.tsx', + 'spec-d.tsx', + 'test-d.tsx', ], }, { name: 'test-js', - fileExtensions: ['spec.js', 'e2e-spec.js', 'test.js', 'js.snap'], + 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', + ], }, { name: 'angular', fileExtensions: ['module.ts', 'module.js', 'ng-template'], - fileNames: ['angular-cli.json', '.angular-cli.json', 'angular.json'], + fileNames: [ + 'angular-cli.json', + '.angular-cli.json', + 'angular.json', + 'ng-package.json', + ], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-component', + clone: { + base: 'angular', + color: 'blue-700', + }, fileExtensions: ['component.ts', 'component.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-guard', + clone: { + base: 'angular', + color: 'green-600', + }, fileExtensions: ['guard.ts', 'guard.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-service', + clone: { + base: 'angular', + color: 'amber-400', + }, fileExtensions: ['service.ts', 'service.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-pipe', + clone: { + base: 'angular', + color: 'teal-600', + }, fileExtensions: ['pipe.ts', 'pipe.js', 'filter.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-directive', + clone: { + base: 'angular', + color: 'purple-400', + }, fileExtensions: ['directive.ts', 'directive.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, { name: 'angular-resolver', + clone: { + base: 'angular', + color: 'green-600', + }, fileExtensions: ['resolver.ts', 'resolver.js'], enabledFor: [IconPack.Angular, IconPack.Ngrx], }, + { + name: 'angular-interceptor', + clone: { + base: 'angular', + color: 'orange-500', + }, + fileExtensions: ['interceptor.ts', 'interceptor.js'], + enabledFor: [IconPack.Angular, IconPack.Ngrx], + }, { name: 'puppet', fileExtensions: ['pp'] }, - { name: 'elixir', fileExtensions: ['ex', 'exs', 'eex', 'leex'] }, + { name: 'elixir', fileExtensions: ['ex', 'exs', 'eex', 'leex', 'heex'] }, { name: 'livescript', fileExtensions: ['ls'] }, { name: 'erlang', fileExtensions: ['erl'] }, { name: 'twig', fileExtensions: ['twig'] }, @@ -655,7 +1026,7 @@ export const fileIcons: FileIcons = { { name: 'reason', fileExtensions: ['re', 'rei'] }, { name: 'bucklescript', fileExtensions: ['cmj'] }, { name: 'merlin', fileExtensions: ['merlin'] }, - { name: 'verilog', fileExtensions: ['v', 'vhd', 'sv', 'svh'] }, + { name: 'verilog', fileExtensions: ['vhd', 'vhdx', 'sv', 'svh', 'vhdl'] }, { name: 'mathematica', fileExtensions: ['nb'] }, { name: 'wolframlanguage', fileExtensions: ['wl', 'wls'] }, { name: 'nunjucks', fileExtensions: ['njk', 'nunjucks'] }, @@ -664,15 +1035,65 @@ export const fileIcons: FileIcons = { { name: 'autoit', fileExtensions: ['au3'] }, { name: 'haml', fileExtensions: ['haml'] }, { name: 'yang', fileExtensions: ['yang'] }, - { name: 'mjml', fileExtensions: ['mjml'] }, + { + name: 'mjml', + fileExtensions: ['mjml'], + fileNames: ['.mjmlconfig'], + }, { name: 'vercel', fileNames: ['vercel.json', '.vercelignore', 'now.json', '.nowignore'], light: true, }, + { + name: 'liara', + fileNames: ['liara.json', '.liaraignore'], + }, + { + name: 'verdaccio', + fileNames: ['verdaccio.yml'], + }, + { + name: 'payload', + fileNames: [ + 'payload.config.js', + 'payload.config.mjs', + 'payload.config.ts', + 'payload.config.mts', + ], + light: true, + }, + { + name: 'next', + fileNames: [ + 'next.config.js', + 'next.config.mjs', + 'next.config.ts', + 'next.config.mts', + ], + light: true, + }, + { + name: 'remark', + fileNames: [ + '.remarkrc', + '.remarkrc.cjs', + '.remarkrc.js', + '.remarkrc.json', + '.remarkrc.mjs', + '.remarkrc.yaml', + '.remarkrc.yml', + '.remarkignore', + ], + }, + { + name: 'remix', + fileNames: ['remix.config.js', 'remix.config.ts'], + light: true, + }, { name: 'terraform', - fileExtensions: ['tf', 'tf.json', 'tfvars', 'tfstate'], + fileExtensions: ['tf', 'tf.json', 'tfvars', 'tfstate', 'tfbackend'], }, { name: 'laravel', @@ -681,7 +1102,7 @@ export const fileIcons: FileIcons = { }, { name: 'applescript', fileExtensions: ['applescript', 'ipa'] }, { name: 'cake', fileExtensions: ['cake'] }, - { name: 'cucumber', fileExtensions: ['feature'] }, + { name: 'cucumber', fileExtensions: ['feature', 'features'] }, { name: 'nim', fileExtensions: ['nim', 'nimble'] }, { name: 'apiblueprint', fileExtensions: ['apib', 'apiblueprint'] }, { name: 'riot', fileExtensions: ['riot', 'tag'] }, @@ -690,25 +1111,21 @@ export const fileIcons: FileIcons = { { name: 'postcss', fileExtensions: ['pcss', 'sss'], - fileNames: [ - 'postcss.config.js', - '.postcssrc.js', - '.postcssrc', - '.postcssrc.json', - '.postcssrc.yml', - ], + patterns: { + postcss: FileNamePattern.Cosmiconfig, + }, }, { name: 'posthtml', - fileNames: [ - 'posthtml.config.js', - '.posthtmlrc.js', - '.posthtmlrc', - '.posthtmlrc.json', - '.posthtmlrc.yml', - ], + patterns: { + posthtml: FileNamePattern.Cosmiconfig, + }, + }, + { + name: 'todo', + fileExtensions: ['todo'], + fileNames: ['todo.md', 'todos.md'], }, - { name: 'todo', fileExtensions: ['todo'] }, { name: 'coldfusion', fileExtensions: ['cfml', 'cfc', 'lucee', 'cfm'] }, { name: 'cabal', @@ -732,73 +1149,44 @@ export const fileIcons: FileIcons = { { name: 'sbt', fileExtensions: ['sbt'] }, { name: 'webpack', - fileNames: [ - 'webpack.js', - 'webpack.ts', - 'webpack.base.js', - 'webpack.base.ts', - 'webpack.config.js', - 'webpack.config.ts', - 'webpack.common.js', - 'webpack.common.ts', - 'webpack.config.common.js', - 'webpack.config.common.ts', - 'webpack.config.common.babel.js', - 'webpack.config.common.babel.ts', - 'webpack.dev.js', - 'webpack.dev.ts', - 'webpack.development.js', - 'webpack.development.ts', - 'webpack.config.dev.js', - 'webpack.config.dev.ts', - 'webpack.config.dev.babel.js', - 'webpack.config.dev.babel.ts', - 'webpack.mix.js', - 'webpack.prod.js', - 'webpack.prod.config.js', - 'webpack.prod.ts', - 'webpack.production.js', - 'webpack.production.ts', - 'webpack.server.js', - 'webpack.server.ts', - 'webpack.client.js', - 'webpack.client.ts', - 'webpack.config.server.js', - 'webpack.config.server.ts', - 'webpack.config.client.js', - 'webpack.config.client.ts', - 'webpack.config.production.babel.js', - 'webpack.config.production.babel.ts', - 'webpack.config.prod.babel.js', - 'webpack.config.prod.babel.ts', - 'webpack.config.prod.js', - 'webpack.config.prod.ts', - 'webpack.config.production.js', - 'webpack.config.production.ts', - 'webpack.config.staging.js', - 'webpack.config.staging.ts', - '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.ts', - 'webpack.config.staging.babel.js', - 'webpack.config.staging.babel.ts', - 'webpack.config.coffee', - 'webpack.config.test.js', - 'webpack.config.test.ts', - 'webpack.config.vendor.js', - 'webpack.config.vendor.ts', - 'webpack.config.vendor.production.js', - 'webpack.config.vendor.production.ts', - 'webpack.test.js', - 'webpack.test.ts', - 'webpack.dist.js', - 'webpack.dist.ts', - 'webpackfile.js', - 'webpackfile.ts', - ], + fileNames: ['webpack.config.coffee'], + patterns: { + 'webpack.base': FileNamePattern.Ecmascript, + 'webpack.client': FileNamePattern.Ecmascript, + 'webpack.common': FileNamePattern.Ecmascript, + 'webpack.config.babel': FileNamePattern.Ecmascript, + 'webpack.config.base.babel': FileNamePattern.Ecmascript, + 'webpack.config.base': FileNamePattern.Ecmascript, + 'webpack.config.client': FileNamePattern.Ecmascript, + 'webpack.config.common.babel': FileNamePattern.Ecmascript, + 'webpack.config.common': FileNamePattern.Ecmascript, + 'webpack.config.dev.babel': FileNamePattern.Ecmascript, + 'webpack.config.dev': FileNamePattern.Ecmascript, + 'webpack.config.main': FileNamePattern.Ecmascript, + 'webpack.config.prod.babel': FileNamePattern.Ecmascript, + 'webpack.config.prod': FileNamePattern.Ecmascript, + 'webpack.config.production.babel': FileNamePattern.Ecmascript, + 'webpack.config.production': FileNamePattern.Ecmascript, + 'webpack.config.renderer': FileNamePattern.Ecmascript, + 'webpack.config.server': FileNamePattern.Ecmascript, + 'webpack.config.staging.babel': FileNamePattern.Ecmascript, + 'webpack.config.staging': FileNamePattern.Ecmascript, + 'webpack.config.test': FileNamePattern.Ecmascript, + 'webpack.config.vendor.production': FileNamePattern.Ecmascript, + 'webpack.config.vendor': FileNamePattern.Ecmascript, + 'webpack.config': FileNamePattern.Ecmascript, + 'webpack.dev': FileNamePattern.Ecmascript, + 'webpack.development': FileNamePattern.Ecmascript, + 'webpack.dist': FileNamePattern.Ecmascript, + 'webpack.mix': FileNamePattern.Ecmascript, + 'webpack.prod.config': FileNamePattern.Ecmascript, + 'webpack.prod': FileNamePattern.Ecmascript, + 'webpack.production': FileNamePattern.Ecmascript, + 'webpack.server': FileNamePattern.Ecmascript, + 'webpack.test': FileNamePattern.Ecmascript, + webpack: FileNamePattern.Ecmascript, + webpackfile: FileNamePattern.Ecmascript, + }, }, { name: 'ionic', fileNames: ['ionic.config.json', '.io-config.json'] }, { @@ -807,6 +1195,8 @@ export const fileIcons: FileIcons = { 'gulpfile.js', 'gulpfile.mjs', 'gulpfile.ts', + 'gulpfile.cts', + 'gulpfile.mts', 'gulpfile.babel.js', ], }, @@ -850,54 +1240,102 @@ export const fileIcons: FileIcons = { '.env.local', '.env.dev', '.env.development', + '.env.alpha', + '.env.e2e', '.env.qa', + '.env.dist', '.env.prod', '.env.production', + '.env.stg', + '.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.stg.local', '.env.staging.local', '.env.test.local', + '.env.uat', + '.vars', ], }, + { + name: 'turborepo', + light: true, + fileNames: ['turbo.json'], + }, { name: 'babel', + fileNames: ['babel-transform.js'], + patterns: { + babel: FileNamePattern.Cosmiconfig, + 'babel-plugin-macros': FileNamePattern.Cosmiconfig, + }, + }, + { + name: 'blitz', fileNames: [ - '.babelrc', - '.babelrc.js', - '.babelrc.json', - 'babel.config.js', - 'babel.config.json', - 'babel-transform.js', + 'blitz.config.js', + 'blitz.config.ts', + '.blitz.config.compiled.js', ], }, { name: 'contributing', - fileNames: ['contributing.md'], + fileNames: [ + 'contributing.md', + 'contributing.rst', + 'contributing.txt', + 'contributing', + ], + }, + { + name: 'readme', + fileNames: ['readme.md', 'readme.rst', 'readme.txt', 'readme'], }, - { name: 'readme', fileNames: ['readme.md', 'readme.txt', 'readme'] }, { name: 'changelog', fileNames: [ 'changelog', 'changelog.md', + 'changelog.rst', 'changelog.txt', 'changes', 'changes.md', + 'changes.rst', 'changes.txt', ], }, + { + name: 'architecture', + fileNames: [ + 'architecture.md', + 'architecture.rst', + 'architecture.txt', + 'architecture', + ], + }, { name: 'credits', - fileNames: ['credits', 'credits.txt', 'credits.md'], + fileNames: ['credits.md', 'credits.rst', 'credits.txt', 'credits'], }, { name: 'authors', - fileNames: ['authors', 'authors.md', 'authors.txt'], + fileNames: [ + 'authors.md', + 'authors.rst', + 'authors.txt', + 'authors', + 'contributors.md', + 'contributors.rst', + 'contributors.txt', + 'contributors', + ], }, { name: 'flow', fileNames: ['.flowconfig'] }, { name: 'favicon', fileNames: ['favicon.ico'] }, @@ -914,10 +1352,30 @@ export const fileIcons: FileIcons = { ], }, { name: 'bithound', fileNames: ['.bithoundrc'] }, - { name: 'svgo', fileNames: ['svgo.config.js'] }, + { + name: 'svgo', + fileNames: ['svgo.config.js', 'svgo.config.cjs', 'svgo.config.mjs'], + }, { name: 'appveyor', fileNames: ['.appveyor.yml', 'appveyor.yml'] }, { name: 'travis', fileNames: ['.travis.yml'] }, - { name: 'codecov', fileNames: ['.codecov.yml', 'codecov.yml'] }, + { + name: 'codecov', + fileNames: [ + '.codecov.yml', + 'codecov.yml', + '.codecov.yaml', + 'codecov.yaml', + ], + }, + { + name: 'sonarcloud', + fileNames: [ + 'sonar-project.properties', + '.sonarcloud.properties', + 'sonarcloud.yaml', + 'SonarQube.Analysis.xml', + ], + }, { name: 'protractor', fileNames: [ @@ -930,30 +1388,49 @@ export const fileIcons: FileIcons = { }, { name: 'fusebox', fileNames: ['fuse.js'] }, { name: 'heroku', fileNames: ['procfile', 'procfile.windows'] }, - { name: 'editorconfig', fileNames: ['.editorconfig'] }, + { + name: 'editorconfig', + fileNames: ['.editorconfig', '.editorconfig-checker.json', '.ecrc'], + }, { name: 'gitlab', fileExtensions: ['gitlab-ci.yml'] }, { name: 'bower', fileNames: ['.bowerrc', 'bower.json'] }, { name: 'eslint', fileNames: [ - '.eslintrc.js', - '.eslintrc.cjs', - '.eslintrc.yaml', - '.eslintrc.yml', - '.eslintrc.json', '.eslintrc-md.js', '.eslintrc-jsdoc.js', - '.eslintrc', + '.eslintrc.base.json', '.eslintignore', '.eslintcache', ], + patterns: { + eslint: FileNamePattern.Cosmiconfig, + }, }, { name: 'conduct', - fileNames: ['code_of_conduct.md', 'code_of_conduct.txt'], + fileNames: [ + 'code_of_conduct.md', + 'code_of_conduct.txt', + 'code_of_conduct', + ], }, { name: 'watchman', fileNames: ['.watchmanconfig'] }, { name: 'aurelia', fileNames: ['aurelia.json'] }, + { + name: 'auto', + fileNames: [ + '.autorc', + 'auto.config.js', + 'auto.config.ts', + 'auto-config.json', + 'auto-config.yaml', + 'auto-config.yml', + 'auto-config.ts', + 'auto-config.js', + ], + light: true, + }, { name: 'mocha', fileNames: [ @@ -979,50 +1456,63 @@ export const fileIcons: FileIcons = { 'firestore.indexes.json', ], }, + { + name: 'figma', + fileExtensions: ['fig'], + }, { name: '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', ], }, { name: 'hack', fileNames: ['.hhconfig'] }, + { name: 'huff', fileExtensions: ['huff'], light: true }, + { name: 'hardhat', fileNames: ['hardhat.config.js', 'hardhat.config.ts'] }, { name: 'stylelint', - fileNames: [ - '.stylelintrc', - 'stylelint.config.js', - '.stylelintrc.json', - '.stylelintrc.yaml', - '.stylelintrc.yml', - '.stylelintrc.js', - '.stylelintignore', - ], light: true, + fileNames: ['.stylelintignore', '.stylelintcache'], + patterns: { + stylelint: FileNamePattern.Cosmiconfig, + }, }, { name: 'code-climate', fileNames: ['.codeclimate.yml'], light: true }, { name: 'prettier', + fileNames: ['.prettierignore'], + patterns: { + prettier: FileNamePattern.Cosmiconfig, + }, + }, + { + name: 'renovate', fileNames: [ - '.prettierrc', - 'prettier.config.js', - '.prettierrc.js', - '.prettierrc.json', - '.prettierrc.yaml', - '.prettierrc.yml', - '.prettierignore', + '.renovaterc', + '.renovaterc.json', + 'renovate-config.json', + 'renovate.json', + 'renovate.json5', ], }, { name: 'apollo', fileNames: ['apollo.config.js'] }, @@ -1079,11 +1569,16 @@ export const fileIcons: FileIcons = { { name: 'gatsby', fileNames: [ - 'gatsby.config.js', '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', ], }, { @@ -1099,6 +1594,8 @@ export const fileIcons: FileIcons = { fileNames: [ 'gruntfile.js', 'gruntfile.ts', + 'gruntfile.cjs', + 'gruntfile.cts', 'gruntfile.coffee', 'gruntfile.babel.js', 'gruntfile.babel.ts', @@ -1109,17 +1606,29 @@ export const fileIcons: FileIcons = { name: 'jest', fileNames: [ 'jest.config.js', - 'jest.config.ts', '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.ts', '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', @@ -1128,9 +1637,17 @@ export const fileIcons: FileIcons = { '.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', ], }, - { name: 'processing', fileExtensions: ['pde'], light: true }, + { name: 'processing', fileExtensions: ['pde'] }, { name: 'storybook', fileExtensions: [ @@ -1152,25 +1669,28 @@ export const fileIcons: FileIcons = { { name: 'hcl', fileExtensions: ['hcl'], light: true }, { name: 'helm', fileNames: ['.helmignore'] }, { name: 'san', fileExtensions: ['san'] }, + { + name: 'quokka', + fileExtensions: ['quokka.js', 'quokka.ts', 'quokka.jsx', 'quokka.tsx'], + }, { name: 'wallaby', fileNames: ['wallaby.js', 'wallaby.conf.js'] }, { name: 'django', fileExtensions: ['djt'] }, { name: 'stencil', fileNames: ['stencil.config.js', 'stencil.config.ts'] }, { name: 'red', fileExtensions: ['red'] }, - { name: 'makefile', fileNames: ['makefile'] }, + { + name: 'makefile', + fileExtensions: ['mk'], + fileNames: ['makefile', 'gnumakefile', 'kbuild'], + }, { name: 'foxpro', fileExtensions: ['fxp', 'prg'] }, - { name: 'i18n', fileExtensions: ['pot', 'po', 'mo'] }, + { name: 'i18n', fileExtensions: ['pot', 'po', 'mo', 'lang', 'xlf'] }, { name: 'webassembly', fileExtensions: ['wat', 'wasm'] }, { name: 'semantic-release', light: true, - fileNames: [ - '.releaserc', - '.releaserc.yaml', - '.releaserc.yml', - '.releaserc.json', - '.releaserc.js', - 'release.config.js', - ], + patterns: { + release: FileNamePattern.Cosmiconfig, + }, }, { name: 'bitbucket', @@ -1179,6 +1699,7 @@ export const fileIcons: FileIcons = { { name: 'jupyter', fileExtensions: ['ipynb'] }, { name: 'd', fileExtensions: ['d'] }, { name: 'mdx', fileExtensions: ['mdx'] }, + { name: 'mdsvex', fileExtensions: ['svx'] }, { name: 'ballerina', fileExtensions: ['bal', 'balx'] }, { name: 'racket', fileExtensions: ['rkt'] }, { @@ -1189,11 +1710,34 @@ export const fileIcons: FileIcons = { { name: 'mint', fileExtensions: ['mint'] }, { name: 'velocity', fileExtensions: ['vm', 'fhtml', 'vtl'] }, { name: 'godot', fileExtensions: ['gd'] }, - { name: 'godot-assets', fileExtensions: ['godot', 'tres', 'tscn'] }, + { + name: 'godot-assets', + fileExtensions: [ + 'godot', + 'tres', + 'tscn', + 'gdns', + 'gdnlib', + 'gdshader', + 'gdshaderinc', + 'gdextension', + ], + fileNames: ['.gdignore', '._sc_', '_sc_'], + }, { name: 'azure-pipelines', - fileNames: ['azure-pipelines.yml', 'azure-pipelines.yaml'], - fileExtensions: ['azure-pipelines.yml', 'azure-pipelines.yaml'], + 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', + ], }, { name: 'azure', fileExtensions: ['azcli'] }, { @@ -1205,7 +1749,17 @@ export const fileIcons: FileIcons = { { name: 'razor', fileExtensions: ['cshtml', 'vbhtml'] }, { name: 'abc', fileExtensions: ['abc'] }, { name: 'asciidoc', fileExtensions: ['ad', 'adoc', 'asciidoc'] }, - { name: 'istanbul', fileNames: ['.nycrc', '.nycrc.json'] }, + { + name: 'istanbul', + fileNames: [ + '.nycrc', + '.nycrc.json', + '.nycrc.yaml', + '.nycrc.yml', + 'nyc.config.js', + '.istanbul.yml', + ], + }, { name: 'edge', fileExtensions: ['edge'] }, { name: 'scheme', fileExtensions: ['ss', 'scm'] }, { name: 'lisp', fileExtensions: ['lisp', 'lsp', 'cl', 'fast'] }, @@ -1215,17 +1769,24 @@ export const fileIcons: FileIcons = { 'tailwind.js', 'tailwind.ts', 'tailwind.config.js', - 'tailwind.config.ts', 'tailwind.config.cjs', + 'tailwind.config.mjs', + 'tailwind.config.ts', + 'tailwind.config.cts', + 'tailwind.config.mts', ], }, { name: '3d', fileExtensions: [ 'stl', + 'stp', 'obj', + 'o', 'ac', 'blend', + 'dxf', + 'fbx', 'mesh', 'mqo', 'pmd', @@ -1234,6 +1795,8 @@ export const fileIcons: FileIcons = { 'vac', 'vdp', 'vox', + 'gltf', + 'glb', ], }, { name: 'buildkite', fileNames: ['buildkite.yml', 'buildkite.yaml'] }, @@ -1245,12 +1808,31 @@ export const fileIcons: FileIcons = { 'netlify.yaml', 'netlify.toml', ], + light: true, }, { name: 'svg', fileExtensions: ['svg'] }, { name: 'svelte', fileExtensions: ['svelte'], - fileNames: ['svelte.config.js', 'svelte.config.cjs'], + patterns: { + 'svelte.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'svelte_js', + fileExtensions: ['svelte.js'], + clone: { + base: 'svelte', + color: 'amber-400', + }, + }, + { + name: 'svelte_ts', + fileExtensions: ['svelte.ts'], + clone: { + base: 'svelte', + color: 'light-blue-700', + }, }, { name: 'vim', @@ -1267,64 +1849,140 @@ export const fileIcons: FileIcons = { }, { name: 'nest-controller', + clone: { + base: 'nest', + color: 'light-blue-700', + }, fileExtensions: ['controller.ts', 'controller.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-middleware', + clone: { + base: 'nest', + color: 'indigo-400', + }, fileExtensions: ['middleware.ts', 'middleware.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-module', + clone: { + base: 'nest', + color: 'red-600', + }, fileExtensions: ['module.ts', 'module.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-service', + clone: { + base: 'nest', + color: 'amber-400', + }, fileExtensions: ['service.ts', 'service.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-decorator', + clone: { + base: 'nest', + color: 'purple-400', + }, fileExtensions: ['decorator.ts', 'decorator.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-pipe', + clone: { + base: 'nest', + color: 'teal-600', + }, fileExtensions: ['pipe.ts', 'pipe.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-filter', + clone: { + base: 'nest', + color: 'deep-orange-400', + }, fileExtensions: ['filter.ts', 'filter.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-gateway', + clone: { + base: 'nest', + color: 'lime-700', + }, fileExtensions: ['gateway.ts', 'gateway.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-guard', + clone: { + base: 'nest', + color: 'green-600', + }, fileExtensions: ['guard.ts', 'guard.js'], enabledFor: [IconPack.Nest], }, { name: 'nest-resolver', + clone: { + base: 'nest', + color: 'pink-400', + }, fileExtensions: ['resolver.ts', 'resolver.js'], enabledFor: [IconPack.Nest], }, + { + name: 'nest-interceptor', + clone: { + base: 'nest', + color: 'orange-500', + }, + fileExtensions: ['interceptor.ts', 'interceptor.js'], + enabledFor: [IconPack.Nest], + }, + { name: 'moon', fileNames: ['moon.yml'] }, { name: 'moonscript', fileExtensions: ['moon'] }, { name: 'percy', fileNames: ['.percy.yml'] }, { name: 'gitpod', fileNames: ['.gitpod.yml'] }, - { name: 'advpl_prw', fileExtensions: ['prw', 'prx'] }, - { name: 'advpl_ptm', fileExtensions: ['ptm'] }, - { name: 'advpl_tlpp', fileExtensions: ['tlpp'] }, - { name: 'advpl_include', fileExtensions: ['ch'] }, - { name: 'codeowners', fileNames: ['codeowners'] }, + { name: 'stackblitz', fileNames: ['.stackblitzrc'] }, + { name: 'advpl', fileExtensions: ['prw', 'prx'] }, + { + name: 'advpl-ptm', + clone: { + base: 'advpl', + color: 'red-400', + }, + fileExtensions: ['ptm'], + }, + { + name: 'advpl-tlpp', + clone: { + base: 'advpl', + color: 'yellow-700', + }, + fileExtensions: ['tlpp'], + }, + { + name: 'advpl-include', + clone: { + base: 'advpl', + color: 'cyan-500', + }, + fileExtensions: ['ch'], + }, + { name: 'codeowners', fileNames: ['codeowners', 'OWNERS'] }, { name: 'gcp', fileNames: ['.gcloudignore'] }, - { name: 'disc', fileExtensions: ['iso'] }, + { name: 'amplify', fileNames: ['amplify.yml'] }, + { + name: 'disc', + fileExtensions: ['iso', 'vmdk', 'hdd', 'qcow', 'qcow2', 'qed', 'dmg'], + }, { name: 'fortran', fileExtensions: ['f', 'f77', 'f90', 'f95', 'f03', 'f08'], @@ -1334,18 +1992,16 @@ export const fileIcons: FileIcons = { { name: 'prolog', fileExtensions: ['p', 'pro', 'pl'] }, { name: 'husky', - fileNames: [ - '.huskyrc', - 'husky.config.js', - '.huskyrc.json', - '.huskyrc.js', - '.huskyrc.yaml', - '.huskyrc.yml', - ], + patterns: { + husky: FileNamePattern.Cosmiconfig, + }, }, { name: 'coconut', fileExtensions: ['coco'] }, { name: 'tilt', fileNames: ['tiltfile'] }, - { name: 'capacitor', fileNames: ['capacitor.config.json'] }, + { + name: 'capacitor', + fileNames: ['capacitor.config.json', 'capacitor.config.ts'], + }, { name: 'sketch', fileExtensions: ['sketch'] }, { name: 'pawn', fileExtensions: ['pwn', 'amx'] }, { name: 'adonis', fileNames: ['.adonisrc.json', 'ace'] }, @@ -1362,16 +2018,10 @@ export const fileIcons: FileIcons = { }, { name: 'commitlint', - fileNames: [ - '.commitlintrc', - '.commitlintrc.js', - 'commitlint.config.js', - '.commitlintrc.json', - '.commitlint.yaml', - '.commitlint.yml', - '.commitlintrc.yaml', - '.commitlintrc.yml', - ], + fileNames: ['.commitlint.yaml', '.commitlint.yml'], + patterns: { + commitlint: FileNamePattern.Cosmiconfig, + }, }, { name: 'buck', fileNames: ['.buckconfig'] }, { name: 'dhall', fileExtensions: ['dhall', 'dhallb'] }, @@ -1389,7 +2039,7 @@ export const fileIcons: FileIcons = { 'grm', ], }, - { name: 'nrwl', fileNames: ['nx.json'] }, + { name: 'nx', fileNames: ['nx.json', '.nxignore'] }, { name: 'opam', fileExtensions: ['opam'] }, { name: 'dune', @@ -1425,7 +2075,19 @@ export const fileIcons: FileIcons = { fileExtensions: ['nupkg'], }, { name: 'command', fileExtensions: ['command'] }, - { name: 'stryker', fileNames: ['stryker.conf.js', 'stryker.conf.json'] }, + { + name: 'stryker', + fileNames: [ + 'stryker.conf.json', + 'stryker.conf.js', + 'stryker.conf.cjs', + 'stryker.conf.mjs', + '.stryker.conf.json', + '.stryker.conf.js', + '.stryker.conf.cjs', + '.stryker.conf.mjs', + ], + }, { name: 'denizenscript', fileExtensions: ['dsc'] }, { name: 'modernizr', @@ -1438,18 +2100,49 @@ export const fileIcons: FileIcons = { fileNames: ['stitches.config.js', 'stitches.config.ts'], light: true, }, - { name: 'nginx', fileNames: ['nginx.conf'] }, - { name: 'minecraft', fileExtensions: ['mcfunction'] }, + { + name: 'nginx', + fileNames: ['nginx.conf'], + fileExtensions: ['nginx', 'nginxconf', 'nginxconfig'], + }, + { + name: 'minecraft', + fileExtensions: [ + 'mcfunction', + 'mcmeta', + 'mcr', + 'mca', + 'mcgame', + 'mclevel', + 'mcworld', + 'mine', + 'mus', + 'mcstructure', + 'mcpack', + 'mcaddon', + 'mctemplate', + 'mcproject', + ], + fileNames: ['.mcattributes', '.mcdefinitions', '.mcignore'], + }, { name: 'replit', fileNames: ['.replit'] }, - { name: 'rescript', fileExtensions: ['res', 'resi'] }, + { name: 'rescript', fileExtensions: ['res'] }, + { name: 'rescript-interface', fileExtensions: ['resi'] }, + { + name: 'duc', + fileNames: ['duc.fbs'], + fileExtensions: ['duc'], + }, { name: 'snowpack', fileNames: [ - 'snowpack.config.cjs', 'snowpack.config.js', + 'snowpack.config.cjs', 'snowpack.config.mjs', - 'snowpack.deps.json', 'snowpack.config.ts', + 'snowpack.config.cts', + 'snowpack.config.mts', + 'snowpack.deps.json', 'snowpack.config.json', ], light: true, @@ -1460,41 +2153,166 @@ export const fileIcons: FileIcons = { { name: 'grain', fileExtensions: ['gr'] }, { name: 'lolcode', fileExtensions: ['lol'] }, { name: 'idris', fileExtensions: ['idr', 'ibc'] }, - { name: 'quasar', fileNames: ['quasar.conf.js'] }, + { + name: 'quasar', + fileNames: [ + 'quasar.conf.js', + 'quasar.config.js', + 'quasar.conf.ts', + 'quasar.config.ts', + 'quasar.config.cjs', + ], + }, + { name: 'dependabot', fileNames: ['dependabot.yml', 'dependabot.yaml'] }, { name: 'pipeline', fileExtensions: ['pipeline'] }, - { name: 'vite', fileNames: ['vite.config.js', 'vite.config.ts'] }, + { + name: 'vite', + patterns: { + 'vite.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'vitest', + patterns: { + 'vitest.workspace': FileNamePattern.Ecmascript, + 'vitest.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'velite', + patterns: { + 'velite.config': FileNamePattern.Ecmascript, + }, + }, { name: 'opa', fileExtensions: ['rego'] }, + { name: 'lerna', fileNames: ['lerna.json'] }, { name: 'windicss', fileNames: [ 'windi.config.js', - 'windi.config.ts', 'windi.config.cjs', + 'windi.config.ts', + 'windi.config.cts', 'windi.config.json', ], fileExtensions: ['windi'], }, { name: 'textlint', - fileNames: ['.textlintrc'], + fileNames: [ + '.textlintrc', + '.textlintrc.js', + '.textlintrc.json', + '.textlintrc.yml', + '.textlintrc.yaml', + ], }, { name: 'scala', fileExtensions: ['scala', 'sc'] }, { name: 'lilypond', fileExtensions: ['ly'] }, - { name: 'hosts', fileNames: ['hosts'], light: true }, + { name: 'vlang', fileExtensions: ['v'], fileNames: ['vpkg.json', 'v.mod'] }, { name: 'chess', fileExtensions: ['pgn', 'fen'], light: true }, { name: 'gemini', fileExtensions: ['gmi', 'gemini'] }, - { name: 'sentry', fileNames: ['.sentryclirc'] }, + { + name: 'sentry', + fileNames: ['.sentryclirc'], + patterns: { + 'sentry.client.config': FileNamePattern.Ecmascript, + 'sentry.server.config': FileNamePattern.Ecmascript, + 'sentry.edge.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'phpunit', + fileNames: [ + '.phpunit.result.cache', + '.phpunit-watcher.yml', + 'phpunit.xml', + 'phpunit.xml.dist', + 'phpunit-watcher.yml', + 'phpunit-watcher.yml.dist', + ], + }, + { + name: 'php-cs-fixer', + fileNames: [ + '.php_cs', + '.php_cs.dist', + '.php_cs.php', + '.php_cs.dist.php', + '.php-cs-fixer.php', + '.php-cs-fixer.dist.php', + ], + }, { name: 'robots', fileNames: ['robots.txt'] }, { name: 'tsconfig', - fileNames: ['tsconfig.json', 'tsconfig.base.json'], + 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.renderer.json', + 'tsconfig.server.json', + 'tsconfig.client.json', + 'tsconfig.declaration.json', + ], fileExtensions: ['tsconfig.json'], }, + { + name: 'tauri', + fileNames: [ + 'tauri.conf.json', + 'tauri.config.json', + 'tauri.linux.conf.json', + 'tauri.windows.conf.json', + 'tauri.macos.conf.json', + '.taurignore', + ], + fileExtensions: ['tauri'], + }, { name: 'jsconfig', fileNames: ['jsconfig.json'], fileExtensions: ['jsconfig.json'], }, + { + name: 'maven', + fileNames: ['maven.config', 'jvm.config', 'pom.xml'], + }, + { name: 'ada', fileExtensions: ['ada', 'adb', 'ads', 'ali'] }, + { + name: 'serverless', + fileNames: [ + 'serverless.yml', + 'serverless.yaml', + 'serverless.json', + 'serverless.js', + 'serverless.ts', + ], + }, + { + name: 'supabase', + fileNames: ['supabase.js', 'supabase.py'], + }, { name: 'ember', fileNames: ['.ember-cli', '.ember-cli.js', 'ember-cli-builds.js'], @@ -1504,5 +2322,567 @@ export const fileIcons: FileIcons = { fileNames: ['horusec-config.json'], fileExtensions: ['horusec-config.json'], }, - ], + { name: 'poetry', fileNames: ['poetry.lock'] }, + { + name: 'pdm', + fileNames: ['pdm.lock', 'pdm.toml', '.pdm-python'], + fileExtensions: ['pdm.lock', 'pdm.toml'], + }, + { name: 'coala', fileExtensions: ['coarc', 'coafile'] }, + { name: 'parcel', fileNames: ['.parcelrc'] }, + { + name: 'dinophp', + fileExtensions: ['bubble', 'html.bubble', 'php.bubble'], + }, + { name: 'teal', fileExtensions: ['tl'] }, + { name: 'template', fileExtensions: ['template'] }, + { name: 'astyle', fileNames: ['.astylerc'] }, + { + name: 'shader', + 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', + ], + }, + { + name: 'lighthouse', + fileNames: [ + '.lighthouserc.js', + 'lighthouserc.js', + '.lighthouserc.cjs', + 'lighthouserc.cjs', + '.lighthouserc.json', + 'lighthouserc.json', + '.lighthouserc.yml', + 'lighthouserc.yml', + '.lighthouserc.yaml', + 'lighthouserc.yaml', + ], + }, + { + name: 'svgr', + patterns: { + svgr: FileNamePattern.Cosmiconfig, + }, + }, + { name: 'rome', fileNames: ['rome.json'] }, + { + name: 'cypress', + fileNames: ['cypress.json', 'cypress.env.json'], + patterns: { + 'cypress.config': FileNamePattern.Ecmascript, + }, + }, + { name: 'siyuan', fileExtensions: ['sy'] }, + { name: 'ndst', fileExtensions: ['ndst.yml', 'ndst.yaml', 'ndst.json'] }, + { + name: 'plop', + fileNames: ['plopfile.js', 'plopfile.cjs', 'plopfile.mjs', 'plopfile.ts'], + }, + { name: 'tobi', fileExtensions: ['tobi'] }, + { name: 'tobimake', fileNames: ['.tobimake'] }, + { name: 'gleam', fileNames: ['gleam.toml'], fileExtensions: ['gleam'] }, + { + name: 'pnpm', + light: true, + fileNames: ['pnpm-lock.yaml', 'pnpm-workspace.yaml', '.pnpmfile.cjs'], + }, + { + name: 'gridsome', + fileNames: ['gridsome.config.js', 'gridsome.server.js'], + }, + { + name: 'steadybit', + fileExtensions: ['steadybit.yml', 'steadybit.yaml'], + fileNames: [ + '.steadybit.yml', + 'steadybit.yml', + '.steadybit.yaml', + 'steadybit.yaml', + ], + }, + { name: 'capnp', fileExtensions: ['capnp'] }, + { name: 'tree', fileExtensions: ['tree'] }, + { + name: 'cadence', + fileExtensions: ['cdc'], + }, + { name: 'caddy', fileNames: ['Caddyfile'] }, + { + name: 'openapi', + light: true, + fileExtensions: ['openapi.json', 'openapi.yml', 'openapi.yaml'], + fileNames: ['openapi.json', 'openapi.yml', 'openapi.yaml'], + }, + { + name: 'swagger', + fileExtensions: ['swagger.json', 'swagger.yml', 'swagger.yaml'], + fileNames: ['swagger.json', 'swagger.yml', 'swagger.yaml'], + }, + { + name: 'bun', + fileNames: ['bun.lockb', 'bunfig.toml', '.bun-version'], + light: true, + }, + { name: 'antlr', fileExtensions: ['g4'] }, + { name: 'stylable', fileExtensions: ['st.css'] }, + { name: 'pinejs', fileExtensions: ['pine'] }, + { + name: 'nano-staged', + light: true, + fileNames: [ + '.nano-staged.js', + 'nano-staged.js', + '.nano-staged.cjs', + 'nano-staged.cjs', + '.nano-staged.mjs', + 'nano-staged.mjs', + '.nano-staged.json', + 'nano-staged.json', + '.nanostagedrc', + ], + }, + { + name: 'knip', + fileNames: [ + 'knip.json', + 'knip.jsonc', + '.knip.json', + '.knip.jsonc', + 'knip.ts', + 'knip.js', + 'knip.config.ts', + 'knip.config.js', + ], + }, + { + name: 'taskfile', + fileExtensions: ['taskfile.yml', 'taskfile.yaml'], + fileNames: [ + 'taskfile.yml', + 'taskfile.yaml', + 'taskfile.dist.yml', + 'taskfile.dist.yaml', + ], + }, + { + name: 'craco', + patterns: { + craco: FileNamePattern.Cosmiconfig, + }, + }, + { + name: 'gamemaker', + fileExtensions: ['gml', 'yy', 'yyp', 'yyz'], + }, + { name: 'tldraw', fileExtensions: ['tldr'], light: true }, + { + name: 'mercurial', + fileNames: [ + '.hg', + '.hgignore', + '.hgflow', + '.hgtags', + '.hgrc', + 'hgrc', + 'mercurial.ini', + ], + }, + { + name: 'deno', + fileNames: ['deno.json', 'deno.jsonc', 'deno.lock'], + light: true, + }, + { + name: 'plastic', + fileNames: [ + 'plastic.branchexplorer', + 'plastic.selector', + 'plastic.wktree', + 'plastic.workspace', + 'plastic.workspaces', + ], + }, + { name: 'typst', fileExtensions: ['typ'] }, + { + name: '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', + ], + }, + { name: 'ifanr-cloud', fileNames: ['.mincloudrc'] }, + { name: 'concourse', fileNames: ['concourse.yml'] }, + { name: 'qwik', fileExtensions: ['tsx'], enabledFor: [IconPack.Qwik] }, + { name: 'mermaid', fileExtensions: ['mmd', 'mermaid'] }, + { + name: 'syncpack', + patterns: { + syncpack: FileNamePattern.Cosmiconfig, + }, + }, + { + name: 'mojo', + fileExtensions: ['mojo', '🔥'], + }, + { + name: 'werf', + fileNames: [ + 'werf.yaml', + 'werf.yml', + 'werf-giterminism.yaml', + 'werf-giterminism.yml', + ], + }, + { name: 'roblox', fileExtensions: ['rbxl', 'rbxlx', 'rbxm', 'rbxmx'] }, + { + name: 'luau', + fileExtensions: ['luau'], + fileNames: ['.luaurc'], + }, + { + name: 'rojo', + fileExtensions: ['project.json', 'model.json', 'meta.json'], + enabledFor: [IconPack.Roblox], + }, + { name: 'wally', fileNames: ['wally.toml'] }, + { + name: 'rbxmk', + fileExtensions: ['rbxmk.lua', 'rbxmk.luau'], + }, + { + name: 'panda', + patterns: { + 'panda.config': FileNamePattern.Ecmascript, + }, + }, + { name: 'biome', fileNames: ['biome.json', 'biome.jsonc'] }, + { + name: 'esbuild', + patterns: { + esbuild: FileNamePattern.Ecmascript, + 'esbuild.config': FileNamePattern.Ecmascript, + }, + }, + { name: 'spwn', fileExtensions: ['spwn'] }, + { name: 'templ', fileExtensions: ['templ'] }, + { name: 'chrome', fileExtensions: ['crx'] }, + { name: 'stan', fileExtensions: ['stan'] }, + { + name: 'abap', + fileExtensions: ['abap', 'acds', 'asddls'], + }, + { + name: 'drizzle', + fileNames: [ + 'drizzle.config.ts', + 'drizzle.config.js', + 'drizzle.config.json', + ], + }, + { name: 'lottie', fileExtensions: ['lottie'] }, + { + name: 'puppeteer', + patterns: { + puppeteer: FileNamePattern.Cosmiconfig, + }, + }, + { name: 'apps-script', fileExtensions: ['gs'] }, + { + name: 'garden', + fileNames: [ + 'garden.yml', + 'garden.yaml', + 'project.garden.yml', + 'project.garden.yaml', + '.gardenignore', + ], + fileExtensions: ['garden.yml', 'garden.yaml'], + }, + { + name: 'pkl', + fileExtensions: ['pkl'], + fileNames: ['PklProject', 'PklProject.deps.json'], + }, + { + name: 'kubernetes', + fileNames: [ + 'k8s.yml', + 'k8s.yaml', + 'kubernetes.yml', + 'kubernetes.yaml', + '.k8s.yml', + '.k8s.yaml', + ], + }, + { + name: 'screwdriver', + fileNames: ['screwdriver.yaml', 'screwdriver.yml'], + }, + { + name: 'snapcraft', + fileNames: ['snapcraft.yaml', 'snapcraft.yml'], + }, + { + name: 'container', + clone: { + base: '3d', + color: '#00b0ff', + }, + fileNames: [ + '.devcontainer/devcontainer.json', + '.devcontainer/devcontainer-lock.json', + ], + }, + { + name: 'kcl', + fileNames: ['kcl.mod', 'kcl.yaml', 'kcl.yml'], + fileExtensions: ['k'], + }, + { + name: 'verified', + fileExtensions: ['sigstore.json'], + }, + { + name: 'bruno', + fileExtensions: ['bru'], + }, + { + name: 'cairo', + fileExtensions: ['cairo'], + }, + { + name: 'grafana-alloy', + fileExtensions: ['alloy'], + }, + { + name: 'clangd', + fileNames: ['.clangd'], + }, + { + name: 'freemarker', + fileExtensions: ['ftl'], + }, + { + name: 'markdownlint', + fileNames: [ + '.markdownlint.json', + '.markdownlint.jsonc', + '.markdownlint.yaml', + '.markdownlint.yml', + '.markdownlint-cli2.jsonc', + '.markdownlint-cli2.yaml', + '.markdownlint-cli2.cjs', + '.markdownlint-cli2.mjs', + '.markdownlintignore', + ], + }, + { + name: 'tsil', + fileExtensions: ['ц'], + }, + { + name: 'trigger', + patterns: { + 'trigger.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'deepsource', + fileNames: ['.deepsource.toml'], + }, + { + name: 'tape', + fileExtensions: ['tape'], + clone: { base: 'video', color: 'purple-300' }, + }, + { + name: 'hurl', + fileExtensions: ['hurl'], + }, + { + name: 'cds', + fileExtensions: ['cds'], + }, + { + name: 'slint', + fileExtensions: ['slint', '60'], + }, + { + name: 'jsr', + fileNames: ['jsr.json', 'jsr.jsonc'], + light: true, + }, + { + name: 'coderabbit-ai', + fileNames: ['.coderabbit.yml', '.coderabbit.yaml'], + }, + { + name: 'gemini-ai', + fileNames: ['.aiexclude'], + }, + { + name: 'taze', + patterns: { + 'taze.config': FileNamePattern.Ecmascript, + }, + fileNames: ['.tazerc', '.tazerc.json'], + }, + { + name: 'wxt', + patterns: { + 'wxt.config': FileNamePattern.Ecmascript, + }, + }, + { + name: 'sway', + fileExtensions: ['sw'], + }, + { + name: 'lefthook', + fileNames: [ + '.lefthook-local.json', + '.lefthook-local.toml', + '.lefthook-local.yaml', + '.lefthook-local.yml', + '.lefthook.json', + '.lefthook.toml', + '.lefthook.yaml', + '.lefthook.yml', + '.lefthookrc', + 'lefthook-local.json', + 'lefthook-local.toml', + 'lefthook-local.yaml', + 'lefthook-local.yml', + 'lefthook.json', + 'lefthook.toml', + 'lefthook.yaml', + 'lefthook.yml', + 'lefthookrc', + ], + }, + { + name: 'label', + fileNames: ['.github/labeler.yml', '.github/labeler.yaml'], + }, + { + name: 'zeabur', + fileExtensions: ['zeabur'], + patterns: { + zeabur: FileNamePattern.Configuration, + }, + light: true, + }, + { + name: 'copilot', + fileNames: ['.github/copilot-instructions.md'], + light: true, + }, + { + name: 'bench-ts', + fileExtensions: ['bench.ts', 'bench.cts', 'bench.mts'], + }, + { + name: 'bench-jsx', + fileExtensions: ['bench.jsx', 'bench.tsx'], + }, + { + name: 'bench-js', + fileExtensions: ['bench.js', 'bench.cjs', 'bench.mjs'], + }, + { + name: 'pre-commit', + fileNames: ['.pre-commit-config.yaml', '.pre-commit-hooks.yaml'], + }, + { + name: 'controller', + fileExtensions: ['controller.js', 'controller.ts'], + enabledFor: [ + // Not for Nest + IconPack.Angular, + IconPack.Ngrx, + IconPack.Qwik, + IconPack.React, + IconPack.Redux, + IconPack.Roblox, + IconPack.Vue, + IconPack.Vuex, + ], + }, + { + name: 'dependencies-update', + fileExtensions: ['.ncurc.json', '.ncurc.yml', '.ncurc.js'], + }, + { + name: 'histoire', + patterns: { + 'histoire.config': FileNamePattern.Ecmascript, + '.histoire': FileNamePattern.Ecmascript, + }, + }, + { + name: 'installation', + fileNames: [ + 'installation', + 'installation.md', + 'installation.rst', + 'installation.txt', + ], + }, + { + name: 'github-sponsors', + fileNames: ['.github/FUNDING.yml'], + }, + { + name: 'minecraft-fabric', + fileNames: ['fabric.mod.json'], + }, + { + name: 'umi', + patterns: { + '.umirc': FileNamePattern.Ecmascript, + }, + }, + { name: 'hosts', fileNames: ['hosts'], light: true }, + ]), };