diff --git a/src/assets/icons/file-icons-index.csv b/src/assets/icons/file-icons-index.csv
index 553de50..fdaf7b9 100644
--- a/src/assets/icons/file-icons-index.csv
+++ b/src/assets/icons/file-icons-index.csv
@@ -60,6 +60,7 @@ ng_smart_component_ts2,,page.ts:container.ts
ng_smart_component_js2,,page.js:container.js
ng_service_ts2,,service.ts
ng_service_js2,,service.js
+ng_tailwind,ng-tailwind.js,
affectscript,,affect
ansible,,ansible
antlr,,g4
@@ -67,36 +68,46 @@ anyscript,,any
apache,,htaccess
apex,,cls
apib,,apib
+api_extractor,api-extractor.json:api-extractor-base.json,
apl,,apl
applescript,,applescript
+appsemble,.appsemblerc.yaml:app-definition.yaml,
appveyor,appveyor.yml:.appveyor.yml,
arduino,,ino:pde
asciidoc,,adoc
-asp,,asp:asp
+asp,,asp
aspx,,aspx:ascx
-assembly,,asm:asm
+assembly,,asm
+astro,,astro
+astroconfig,astro.config.js:astro.config.cjs:astro.config.mjs,
ats,,ats
audio,,aac:act:aiff:amr:ape:au:dct:dss:dvf:flac:gsm:iklax:ivs:m4a:m4b:m4p:mmf:mogg:mp3:mpc:msv:oga:ogg:opus:ra:raw:tta:vox:wav:wma
aurelia,aurelia.json,
autohotkey,,ahk
autoit,,au3
+avif,,avif
avro,,avcs
+awk,,awk
aws,,
azure,,azcli
azurepipelines,azure-pipelines.yml:.vsts-ci.yml,azure-pipelines.yml
-babel,.babelrc:babelrc.js:.babelrc.js:babelrc.json:babel.config.js:.babelignore,
-babel2,.babelrc:babelrc.js:.babelrc.js:babelrc.json:babel.config.js:.babelignore,
+babel,.babelrc:.babelignore:.babelrc.js:.babelrc.cjs:.babelrc.mjs:.babelrc.json:babel.config.js:babel.config.cjs:babel.config.mjs:babel.config.json,
+babel2,.babelrc:.babelignore:.babelrc.js:.babelrc.cjs:.babelrc.mjs:.babelrc.json:babel.config.js:babel.config.cjs:babel.config.mjs:babel.config.json,
ballerina,,bal
bat,,bat
+bats,,bats
bazaar,.bzrignore,
-bazel,.bazelrc:bazel.rc:bazel.bazelrc,bzl
-befunge,,bf:bf
+bazel,BUILD.bazel:.bazelrc:bazel.rc:bazel.bazelrc,bzl:bazel
+befunge,,bf
+bicep,,bicep
biml,,biml
binary,,a:app:bin:cmo:cmx:cma:cmxa:cmi:dll:exe:hl:ilk:lib:n:ndll:o:obj:pyc:pyd:pyo:pdb:scpt:scptd:so
bithound,.bithoundrc,
bitbucketpipeline,bitbucket-pipelines.yml,
-blade,,blade.php:blade.php
+blade,,blade.php
+blitzbasic,,bb:blitzbasic
bolt,,bolt
+bosque,,bsq
bower,.bowerrc:bower.json,
browserslist,.browserslistrc:browserslist,
buckbuild,.buckconfig,
@@ -107,28 +118,31 @@ c2,,c
c3,,c
c_al,,cal
cabal,,cabal
-caddy,,Caddyfile
+caddy,,caddyfile
cake,,cake
cakephp,,
capacitor,capacitor.config.json,
cargo,cargo.toml:cargo.lock,
+casc,,casc
+cddl,,cddl
cert,,csr:crt:cer:der:pfx:p12:p7b:p7r:src:crl:sst:stl
ceylon,,ceylon
-cf,,lucee:cfml:cfml
-cf2,,lucee:cfml:cfml
+cf,,lucee:cfml
+cf2,,lucee:cfml
cfc,,cfc
cfc2,,cfc
cfm,,cfm
cfm2,,cfm
cheader,,h
-chef,chefignore:berksfile:berksfile.lock:policyfile,
+chef,chefignore:berksfile:berksfile.lock:policyfile.rb:policyfile.lock.json,
class,,class
circleci,circle.yml,
clojure,,cjm:cljc:clojure
clojurescript,,cljs:clojurescript
-cloudfoundry,.cfignore,
-cmake,,cmake:CMakeCache.txt
+cloudfoundry,.cfignore,yml
+cmake,,cmake:cmakecache.txt
cobol,,cbl
+codeql,,ql
codacy,.codacy.yml:.codacy.yaml,
codeclimate,.codeclimate.yml,
codecov,codecov.yml:.codecov.yml,
@@ -139,6 +153,7 @@ coffeescript,,coffee
conan,conanfile.txt:conanfile.py,
conda,.condarc,
config,,plist:properties:env
+commitlint,commitlint.config.js:.commitlintrc.js:.commitlintrc.json:.commitlintrc.yml,
compass,,
composer,composer.json:composer.lock,
chef_cookbook,,ckbk
@@ -147,7 +162,7 @@ coveralls,.coveralls.yml,
cpp,,cpp
cpp2,,cpp
cpp3,,cpp
-cppheader,,hpp
+cppheader,,hpp:hh:hxx:h++
crowdin,crowdin.yml,
crystal,,cr
csharp,,csx:cs
@@ -166,28 +181,32 @@ dal,,dal
darcs,.boringignore,
dartlang,,dart
db,,db
+dependabot,dependabot.yml,
dependencies,dependencies.yml,
-delphi,,pas:pas
-django,,djt:html:html
-dlang,,d:d:d:d
+delphi,,pas
+devcontainer,devcontainer.json,
+django,,djt:html
+dlang,,d
diff,,diff
-docker,docker-compose.yml:docker-compose.ci-build.yml:docker-compose.override.yml:docker-compose.vs.debug.yml:docker-compose.vs.release.yml:docker-cloud.yml,dockerfile:dockerignore
-docker2,docker-compose.yml:docker-compose.ci-build.yml:docker-compose.override.yml:docker-compose.vs.debug.yml:docker-compose.vs.release.yml:docker-cloud.yml,dockerfile:dockerignore
+docker,compose.yaml:compose.yml:docker-compose.yaml:docker-compose.yml:docker-compose.ci-build.yaml:docker-compose.ci-build.yml:docker-compose.override.yaml:docker-compose.override.yml:docker-compose.vs.debug.yaml:docker-compose.vs.debug.yml:docker-compose.vs.release.yaml:docker-compose.vs.release.yml:docker-cloud.yaml:docker-cloud.yml,dockerfile:dockerignore
+docker2,compose.yaml:compose.yml:docker-compose.yaml:docker-compose.yml:docker-compose.ci-build.yaml:docker-compose.ci-build.yml:docker-compose.override.yaml:docker-compose.override.yml:docker-compose.vs.debug.yaml:docker-compose.vs.debug.yml:docker-compose.vs.release.yaml:docker-compose.vs.release.yml:docker-cloud.yaml:docker-cloud.yml,dockerfile:dockerignore
dockertest,docker-compose.test.yml,
dockertest2,docker-compose.test.yml,
docpad,,eco
docz,.doczrc:docz.js:docz.json:.docz.js:.docz.json:doczrc.js:doczrc.json:docz.config.js:docz.config.json,
dojo,.dojorc,
doxygen,,dox
+drawio,,drawio:dio .drawio.png:.drawio.svg
drone,.drone.yml:.drone.yml.sig,
drools,,drl
dotjs,,dot
dustjs,,dust
-dylan,,dylan:dylan
+dvc,.dvc,
+dylan,,dylan
editorconfig,.editorconfig,
edge,,edge
edge2,,edge
-eex,,eex:eex
+eex,,eex
ejs,,ejs
elastic,,es
elasticbeanstalk,,
@@ -201,11 +220,13 @@ eps,,eps
erb,,erb
erlang,emakefile:.emakerfile,erl
erlang2,emakefile:.emakerfile,erl
-eslint,.eslintrc:.eslintignore:.eslintcache:.eslintrc.js:.eslintrc.json:.eslintrc.yaml:.eslintrc.yml,
-eslint2,.eslintrc:.eslintignore:.eslintcache:.eslintrc.js:.eslintrc.json:.eslintrc.yaml:.eslintrc.yml,
+eslint,.eslintrc:.eslintignore:.eslintcache:.eslintrc.js:.eslintrc.mjs:.eslintrc.cjs:.eslintrc.json:.eslintrc.yaml:.eslintrc.yml,
+eslint2,.eslintrc:.eslintignore:.eslintcache:.eslintrc.js:.eslintrc.mjs:.eslintrc.cjs:.eslintrc.json:.eslintrc.yaml:.eslintrc.yml,
excel,,xls:xlsx:xlsm:ods:fods
excel2,,xls:xlsx:xlsm:ods:fods
+expo,app.json:app.config.js:app.config.json:app.config.json5,
falcon,,falcon
+fauna,.faunarc,fql
favicon,favicon.ico,
fbx,,fbx
firebase,.firebaserc,
@@ -219,43 +240,51 @@ flow,.flowconfig,
flutter,.flutter-plugins:.metadata,
flutter_package,pubspec.lock:pubspec.yaml:.packages,
font,,woff:woff2:ttf:otf:eot:pfa:pfb:sfd
-fortran,,f:f:f:f
+fortran,,f
fossa,.fossaignore,
fossil,ignore-glob,
fsharp,,fs
fsproj,,fsproj
freemarker,,ftl
+fthtml,,fthtml
fusebox,fuse.js,
galen,,gspec
galen2,,gspec
-git,.gitattributes:.gitconfig:.gitignore:.gitmodules:.gitkeep:.mailmap,git:git
+git,.gitattributes:.gitconfig:.gitignore:.gitmodules:.gitkeep:.mailmap,git
gamemaker,,gmx:gml
gamemaker2,,yy:yyp:gml
gamemaker81,,gml
gatsby,gatsby-config.js:gatsby-config.ts:gatsby-node.js:gatsby-node.ts:gatsby-browser.js:gatsby-browser.ts:gatsby-ssr.js:gatsby-ssr.ts,
gcode,,gcode
+genstat,,gen
gitlab,.gitlab-ci.yml,
+gitpod,.gitpod.yaml:.gitpod.yml:gitpod.yaml:gitpod.yml,
glide,glide.yml,
+glitter,.glitterrc,
glsl,,glsl
+glyphs,,glyphs
+gnuplot,,gp
go,,go
go_package,go.sum:go.mod,
godot,,gd
gradle,,gradle
+gradle2,,gradle
graphql,.gqlconfig,gql
+graphql_config,.graphqlconfig:.graphqlconfig.yml:.graphqlconfig.yaml,
graphviz,,gv
greenkeeper,greenkeeper.json,
gridsome,gridsome.config.js:gridsome.config.ts:gridsome.server.js:gridsome.server.ts:gridsome.client.js:gridsome.client.ts,
groovy,,groovy
groovy2,,groovy
grunt,gruntfile.js:gruntfile.coffee:gruntfile.ts:gruntfile.babel.js:gruntfile.babel.coffee:gruntfile.babel.ts,
-gulp,gulpfile.js:gulpfile.coffee:gulpfile.ts:gulpfile.babel.js:gulpfile.babel.coffee:gulpfile.babel.ts,
+gulp,gulpfile.js:gulpfile.coffee:gulpfile.ts:gulpfile.mjs:gulpfile.esm.js:gulpfile.esm.coffee:gulpfile.esm.ts:gulpfile.esm.mjs:gulpfile.babel.js:gulpfile.babel.coffee:gulpfile.babel.ts:gulpfile.babel.mjs,
haml,,haml
handlebars,,hbs
handlebars2,,hbs
harbour,,prg
haskell,,hs:lhs
haskell2,,hs:lhs
-haxe,haxelib.json,haxe:haxe:haxe
+haxe,haxelib.json,haxe
haxecheckstyle,checkstyle.json,
haxedevelop,,hxproj
helix,.p4ignore,
@@ -263,18 +292,22 @@ helm,,helm.tpl
hjson,,hjson
hlsl,,hlsl
homeassistant,,yaml
+horusec,horusec-config.json,
host,,hosts
html,,html
htmlhint,.htmlhintrc,
http,,http
-hunspell,,aff:aff
-husky,.huskyrc:.huskyrc.js:.huskyrc.json:.huskyrc.yaml:.huskyrc.yml,
+hunspell,,aff
+husky,.huskyrc:husky.config.js:.huskyrc.js:.huskyrc.json:.huskyrc.yaml:.huskyrc.yml,
+hy,,hy
+hygen,,ejs.t
+hypr,,hypr
icl,,icl
idris,,idr:lidr
idrisbin,,ibc
idrispkg,,ipkg
image,,jpeg:jpg:gif:png:bmp:tiff:ico
-imba,,imba
+imba,,imba:imba2
inc,,inc:include
infopath,,infopathxml:xsn:xsf:xtp2
informix,,4gl
@@ -285,54 +318,63 @@ ionic,ionic.project:ionic.config.json,
jake,jakefile:jakefile.js,
janet,,janet
jar,,jar
+jasmine,jasmine.json,
java,,java
jbuilder,,jbuilder
-jest,jest.config.js:jest.json:jest.config.json:.jestrc:.jestrc.js:.jestrc.json,
+jest,jest.config.json:jest.config.base.json:jest.config.common.json:jest.config.ts:jest.config.base.ts:jest.config.common.ts:jest.json:.jestrc:.jestrc.js:.jestrc.json:jest.config.js:jest.config.cjs:jest.config.mjs:jest.config.base.js:jest.config.base.cjs:jest.config.base.mjs:jest.config.common.js:jest.config.common.cjs:jest.config.common.mjs:jest.config.babel.js:jest.config.babel.cjs:jest.config.babel.mjs,
jest_snapshot,,js.snap:jsx.snap:ts.snap:tsx.snap
jekyll,,jekyll
-jenkins,,jenkins:jenkins:jenkins
+jenkins,,jenkins
jinja,,jinja
jpm,.jpmignore,
js,,js
js_official,,js
jsbeautify,.jsbeautifyrc:jsbeautifyrc:.jsbeautify:jsbeautify,
jsconfig,jsconfig.json,
+jscpd,.jscpd.json:jscpd-report.xml:jscpd-report.json:jscpd-report.html,
jshint,.jshintrc:.jshintignore,
jsmap,,js.map
-json,,json:JSON-tmLanguage:jsonc
-json_official,,json:JSON-tmLanguage:jsonc
-json2,,json:JSON-tmLanguage:jsonc
+json,,json:json-tmlanguage:jsonc
+json_official,,json:json-tmlanguage:jsonc
+json2,,json:json-tmlanguage:jsonc
jsonnet,,jsonnet
-json5,,json5:json5
+json5,,json5
jsonld,,jsonld:json-ld
jsp,,jsp
jss,,jss
-julia,,jl:jl
-julia2,,jl:jl
+julia,,jl
+julia2,,jl
jupyter,,ipynb
io,,io
iodine,,id
karma,karma.conf.js:karma.conf.coffee:karma.conf.ts,
key,,key:pem
kite,.kiteignore,
-kitchenci,.kitchen.yml,
+kitchenci,.kitchen.yml:kitchen.yml,
kivy,,kv
kos,,ks
kotlin,,kt
+kusto,,.kusto
+latino,,lat
layout,,master:layout.html:layout.htm
layout,layout.html:layout.htm,
lerna,lerna.json,
less,,less
+lex,,flex
license,,enc
-license,license:licence:license.md:license.txt:licence.md:licence.txt,
+license,license:licence:copying:copying.lesser:license.md:license.txt:licence.md:licence.txt:copying.md:copying.txt:copying.lesser.md:copying.lesser.txt,
+licensebat,.licrc,
+lighthouse,.lighthouserc.js:.lighthouserc.json:.lighthouserc.yaml:.lighthouserc.yml,
lisp,,lisp
lime,,hxp
lime,include.xml,
lintstagedrc,.lintstagedrc:lint-staged.config.js:.lintstagedrc.js:.lintstagedrc.json:.lintstagedrc.yaml:.lintstagedrc.yml,
liquid,,liquid
livescript,,ls
+lnk,,lnk
locale,,
log,,log:tlg
+log,,log:tlg
lolcode,,lol
lsl,,lsl
lua,,lua
@@ -356,8 +398,9 @@ mercurial,.hgignore,
meson,,meson.build
meteor,,
mjml,,mjml
-mlang,,pq:pq
+mlang,,pq
mocha,mocha.opts:.mocharc.js:.mocharc.json:.mocharc.jsonc:.mocharc.yaml:.mocharc.yml,
+modernizr,modernizr:modernizr.js:modernizrrc.js:.modernizr.js:.modernizrrc.js,
mojolicious,,ep
moleculer,moleculer.config.js:moleculer.config.json:moleculer.config.ts,
mongo,,mongo
@@ -389,25 +432,31 @@ nest_pipe_ts,,pipe.ts
nest_service_js,,service.js
nest_service_ts,,service.ts
netlify,netlify.toml,
+next,next.config.js,
nginx,nginx.conf,
-nim,,nim:nim
+nim,,nim
+nimble,,nimble
ninja,build.ninja,
+nix,,nix
njsproj,,njsproj
node,.node-version:.nvmrc,
node2,.node-version:.nvmrc,
nodemon,nodemon.json,
npm,.npmignore:.npmrc:package.json:package-lock.json:npm-shrinkwrap.json,
-nsi,,nsi:nsi:nsi:nsi
-nsri,.nsrirc:.nsriignore:.nsrirc.js:.nsrirc.json:.nsrirc.yaml:.nsrirc.yml:.nsrirc.config.js,
+nsi,,nsi
+nsri,.nsrirc:.nsriignore:nsri.config.js:.nsrirc.js:.nsrirc.json:.nsrirc.yaml:.nsrirc.yml,
nsri-integrity,.integrity.json,
-nuget,,nupkg:nuspec:psmdcp
+nuget,,nupkg:snupkg:nuspec:psmdcp
+numpy,,npy:npz
nunjucks,,nunj:njs:nunjucks
nuxt,nuxt.config.js:nuxt.config.ts,
nyc,.nycrc:.nycrc.json,
objectivec,,m
objectivecpp,,mm
-ocaml,.merlin,ml:ml:ml
+ocaml,.merlin,ml
+ogone,,o3
onenote,,one:onepkg:onetoc:onetoc2:sig
+openscad,,scad
opencl,,cl:opencl
openHAB,,things
org,,org
@@ -436,18 +485,20 @@ phpunit,phpunit:phpunit.xml:phpunit.xml.dist,
phraseapp,.phraseapp.yml,
pine,,pine
pip,pipfile:pipfile.lock,requirements.txt
-platformio,platformio.ini,dbgasm:dbgasm:dbgasm
+pipeline,,pipeline
+platformio,platformio.ini,dbgasm
plantuml,,pu:plantuml:iuml:puml
-plsql,,ddl:ddl
+plsql,,ddl
plsql_package,,pck
plsql_package_body,,pkb
plsql_package_header,,pkh
plsql_package_spec,,pks
+pnpm,pnpmfile.js:pnpm-lock.yaml:pnpm-workspace.yaml,
poedit,,po:mo
polymer,,polymer
pony,,pony
postcss,,pcss
-postcssconfig,.postcssrc:.postcssrc.json:.postcssrc.yml:.postcssrc.js:postcss.config.js,
+postcssconfig,.postcssrc:.postcssrc.json:.postcssrc.yaml:.postcssrc.yml:.postcssrc.ts:.postcssrc.js:.postcssrc.cjs:postcss.config.ts:postcss.config.js:postcss.config.cjs,
powerpoint,,pot:potx:potm:pps:ppsx:ppsm:ppt:pptx:pptm:pa:ppa:ppam:sldm:sldx
powerpoint2,,pot:potx:potm:pps:ppsx:ppsm:ppt:pptx:pptm:pa:ppa:ppam:sldm:sldx
powershell,,ps1
@@ -460,15 +511,15 @@ powershell_psm2,,psm1
powershell_psd2,,psd1
precommit,.pre-commit-config.yaml,
prettier,.prettierrc:.prettierignore,
-prettier,prettier.config.js:prettier.config.ts:prettier.config.coffee,
-prettier,.prettierrc.js:.prettierrc.json:.prettierrc.yml:.prettierrc.yaml,
+prettier,prettier.config.js:prettier.config.cjs:prettier.config.ts:prettier.config.coffee,
+prettier,.prettierrc.js:.prettierrc.cjs:.prettierrc.json:.prettierrc.json5:.prettierrc.yml:.prettierrc.yaml,
prisma,,prisma
processinglang,,pde
procfile,procfile,
progress,,w
-prolog,,pro:P:pro
+prolog,,pro:P
prometheus,,rules
-protobuf,,proto:proto
+protobuf,,proto
protractor,protractor.conf.js:protractor.conf.coffee:protractor.conf.ts,
publisher,,pub:puz
puppet,,pp
@@ -476,6 +527,7 @@ pug,.jade-lintrc:.pug-lintrc:.jade-lint.json:.pug-lintrc.js:.pug-lintrc.json,pug
purescript,,purs
pyret,,arr
python,,py
+pytyped,py.typed,
pyup,.pyup:.pyup.yml,
q,,q
qbs,,qbs
@@ -490,7 +542,7 @@ rails,,
rake,,rake
rake,rakefile,
raml,,raml
-razor,,cshtml:cshtml
+razor,,cshtml
razzle,razzle.config.js,
reactjs,,jsx
reacttemplate,,rt
@@ -498,22 +550,29 @@ reactts,,tsx
reason,,re
red,,red
registry,,reg
+rego,,rego
rehype,.rehyperc:.rehypeignore:.rehyperc.js:.rehyperc.json:.rehyperc.yml:.rehyperc.yaml,
remark,.remarkrc:.remarkignore:.remarkrc.js:.remarkrc.json:.remarkrc.yml:.remarkrc.yaml,
renovate,.renovaterc:renovate.json:.renovaterc.json,
+rescript,,res
rest,,rst
retext,.retextrc:.retextignore:.retextrc.js:.retextrc.json:.retextrc.yml:.retextrc.yaml,
+rexx,,rex
riot,,tag
robotframework,,robot
robots,robots.txt,
-rollup,rollup.config.js:rollup.config.mjs:rollup.config.coffee:rollup.config.ts:rollup.config.common.js:rollup.config.common.mjs:rollup.config.common.coffee:rollup.config.common.ts:rollup.config.dev.js:rollup.config.dev.mjs:rollup.config.dev.coffee:rollup.config.dev.ts:rollup.config.prod.js:rollup.config.prod.mjs:rollup.config.prod.coffee:rollup.config.prod.ts,
+rollup,rollup.config.js:rollup.config.cjs:rollup.config.mjs:rollup.config.coffee:rollup.config.ts:rollup.config.common.js:rollup.config.common.cjs:rollup.config.common.mjs:rollup.config.common.coffee:rollup.config.common.ts:rollup.config.dev.js:rollup.config.dev.cjs:rollup.config.dev.mjs:rollup.config.dev.coffee:rollup.config.dev.ts:rollup.config.prod.js:rollup.config.prod.cjs:rollup.config.prod.mjs:rollup.config.prod.coffee:rollup.config.prod.ts,
+rmd,,rmd
rproj,,rproj
rspec,.rspec,
rubocop,.rubocop.yml:.rubocop_todo.yml,
ruby,,rb
rust,,rs
+rust_toolchain,rust-toolchain,
+sails,.sailsrc,
saltstack,,sls
san,,san
+sas,,sas
sass,,sass
sbt,,sbt
scala,,scala
@@ -522,9 +581,9 @@ scss,,scssm:scss
scilab,,sce
sdlang,,sdl
sentry,.sentryclirc,
-serverless,serverless.yml,
+serverless,serverless.yml:serverless.json:serverless.js:serverless.ts,
sequelize,.sequelizerc:.sequelizerc.js:.sequelizerc.json,
-shaderlab,,shader
+shaderlab,,unity:shader
shell,,fish:sh
sketch,,sketch
slang,,slang
@@ -533,7 +592,7 @@ slim,,slim
sln,,sln
sln2,,sln
silverstripe,,ss
-skipper,,eskip:eskip
+skipper,,eskip
smarty,,tpl
snapcraft,snapcraft.yaml,
snort,,snort
@@ -541,6 +600,8 @@ snyk,.snyk,
solidarity,.solidarity:.solidarity.json,
solidity,,sol
source,,
+spacengine,,spe
+sparql,,rq
sqf,,sqf
sql,,sql
sqlite,,sqlite:sqlite3:db3
@@ -550,52 +611,61 @@ stan,,stan
stata,,dta:do
stencil,,stencil:html.stencil
style,,
-stylelint,.stylelintrc:.stylelintignore:.stylelintcache:stylelint.config.js:stylelint.config.json:stylelint.config.yaml:stylelint.config.yml:stylelint.config.ts:.stylelintrc.js:.stylelintrc.json:.stylelintrc.yaml:.stylelintrc.yml:.stylelintrc.ts,
+stylelint,.stylelintrc:.stylelintignore:.stylelintcache:stylelint.config.js:stylelint.config.json:stylelint.config.yaml:stylelint.config.yml:stylelint.config.ts:stylelint.config.cjs:.stylelintrc.js:.stylelintrc.json:.stylelintrc.yaml:.stylelintrc.yml:.stylelintrc.ts:.stylelintrc.cjs,
stylable,,st.css
styled,,styled
+stylish_haskell,.stylish-haskell.yaml,
stylus,,styl
storyboard,,storyboard
-storybook,,story.js:story.jsx:story.ts:story.tsx:stories.js:stories.jsx:stories.ts:stories.tsx
+storybook,,story.js:story.jsx:story.ts:story.tsx:story.mdx:stories.js:stories.jsx:stories.ts:stories.tsx:stories.mdx
subversion,.svnignore,
svelte,,svelte
svg,,svg
-swagger,,swagger:swagger
+swagger,,swagger
swift,package.pins,swift
swig,,swig
symfony,symfony.lock,
systemd,,link
systemverilog,,sv
t4tt,,tt
-tailwind,tailwind.js:tailwind.coffee:tailwind.ts:tailwind.config.js:tailwind.config.coffee:tailwind.config.ts,
+tailwind,tailwind.js:tailwind.cjs:tailwind.coffee:tailwind.ts:tailwind.json:tailwind.config.js:tailwind.config.cjs:tailwind.config.coffee:tailwind.config.ts:tailwind.config.json,
+teal,,teal
tt,,tt2:tt3
tcl,,tcl:exp
tera,,tera
terraform,,tfstate:tf
test,,tst
+testcafe,.testcaferc.json,
testjs,,test.js:test.jsx:test.mjs:spec.js:spec.jsx:spec.mjs
testts,,test.ts:test.tsx:spec.ts:spec.tsx:e2e-test.ts:e2e-test.tsx:e2e-spec.ts:e2e-spec.tsx
tex,,texi:tikz:sty:tex:bib:dtx
-text,,csv:txt
+text,,csv:tsv:txt
textile,,textile
+tiltfile,,tiltfile
tfs,.tfignore,
todo,,todo
toml,,toml
-tox,.ini,
+tox,tox.ini,
travis,.travis.yml,
-tsconfig,tsconfig.json:tsconfig.app.json:tsconfig.spec.json:tsconfig.e2e.json:tsconfig.base.json:tsconfig.common.json:tsconfig.dev.json:tsconfig.development.json:tsconfig.staging.json:tsconfig.test.json:tsconfig.prod.json:tsconfig.production.json,
+tsconfig,tsconfig.json:tsconfig.app.json:tsconfig.base.json:tsconfig.common.json:tsconfig.dev.json:tsconfig.development.json:tsconfig.e2e.json:tsconfig.prod.json:tsconfig.production.json:tsconfig.server.json:tsconfig.spec.json:tsconfig.staging.json:tsconfig.test.json:tsconfig.lib.json:tsconfig.lib.prod.json,
+tsconfig_official,tsconfig.json:tsconfig.app.json:tsconfig.base.json:tsconfig.common.json:tsconfig.dev.json:tsconfig.development.json:tsconfig.e2e.json:tsconfig.prod.json:tsconfig.production.json:tsconfig.server.json:tsconfig.spec.json:tsconfig.staging.json:tsconfig.test.json:tsconfig.lib.json:tsconfig.lib.prod.json,
tslint,tslint.json:tslint.yaml:tslint.yml,
ttcn,,ttcn3
+tuc,,tuc
twig,,twig
+typedoc,typedoc.js:typedoc.json,
typescript,,ts
typescript_official,,ts
typescriptdef,,d.ts
typescriptdef_official,,d.ts
typo3,,typoscript
unibeautify,.unibeautifyrc:unibeautify.config.js:.unibeautifyrc.js:.unibeautifyrc.json:.unibeautifyrc.yaml:.unibeautifyrc.yml,
+unlicense,unlicense:unlicence:unlicense.md:unlicense.txt:unlicence.md:unlicence.txt,
vagrant,vagrantfile,
vala,,vala
vapi,,vapi
vash,,vash
+vapor,vapor.yml,
vb,,vb
vba,,cls
vbhtml,,vbhtml
@@ -607,6 +677,7 @@ vhdl,,vhdl
video,,3g2:3gp:asf:amv:avi:divx:qt:f4a:f4b:f4p:f4v:flv:m2v:m4v:mkv:mk3d:mov:mp2:mp4:mpe:mpeg:mpeg2:mpg:mpv:nsv:ogv:rm:rmvb:svi:vob:webm:wmv
view,,
vim,.vimrc:.gvimrc,vim
+vite,vite.config.js:vite.config.ts,
vlang,,v
volt,,volt
vscode,.vscodeignore:launch.json:tasks.json:vscodeignore.json,
@@ -619,30 +690,34 @@ vue,,vue
vueconfig,.vuerc:vue.config.js,
wallaby,wallaby.json:wallaby.js:wallaby.ts:wallaby.coffee:wallaby.conf.json:wallaby.conf.js:wallaby.conf.ts:wallaby.conf.coffee:.wallaby.json:.wallaby.js:.wallaby.ts:.wallaby.coffee:.wallaby.conf.json:.wallaby.conf.js:.wallaby.conf.ts:.wallaby.conf.coffee,
watchmanconfig,.watchmanconfig,
-wasm,,wasm:wasm:wasm
+wasm,,wasm
webp,,webp
-webpack,webpack.base.conf.js:webpack.base.conf.coffee:webpack.base.conf.ts:webpack.common.js:webpack.common.coffee:webpack.common.ts:webpack.config.js:webpack.config.coffee:webpack.config.ts:webpack.config.base.js:webpack.config.base.coffee:webpack.config.base.ts:webpack.config.common.js:webpack.config.common.coffee:webpack.config.common.ts:webpack.config.dev.js:webpack.config.dev.coffee:webpack.config.dev.ts:webpack.config.development.js:webpack.config.development.coffee:webpack.config.development.ts:webpack.config.staging.js:webpack.config.staging.coffee:webpack.config.staging.ts:webpack.config.test.js:webpack.config.test.coffee:webpack.config.test.ts:webpack.config.prod.js:webpack.config.prod.coffee:webpack.config.prod.ts:webpack.config.production.js:webpack.config.production.coffee:webpack.config.production.ts:webpack.config.babel.js:webpack.config.babel.coffee:webpack.config.babel.ts:webpack.config.base.babel.js:webpack.config.base.babel.coffee:webpack.config.base.babel.ts:webpack.config.common.babel.js:webpack.config.common.babel.coffee:webpack.config.common.babel.ts:webpack.config.dev.babel.js:webpack.config.dev.babel.coffee:webpack.config.dev.babel.ts:webpack.config.development.babel.js:webpack.config.development.babel.coffee:webpack.config.development.babel.ts:webpack.config.staging.babel.js:webpack.config.staging.babel.coffee:webpack.config.staging.babel.ts:webpack.config.test.babel.js:webpack.config.test.babel.coffee:webpack.config.test.babel.ts:webpack.config.prod.babel.js:webpack.config.prod.babel.coffee:webpack.config.prod.babel.ts:webpack.config.production.babel.js:webpack.config.production.babel.coffee:webpack.config.production.babel.ts:webpack.dev.js:webpack.dev.coffee:webpack.dev.ts:webpack.dev.conf.js:webpack.dev.conf.coffee:webpack.dev.conf.ts:webpack.prod.js:webpack.prod.coffee:webpack.prod.ts:webpack.prod.conf.js:webpack.prod.conf.coffee:webpack.prod.conf.ts:webpack.mix.js:webpack.mix.coffee:webpack.mix.ts:webpack.test.conf.js:webpack.test.conf.coffee:webpack.test.conf.ts,
+webpack,webpack.base.conf.js:webpack.base.conf.coffee:webpack.base.conf.ts:webpack.common.js:webpack.common.coffee:webpack.common.ts:webpack.config.js:webpack.config.coffee:webpack.config.ts:webpack.config.base.js:webpack.config.base.coffee:webpack.config.base.ts:webpack.config.common.js:webpack.config.common.coffee:webpack.config.common.ts:webpack.config.dev.js:webpack.config.dev.coffee:webpack.config.dev.ts:webpack.config.development.js:webpack.config.development.coffee:webpack.config.development.ts:webpack.config.staging.js:webpack.config.staging.coffee:webpack.config.staging.ts:webpack.config.test.js:webpack.config.test.coffee:webpack.config.test.ts:webpack.config.prod.js:webpack.config.prod.coffee:webpack.config.prod.ts:webpack.config.production.js:webpack.config.production.coffee:webpack.config.production.ts:webpack.config.babel.js:webpack.config.babel.coffee:webpack.config.babel.ts:webpack.config.base.babel.js:webpack.config.base.babel.coffee:webpack.config.base.babel.ts:webpack.config.common.babel.js:webpack.config.common.babel.coffee:webpack.config.common.babel.ts:webpack.config.dev.babel.js:webpack.config.dev.babel.coffee:webpack.config.dev.babel.ts:webpack.config.development.babel.js:webpack.config.development.babel.coffee:webpack.config.development.babel.ts:webpack.config.staging.babel.js:webpack.config.staging.babel.coffee:webpack.config.staging.babel.ts:webpack.config.test.babel.js:webpack.config.test.babel.coffee:webpack.config.test.babel.ts:webpack.config.prod.babel.js:webpack.config.prod.babel.coffee:webpack.config.prod.babel.ts:webpack.config.production.babel.js:webpack.config.production.babel.coffee:webpack.config.production.babel.ts:webpack.dev.js:webpack.dev.coffee:webpack.dev.ts:webpack.dev.conf.js:webpack.dev.conf.coffee:webpack.dev.conf.ts:webpack.prod.js:webpack.prod.coffee:webpack.prod.ts:webpack.prod.conf.js:webpack.prod.conf.coffee:webpack.prod.conf.ts:webpack.main.config.js:webpack.main.config.coffee:webpack.main.config.ts:webpack.mix.js:webpack.mix.coffee:webpack.mix.ts:webpack.plugins.js:webpack.plugins.coffee:webpack.plugins.ts:webpack.renderer.config.js:webpack.renderer.config.coffee:webpack.renderer.config.ts:webpack.rules.js:webpack.rules.coffee:webpack.rules.ts:webpack.test.conf.js:webpack.test.conf.coffee:webpack.test.conf.ts,
+wenyan,,wy
wercker,wercker.yml,
wolfram,,wl
word,,doc:docx:docm:dot:dotx:dotm:wll
word2,,doc:docx:docm:dot:dotx:dotm:wll
wpml,wpml-config.xml,
-wurst,,wurst:wurst
+wurst,,wurst
wxml,,wxml
wxss,,wxss
xcode,,xcodeproj
xfl,,xfl
xib,,xib
xliff,,xliff:xlf
+xmake,,xmake.lua
xml,,pex:tmlanguage:xml
xquery,,xquery
xsl,,xsl
-yaml,,yaml:YAML-tmLanguage
+yacc,,bison
+yaml,,yaml:yaml-tmlanguage
yamllint,.yamllint,
yandex,.yaspellerrc:.yaspeller.json,
yang,,yang
-yarn,yarn.lock:.yarnrc:.yarnclean:.yarn-integrity:.yarn-metadata.json:.yarnignore,
+yarn,yarn.lock:.yarnrc:.yarnrc.yml:.yarnclean:.yarn-integrity:.yarn-metadata.json:.yarnignore,
yeoman,.yo-rc.json,
-zeit,now.json:.nowignore,
-zip,,zip:rar:7z:tar:gz:bzip2:xz:bz2
-zip2,,zip:rar:7z:tar:gz:bzip2:xz:bz2
+zeit,now.json:.nowignore:vercel.json:.vercelignore,
+zig,,zig
+zip,,zip:rar:7z:tar:tgz:bz:gz:bzip2:xz:bz2:zipx
+zip2,,zip:rar:7z:tar:tgz:bz:gz:bzip2:xz:bz2:zipx
\ No newline at end of file
diff --git a/src/assets/icons/folder-icons-index.csv b/src/assets/icons/folder-icons-index.csv
index 234657c..62f18f4 100644
--- a/src/assets/icons/folder-icons-index.csv
+++ b/src/assets/icons/folder-icons-index.csv
@@ -1,7 +1,7 @@
folder,
root_folder,
android,android
-api,api:.api
+api,api:.api:apis:.apis
app,app:.app
arangodb,arangodb:arango
asset,assets:.assets
@@ -11,6 +11,7 @@ aws,aws:.aws
azure,azure:.azure
azurepipelines,azure-pipelines:.azure-pipelines
binary,bin:.bin
+bloc,blocs:bloc
blueprint,blueprint:.blueprint:blueprints:.blueprints
bower,bower_components
buildkite,.buildkite
@@ -18,24 +19,29 @@ cake,cake:.cake
certificate,certificates:.certificates:certs:certs.
chef,chef:.chef
circleci,.circleci
-controller,controllers:.controllers:handlers:.handlers
-component,components:.components:widgets
+controller,controller:controllers:.controllers:handlers:.handlers
+component,component:components:.components:widgets
composer,composer:.composer
cli,cli:cmd:command:commands:commandline:console
-client,client
+client,client:clients
cmake,.cmake:cmake
-config,config:.config:configs:.configs:configuration:.configuration:configurations:.configurations:setting:.setting:settings:.settings:ini:.ini:initializers:.initializers
+config,conf:.conf:config:.config:configs:.configs:configuration:.configuration:configurations:.configurations:setting:.setting:settings:.settings:ini:.ini:initializers:.initializers
coverage,coverage
css,css:_css
+cubit,cubits:cubit
cypress,cypress
+dapr,.dapr:dapr
db,db:database:sql:data:repo:repository:repositories
-debian,debian
-dist,dist:dists:out:outs:export:exports:build:builds:release:releases:target:targets
+debian,debian:deb
+dependabot,.dependabot
+devcontainer,.devcontainer
+dist,dist:.dist:dists:out:outs:export:exports:build:.build:builds:release:releases:target:targets
docker,docker:.docker
docs,docs:doc
e2e,e2e
elasticbeanstalk,.elasticbeanstalk:.ebextensions
electron,electron
+expo,.expo:.expo-shared
favicon,favicon:favicons
flow,flow:flow-typed
fonts,fonts:font:fnt
@@ -48,18 +54,20 @@ graphql,graphql
grunt,grunt
gulp,gulp:gulpfile.js:gulpfile.coffee:gulpfile.ts:gulpfile.babel.js:gulpfile.babel.coffee:gulpfile.babel.ts
haxelib,.haxelib:haxe_libraries
-helper,helpers:.helpers
+helper,helper:.helper:helpers:.helpers
+hook,hook:.hook:hooks:.hooks
+husky,.husky
idea,.idea
images,images:image:img:icons:icon:ico:screenshot:screenshots:svg
include,include:includes:incl:inc:.include:.includes:.incl:.inc:_include:_includes:_incl:_inc
-interfaces,interfaces
+interfaces,interface:interfaces
ios,ios
js,js
json,json
json_official,json
kubernetes,kubernetes:k8s:kube:kuber:.kubernetes:.k8s:.kube:.kuber
less,less:_less
-library,lib:.lib:library
+library,lib:libs:.lib:.libs:library:libraries
linux,linux
locale,lang:language:languages:locale:locales:_locale:_locales:internationalization:globalization:localization:i18n:g11n:l10n
log,log:logs
@@ -67,14 +75,15 @@ macos,macos:darwin
mariadb,mariadb:maria
maven,.mvn
memcached,memcached:.memcached
-middleware,middleware
+middleware,middleware:middlewares
mjml,mjml:.mjml
minikube,minikube:minik8s:minikuber
mock,mocks:.mocks:__mocks__
-model,models:.models:entities:.entities
+model,model:.model:models:.models:entities:.entities
module,modules
mongodb,mongodb:mongo
mysql,mysqldb:mysql
+next,.next
nginx,nginx:conf.d
node,node_modules
notification,notification:notifications:event:events
@@ -92,20 +101,21 @@ ravendb,ravendb
route,route:routes:_route:_routes:routers
redux,redux
meteor,.meteor
+nuxt,.nuxt
sass,sass:scss:_sass:_scss
script,script:scripts
server,server
-services,services
+services,service:services
src,src:source:sources
sso,sso
-story,stories:__stories__
+story,story:stories:__stories__:.storybook
style,style:styles
test,tests:.tests:test:.test:__tests__:__test__:spec:.spec:specs:.specs
temp,temp:.temp:tmp:.tmp
template,template:.template:templates:.templates
theme,theme:themes
travis,.travis
-tools,tools:.tools:util:utils
+tools,tool:tools:.tools:util:utils
typescript,typescript:ts
typings,typings:@types
typings2,typings:@types
@@ -122,4 +132,4 @@ vscode_test2,.vscode-test
vscode_test3,.vscode-test
webpack,webpack
windows,windows:win32
-www,www:wwwroot
+www,www:wwwroot
\ No newline at end of file
diff --git a/src/components/Node.tsx b/src/components/Node.tsx
index 8fa2ff0..739abad 100644
--- a/src/components/Node.tsx
+++ b/src/components/Node.tsx
@@ -2,7 +2,7 @@ import { useConfigs } from 'containers/ConfigsContext'
import * as React from 'react'
import { cx } from 'utils/cx'
import { OperatingSystems, os } from 'utils/general'
-import { getFileIconSrc, getFolderIconSrc } from 'utils/parseIconMapCSV'
+import { getFileIconURL, getFolderIconURL } from 'utils/parseIconMapCSV'
import { Icon } from './Icon'
function getIconType(node: TreeNode) {
@@ -81,7 +81,7 @@ const NodeItemIcon = React.memo(function NodeItemIcon({
} = useConfigs()
const src = React.useMemo(
- () => (node.type === 'tree' ? getFolderIconSrc(node, open) : getFileIconSrc(node)),
+ () => (node.type === 'tree' ? getFolderIconURL(node, open) : getFileIconURL(node)),
[open],
)
diff --git a/src/components/ToggleShowButton.tsx b/src/components/ToggleShowButton.tsx
index 243e3c7..85fdb4e 100644
--- a/src/components/ToggleShowButton.tsx
+++ b/src/components/ToggleShowButton.tsx
@@ -1,4 +1,4 @@
-import iconSrc from 'assets/icons/Gitako.png'
+import iconURL from 'assets/icons/Gitako.png'
import { useConfigs } from 'containers/ConfigsContext'
import * as React from 'react'
import { useDebounce, useWindowSize } from 'react-use'
@@ -60,7 +60,7 @@ export function ToggleShowButton({ error, className, onClick, onHover }: Props)
{toggleIconMode === 'octoface' ? (
) : (
-
+
)}
{error && {error}}
diff --git a/src/utils/parseIconMapCSV.ts b/src/utils/parseIconMapCSV.ts
index 530d15f..a820307 100644
--- a/src/utils/parseIconMapCSV.ts
+++ b/src/utils/parseIconMapCSV.ts
@@ -1,25 +1,29 @@
import rawFileIconIndex from 'assets/icons/file-icons-index.csv'
import rawFolderIconIndex from 'assets/icons/folder-icons-index.csv'
+const rowSeparator = '\n'
+const colSeparator = ','
+const arraySeparator = ':'
+
function parseFileIconMapCSV() {
const filenameIndex = new Map()
const fileExtensionIndex = new Map()
- rawFileIconIndex.split('\n').forEach(line => {
- if (!line) return
- const [name, names, exts] = line.split(',')
+ for (const line of rawFileIconIndex.split(rowSeparator)) {
+ if (!line) continue
+ const [name, names, exts] = line.split(colSeparator)
if (names) {
- names.split(':').forEach(filename => {
- if (!filename) return
+ for (const filename of names.split(arraySeparator)) {
+ if (!filename) continue
filenameIndex.set(filename, name)
- })
+ }
}
if (exts) {
- exts.split(':').forEach(ext => {
- if (!ext) return
+ for (const ext of exts.split(arraySeparator)) {
+ if (!ext) continue
fileExtensionIndex.set(ext, name)
- })
+ }
}
- })
+ }
return {
filenameIndex,
fileExtensionIndex,
@@ -28,14 +32,14 @@ function parseFileIconMapCSV() {
function parseFolderIconMapCSV() {
const folderNameIndex = new Map()
- rawFolderIconIndex.split('\n').forEach(line => {
- if (!line) return
- const [name, names] = line.split(',')
- names.split(':').forEach(folderName => {
- if (!folderName) return
+ for (const line of rawFolderIconIndex.split(rowSeparator)) {
+ if (!line) continue
+ const [name, names] = line.split(colSeparator)
+ for (const folderName of names.split(arraySeparator)) {
+ if (!folderName) continue
folderNameIndex.set(folderName, name)
- })
- })
+ }
+ }
return {
folderNameIndex,
}
@@ -43,32 +47,31 @@ function parseFolderIconMapCSV() {
const { folderNameIndex } = parseFolderIconMapCSV()
-export function getFolderIconSrc(node: TreeNode, open: boolean) {
+export function getFolderIconURL(node: TreeNode, open: boolean) {
const name = folderNameIndex.get(node.name.toLowerCase())
- return getIconSrc('folder', name, open)
+ return getIconURL('folder', name, open)
}
const { filenameIndex, fileExtensionIndex } = parseFileIconMapCSV()
-export function getFileIconSrc(node: TreeNode) {
+export function getFileIconURL(node: TreeNode) {
const fileName = node.name.toLowerCase()
let iconName = filenameIndex.get(fileName)
if (!iconName) {
const tail = fileName.split('.')
- tail.shift()
while (!iconName && tail.length > 0) {
iconName = fileExtensionIndex.get(tail.join('.'))
tail.shift()
}
}
- return getIconSrc('file', iconName)
+ return getIconURL('file', iconName)
}
// memorize for
// 1. swap time with space
// 2. prevent app crash on when extension context invalidates
const extensionURL = browser.runtime.getURL('').replace(/\/$/, '')
-export function getIconSrc(type: 'folder' | 'file', name: string = 'default', open?: boolean) {
+export function getIconURL(type: 'folder' | 'file', name: string = 'default', open?: boolean) {
const filename =
(name === 'default' ? 'default_' + type : type + '_type_' + name) +
(open ? '_opened' : '') +