feat: rich icons

This commit is contained in:
EnixCoda 2019-11-27 21:33:33 +08:00
parent e4468b1f01
commit 4ac447be2e
No known key found for this signature in database
GPG key ID: 0C1A07377913A1DD
12 changed files with 915 additions and 20 deletions

1
.gitignore vendored
View file

@ -4,3 +4,4 @@ node_modules
tmp
dist
yarn-error.log
vscode-icons

View file

@ -56,6 +56,7 @@
"json-loader": "^0.5.7",
"less": "^3.9.0",
"less-loader": "^4.0.5",
"raw-loader": "^4.0.0",
"style-loader": "^0.23.1",
"typescript": "^3.7.2",
"uglifyjs-webpack-plugin": "^2.1.2",

View file

@ -0,0 +1,648 @@
file,,
access,,accdb:accdt:mdb:accda:accdc:accde:accdp:accdr:accdu:ade:adp:laccdb:ldb:mam:maq:mdw
access2,,accdb:accdt:mdb:accda:accdc:accde:accdp:accdr:accdu:ade:adp:laccdb:ldb:mam:maq:mdw
actionscript,,as
actionscript2,,as
ada,,ada
advpl,,prw
ai,,ai
ai2,,ai
al,,al
affinitydesigner,,afdesign:affinitydesigner
affinityphoto,,afphoto:affinityphoto
affinitypublisher,,afpub:affinitypublisher
angular,.angular-cli.json:angular-cli.json:angular.json:.angular.json,
ng_component_dart,,component.dart
ng_component_ts,,component.ts
ng_component_js,,component.js
ng_controller_ts,,controller.ts
ng_controller_js,,controller.js
ng_directive_dart,,directive.dart
ng_directive_ts,,directive.ts
ng_directive_js,,directive.js
ng_guard_dart,,guard.dart
ng_guard_ts,,guard.ts
ng_guard_js,,guard.js
ng_module_dart,,module.dart
ng_module_ts,,module.ts
ng_module_js,,module.js
ng_pipe_dart,,pipe.dart
ng_pipe_ts,,pipe.ts
ng_pipe_js,,pipe.js
ng_routing_dart,,routing.dart
ng_routing_ts,,routing.ts
ng_routing_js,,routing.js
ng_routing_dart,app-routing.module.dart,
ng_routing_ts,app-routing.module.ts,
ng_routing_js,app-routing.module.js,
ng_smart_component_dart,,page.dart:container.dart
ng_smart_component_ts,,page.ts:container.ts
ng_smart_component_js,,page.js:container.js
ng_service_dart,,service.dart
ng_service_ts,,service.ts
ng_service_js,,service.js
ng_interceptor_dart,,interceptor.dart
ng_interceptor_ts,,interceptor.ts
ng_interceptor_js,,interceptor.js
ng_component_ts2,,component.ts
ng_component_js2,,component.js
ng_directive_ts2,,directive.ts
ng_directive_js2,,directive.js
ng_module_ts2,,module.ts
ng_module_js2,,module.js
ng_pipe_ts2,,pipe.ts
ng_pipe_js2,,pipe.js
ng_routing_ts2,,routing.ts
ng_routing_js2,,routing.js
ng_routing_ts2,app-routing.module.ts,
ng_routing_js2,app-routing.module.js,
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
affectscript,,affect
ansible,,ansible
antlr,,g4
anyscript,,any
apache,,htaccess
apex,,cls
apib,,apib
apl,,apl
applescript,,applescript
appveyor,appveyor.yml:.appveyor.yml,
arduino,,ino:pde
asciidoc,,adoc
asp,,asp:asp
aspx,,aspx:ascx
assembly,,asm:asm
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
avro,,avcs
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,
ballerina,,bal
bat,,bat
bazaar,.bzrignore,
bazel,.bazelrc:bazel.rc:bazel.bazelrc,bzl
befunge,,bf:bf
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
bolt,,bolt
bower,.bowerrc:bower.json,
browserslist,.browserslistrc:browserslist,
buckbuild,.buckconfig,
bundler,,gemfile:gemfile.lock
bundler,gemfile:gemfile.lock,
c,,c
c2,,c
c3,,c
c_al,,cal
cabal,,cabal
caddy,,Caddyfile
cake,,cake
cakephp,,
capacitor,capacitor.config.json,
cargo,cargo.toml:cargo.lock,
cert,,csr:crt:cer:der:pfx:p12:p7b:p7r:src:crl:sst:stl
ceylon,,ceylon
cf,,lucee:cfml:cfml
cf2,,lucee:cfml:cfml
cfc,,cfc
cfc2,,cfc
cfm,,cfm
cfm2,,cfm
cheader,,h
chef,chefignore:berksfile:berksfile.lock:policyfile,
class,,class
circleci,circle.yml,
clojure,,cjm:cljc:clojure
clojurescript,,cljs:clojurescript
cloudfoundry,.cfignore,
cmake,,cmake:CMakeCache.txt
cobol,,cbl
codacy,.codacy.yml:.codacy.yaml,
codeclimate,.codeclimate.yml,
codecov,codecov.yml:.codecov.yml,
codekit,,kit
codekit,config.codekit:config.codekit2:config.codekit3:.config.codekit:.config.codekit2:.config.codekit3,
coffeelint,coffeelint.json:.coffeelintignore,
coffeescript,,coffee
conan,conanfile.txt:conanfile.py,
conda,.condarc,
config,,plist:properties:env
compass,,
composer,composer.json:composer.lock,
chef_cookbook,,ckbk
confluence,,confluence
coveralls,.coveralls.yml,
cpp,,cpp
cpp2,,cpp
cpp3,,cpp
cppheader,,hpp
crowdin,crowdin.yml,
crystal,,cr
csharp,,csx:cs
csharp2,,csx:cs
csproj,,csproj
css,,css
csscomb,.csscomb.json,
csslint,.csslintrc,
cssmap,,css.map
cucumber,,feature
cuda,,cu
cython,,pyx
cypress,cypress.json:cypress.env.json,
cvs,.cvsignore,
dal,,dal
darcs,.boringignore,
dartlang,,dart
db,,db
dependencies,dependencies.yml,
delphi,,pas:pas
django,,djt:html:html
dlang,,d:d:d: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,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,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
drone,.drone.yml:.drone.yml.sig,
drools,,drl
dotjs,,dot
dustjs,,dust
dylan,,dylan:dylan
editorconfig,.editorconfig,
edge,,edge
edge2,,edge
eex,,eex:eex
ejs,,ejs
elastic,,es
elasticbeanstalk,,
elixir,,ex
elm,elm-package.json,elm
elm2,elm-package.json,elm
emacs,,el:elc
ember,.ember-cli,
ensime,,ensime
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,
excel,,xls:xlsx:xlsm:ods:fods
excel2,,xls:xlsx:xlsm:ods:fods
falcon,,falcon
favicon,favicon.ico,
fbx,,fbx
firebase,.firebaserc,
firebasehosting,firebase.json,
firestore,firestore.rules:firestore.indexes.json,
flash,,swf:swc
fla,,fla
floobits,.flooignore,
flow,,js.flow
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
fossa,.fossaignore,
fossil,ignore-glob,
fsharp,,fs
fsproj,,fsproj
freemarker,,ftl
fusebox,fuse.js,
galen,,gspec
galen2,,gspec
git,.gitattributes:.gitconfig:.gitignore:.gitmodules:.gitkeep:.mailmap,git: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
gitlab,.gitlab-ci.yml,
glide,glide.yml,
glsl,,glsl
go,,go
go_package,go.sum:go.mod,
godot,,gd
gradle,,gradle
graphql,.gqlconfig,gql
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,
haml,,haml
handlebars,,hbs
handlebars2,,hbs
harbour,,prg
haskell,,hs:lhs
haskell2,,hs:lhs
haxe,haxelib.json,haxe:haxe:haxe
haxecheckstyle,checkstyle.json,
haxedevelop,,hxproj
helix,.p4ignore,
helm,,helm.tpl
hjson,,hjson
hlsl,,hlsl
homeassistant,,yaml
host,,hosts
html,,html
htmlhint,.htmlhintrc,
http,,http
hunspell,,aff:aff
husky,.huskyrc:.huskyrc.js:.huskyrc.json:.huskyrc.yaml:.huskyrc.yml,
icl,,icl
idris,,idr:lidr
idrisbin,,ibc
idrispkg,,ipkg
image,,jpeg:jpg:gif:png:bmp:tiff:ico
imba,,imba
inc,,inc:include
infopath,,infopathxml:xsn:xsf:xtp2
informix,,4gl
ini,,ini
ink,,ink
innosetup,,iss
ionic,ionic.project:ionic.config.json,
jake,jakefile:jakefile.js,
janet,,janet
jar,,jar
java,,java
jbuilder,,jbuilder
jest,jest.config.js:jest.json:jest.config.json:.jestrc:.jestrc.js:.jestrc.json,
jest_snapshot,,js.snap:jsx.snap:ts.snap:tsx.snap
jekyll,,jekyll
jenkins,,jenkins:jenkins:jenkins
jinja,,jinja
jpm,.jpmignore,
js,,js
js_official,,js
jsbeautify,.jsbeautifyrc:jsbeautifyrc:.jsbeautify:jsbeautify,
jsconfig,jsconfig.json,
jshint,.jshintrc:.jshintignore,
jsmap,,js.map
json,,json:JSON-tmLanguage:jsonc
json_official,,json:JSON-tmLanguage:jsonc
json2,,json:JSON-tmLanguage:jsonc
jsonnet,,jsonnet
json5,,json5:json5
jsonld,,jsonld:json-ld
jsp,,jsp
jss,,jss
julia,,jl:jl
julia2,,jl: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,
kivy,,kv
kos,,ks
kotlin,,kt
layout,,master:layout.html:layout.htm
layout,layout.html:layout.htm,
lerna,lerna.json,
less,,less
license,,enc
license,license:licence:license.md:license.txt:licence.md:licence.txt,
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
locale,,
log,,log:tlg
lolcode,,lol
lsl,,lsl
lua,,lua
lync,,crec:ocrec
makefile,,makefile:mk
manifest,manifest,
manifest_skip,manifest.skip,
manifest_bak,manifest.bak,
map,,map
markdown,,mdown:markdown:md
markdownlint,.markdownlint.json,
marko,,marko
markojs,,marko.js
matlab,,fig:mex:mexn:mexrs6:mn:mum:mx:mx3:rwd:slx:slddc:smv:xvc:mat
maxscript,,ms
maven,maven.config:pom.xml:extensions.xml:settings.xml,
maya,,mel
mdx,,mdx
mediawiki,,mediawiki
mercurial,.hgignore,
meson,,meson.build
meteor,,
mjml,,mjml
mlang,,pq:pq
mocha,mocha.opts:.mocharc.js:.mocharc.json:.mocharc.jsonc:.mocharc.yaml:.mocharc.yml,
mojolicious,,ep
moleculer,moleculer.config.js:moleculer.config.json:moleculer.config.ts,
mongo,,mongo
monotone,.mtn-ignore,
mson,,mson
mustache,,mustache:mst
nearly,,ne
nestjs,.nest-cli.json:nest-cli.json:nestconfig.json:.nestconfig.json,
nest_adapter_js,,adapter.js
nest_adapter_ts,,adapter.ts
nest_controller_js,,controller.js
nest_controller_ts,,controller.ts
nest_decorator_js,,decorator.js
nest_decorator_ts,,decorator.ts
nest_filter_js,,filter.js
nest_filter_ts,,filter.ts
nest_gateway_js,,gateway.js
nest_gateway_ts,,gateway.ts
nest_guard_js,,guard.js
nest_guard_ts,,guard.ts
nest_interceptor_js,,interceptor.js
nest_interceptor_ts,,interceptor.ts
nest_middleware_js,,middleware.js
nest_middleware_ts,,middleware.ts
nest_module_js,,module.js
nest_module_ts,,module.ts
nest_pipe_js,,pipe.js
nest_pipe_ts,,pipe.ts
nest_service_js,,service.js
nest_service_ts,,service.ts
netlify,netlify.toml,
nginx,nginx.conf,
nim,,nim:nim
ninja,build.ninja,
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,
nsri-integrity,.integrity.json,,nsri-integrity
nuget,,nupkg:nuspec:psmdcp
nunjucks,,nunj:njs:nunjucks
nuxt,nuxt.config.js:nuxt.config.ts,
nyc,.nycrc:.nycrc.json,
objectivec,,m
objectivecpp,,mm
ocaml,.merlin,ml:ml:ml
onenote,,one:onepkg:onetoc:onetoc2:sig
opencl,,cl:opencl
openHAB,,things
org,,org
outlook,,pst:bcmx:otm:msg:oft
ovpn,,ovpn
package,,pkg
paket,paket.dependencies:paket.lock:paket.references:paket.template:paket.local,
patch,,patch
pcl,,pcd
pddl,,pddl
pddl_plan,,plan
pddl_happenings,,happenings
pdf,,pdf
pdf2,,pdf
perl,,pl
perl2,,pl
perl6,,pl6
pgsql,,pgsql
photoshop,,psd
photoshop2,,psd
php,,php1:php2:php3:php4:php5:php6:phps:phpsa:phpt:phtml:phar:php
php2,,php1:php2:php3:php4:php5:php6:phps:phpsa:phpt:phtml:phar:php
php3,,php1:php2:php3:php4:php5:php6:phps:phpsa:phpt:phtml:phar:php
phpcsfixer,.php_cs:.php_cs.dist,
phpunit,phpunit:phpunit.xml:phpunit.xml.dist,
phraseapp,.phraseapp.yml,
pine,,pine
pip,pipfile:pipfile.lock,requirements.txt
platformio,platformio.ini,dbgasm:dbgasm:dbgasm
plantuml,,pu:plantuml:iuml:puml
plsql,,ddl:ddl
plsql_package,,pck
plsql_package_body,,pkb
plsql_package_header,,pkh
plsql_package_spec,,pks
poedit,,po:mo
polymer,,polymer
pony,,pony
postcss,,pcss
postcssconfig,.postcssrc:.postcssrc.json:.postcssrc.yml:.postcssrc.js:postcss.config.js,
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
powershell_psm,,psm1
powershell_psd,,psd1
powershell_format,,format.ps1xml
powershell_types,,types.ps1xml
powershell2,,ps1
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,
prisma,,prisma
processinglang,,pde
procfile,procfile,
progress,,w
prolog,,pro:P:pro
prometheus,,rules
protobuf,,proto:proto
protractor,protractor.conf.js:protractor.conf.coffee:protractor.conf.ts,
publisher,,pub:puz
puppet,,pp
pug,.jade-lintrc:.pug-lintrc:.jade-lint.json:.pug-lintrc.js:.pug-lintrc.json,pug
purescript,,purs
pyret,,arr
python,,py
pyup,.pyup:.pyup.yml,
q,,q
qbs,,qbs
qlikview,,qvd:qvw:qvs
qml,,qml
qmldir,qmldir,
qsharp,,qs
quasar,quasar.conf.js,
r,,r
racket,,rkt
rails,,
rake,,rake
rake,rakefile,
raml,,raml
razor,,cshtml:cshtml
razzle,razzle.config.js,
reactjs,,jsx
reacttemplate,,rt
reactts,,tsx
reason,,re
red,,red
registry,,reg
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,
rest,,rst
retext,.retextrc:.retextignore:.retextrc.js:.retextrc.json:.retextrc.yml:.retextrc.yaml,
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,
rproj,,rproj
rspec,.rspec,
rubocop,.rubocop.yml:.rubocop_todo.yml,
ruby,,rb
rust,,rs
saltstack,,sls
san,,san
sass,,sass
sbt,,sbt
scala,,scala
script,,wsf
scss,,scssm:scss
scilab,,sce
sdlang,,sdl
sentry,.sentryclirc,
serverless,serverless.yml,
sequelize,.sequelizerc:.sequelizerc.js:.sequelizerc.json,
shaderlab,,shader
shell,,fish:sh
sketch,,sketch
slang,,slang
slice,,ice
slim,,slim
sln,,sln
sln2,,sln
silverstripe,,ss
skipper,,eskip:eskip
smarty,,tpl
snapcraft,snapcraft.yaml,
snort,,snort
snyk,.snyk,
solidarity,.solidarity:.solidarity.json,
solidity,,sol
source,,
sqf,,sqf
sql,,sql
sqlite,,sqlite:sqlite3:db3
squirrel,,nut
sss,,sss
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,
stylable,,st.css
styled,,styled
stylus,,styl
storyboard,,storyboard
storybook,,story.js:story.jsx:story.ts:story.tsx:stories.js:stories.jsx:stories.ts:stories.tsx
subversion,.svnignore,
svelte,,svelte
svg,,svg
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,
tt,,tt2:tt3
tcl,,tcl:exp
tera,,tera
terraform,,tfstate:tf
test,,tst
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
textile,,textile
tfs,.tfignore,
todo,,todo
toml,,toml
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,
tslint,tslint.json:tslint.yaml:tslint.yml,
ttcn,,ttcn3
twig,,twig
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,
vagrant,vagrantfile,
vala,,vala
vapi,,vapi
vash,,vash
vb,,vb
vba,,cls
vbhtml,,vbhtml
vbproj,,vbproj
vcxproj,,vcxproj
velocity,,vm
verilog,,v
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
vlang,,v
volt,,volt
vscode,.vscodeignore:launch.json:tasks.json:vscodeignore.json,
vscode2,.vscodeignore:launch.json:tasks.json:vscodeignore.json,
vscode3,.vscodeignore:launch.json:tasks.json:vscodeignore.json,
vscode-insiders,.vscodeignore:launch.json:tasks.json:vscodeignore.json,,vscode-insiders
vsix,,vsix
vsixmanifest,,vsixmanifest
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
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,
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
wxml,,wxml
wxss,,wxss
xcode,,xcodeproj
xfl,,xfl
xib,,xib
xliff,,xliff:xlf
xml,,pex:tmlanguage:xml
xquery,,xquery
xsl,,xsl
yaml,,yaml:YAML-tmLanguage
yamllint,.yamllint,
yandex,.yaspellerrc:.yaspeller.json,
yang,,yang
yarn,yarn.lock:.yarnrc:.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
Can't render this file because it has a wrong number of fields in line 402.

View file

@ -0,0 +1,125 @@
folder,
root_folder,
android,android
api,api:.api
app,app:.app
arangodb,arangodb:arango
asset,assets:.assets
aurelia,aurelia_project
audio,audio:.audio:audios:.audios:sound:.sound:sounds:.sounds
aws,aws:.aws
azure,azure:.azure
azurepipelines,azure-pipelines:.azure-pipelines
binary,bin:.bin
blueprint,blueprint:.blueprint:blueprints:.blueprints
bower,bower_components
buildkite,.buildkite
cake,cake:.cake
certificate,certificates:.certificates:certs:certs.
chef,chef:.chef
circleci,.circleci
controller,controllers:.controllers:handlers:.handlers
component,components:.components:widgets
composer,composer:.composer
cli,cli:cmd:command:commands:commandline:console
client,client
cmake,.cmake:cmake
config,config:.config:configs:.configs:configuration:.configuration:configurations:.configurations:setting:.setting:settings:.settings:ini:.ini:initializers:.initializers
coverage,coverage
css,css:_css
cypress,cypress
db,db:database:sql:data:repo:repository:repositories
debian,debian
dist,dist:dists:out:outs:export:exports:build:builds:release:releases:target:targets
docker,docker:.docker
docs,docs:doc
e2e,e2e
elasticbeanstalk,.elasticbeanstalk:.ebextensions
electron,electron
favicon,favicon:favicons
flow,flow:flow-typed
fonts,fonts:font:fnt
gcp,gcp:.gcp
git,.git:submodules:.submodules
github,.github
gitlab,.gitlab
gradle,gradle:.gradle
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
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
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
linux,linux
locale,lang:language:languages:locale:locales:_locale:_locales:internationalization:globalization:localization:i18n:g11n:l10n
log,log:logs
macos,macos:darwin
mariadb,mariadb:maria
maven,.mvn
memcached,memcached:.memcached
middleware,middleware
mjml,mjml:.mjml
minikube,minikube:minik8s:minikuber
mock,mocks:.mocks:__mocks__
model,models:.models:entities:.entities
module,modules
mongodb,mongodb:mongo
mysql,mysqldb:mysql
nginx,nginx:conf.d
node,node_modules
notification,notification:notifications:event:events
nuget,.nuget
package,package:packages:.package:.packages:pkg
paket,.paket
php,php
platformio,.pio:.pioenvs
plugin,plugin:.plugin:plugins:.plugins:extension:.extension:extensions:.extensions
private,private:.private
public,public:.public
python,.venv:.virtualenv
redis,redis
ravendb,ravendb
route,route:routes:_route:_routes:routers
redux,redux
meteor,.meteor
sass,sass:scss:_sass:_scss
script,script:scripts
server,server
services,services
src,src:source:sources
sso,sso
story,stories:__stories__
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
typescript,typescript:ts
typings,typings:@types
typings2,typings:@types
vagrant,vagrant:.vagrant
video,video:.video:videos:.videos
view,html:view:views:layout:layouts:page:pages:_view:_views:_layout:_layouts:_page:_pages
vs,.vs
vs2,.vs
vscode,.vscode:vscode
vscode2,.vscode:vscode
vscode3,.vscode:vscode
vscode_test,.vscode-test
vscode_test2,.vscode-test
vscode_test3,.vscode-test
webpack,webpack
windows,windows:win32
www,www:wwwroot
1 folder
2 root_folder
3 android android
4 api api:.api
5 app app:.app
6 arangodb arangodb:arango
7 asset assets:.assets
8 aurelia aurelia_project
9 audio audio:.audio:audios:.audios:sound:.sound:sounds:.sounds
10 aws aws:.aws
11 azure azure:.azure
12 azurepipelines azure-pipelines:.azure-pipelines
13 binary bin:.bin
14 blueprint blueprint:.blueprint:blueprints:.blueprints
15 bower bower_components
16 buildkite .buildkite
17 cake cake:.cake
18 certificate certificates:.certificates:certs:certs.
19 chef chef:.chef
20 circleci .circleci
21 controller controllers:.controllers:handlers:.handlers
22 component components:.components:widgets
23 composer composer:.composer
24 cli cli:cmd:command:commands:commandline:console
25 client client
26 cmake .cmake:cmake
27 config config:.config:configs:.configs:configuration:.configuration:configurations:.configurations:setting:.setting:settings:.settings:ini:.ini:initializers:.initializers
28 coverage coverage
29 css css:_css
30 cypress cypress
31 db db:database:sql:data:repo:repository:repositories
32 debian debian
33 dist dist:dists:out:outs:export:exports:build:builds:release:releases:target:targets
34 docker docker:.docker
35 docs docs:doc
36 e2e e2e
37 elasticbeanstalk .elasticbeanstalk:.ebextensions
38 electron electron
39 favicon favicon:favicons
40 flow flow:flow-typed
41 fonts fonts:font:fnt
42 gcp gcp:.gcp
43 git .git:submodules:.submodules
44 github .github
45 gitlab .gitlab
46 gradle gradle:.gradle
47 graphql graphql
48 grunt grunt
49 gulp gulp:gulpfile.js:gulpfile.coffee:gulpfile.ts:gulpfile.babel.js:gulpfile.babel.coffee:gulpfile.babel.ts
50 haxelib .haxelib:haxe_libraries
51 helper helpers:.helpers
52 idea .idea
53 images images:image:img:icons:icon:ico:screenshot:screenshots:svg
54 include include:includes:incl:inc:.include:.includes:.incl:.inc:_include:_includes:_incl:_inc
55 interfaces interfaces
56 ios ios
57 js js
58 json json
59 json_official json
60 kubernetes kubernetes:k8s:kube:kuber:.kubernetes:.k8s:.kube:.kuber
61 less less:_less
62 library lib:.lib:library
63 linux linux
64 locale lang:language:languages:locale:locales:_locale:_locales:internationalization:globalization:localization:i18n:g11n:l10n
65 log log:logs
66 macos macos:darwin
67 mariadb mariadb:maria
68 maven .mvn
69 memcached memcached:.memcached
70 middleware middleware
71 mjml mjml:.mjml
72 minikube minikube:minik8s:minikuber
73 mock mocks:.mocks:__mocks__
74 model models:.models:entities:.entities
75 module modules
76 mongodb mongodb:mongo
77 mysql mysqldb:mysql
78 nginx nginx:conf.d
79 node node_modules
80 notification notification:notifications:event:events
81 nuget .nuget
82 package package:packages:.package:.packages:pkg
83 paket .paket
84 php php
85 platformio .pio:.pioenvs
86 plugin plugin:.plugin:plugins:.plugins:extension:.extension:extensions:.extensions
87 private private:.private
88 public public:.public
89 python .venv:.virtualenv
90 redis redis
91 ravendb ravendb
92 route route:routes:_route:_routes:routers
93 redux redux
94 meteor .meteor
95 sass sass:scss:_sass:_scss
96 script script:scripts
97 server server
98 services services
99 src src:source:sources
100 sso sso
101 story stories:__stories__
102 style style:styles
103 test tests:.tests:test:.test:__tests__:__test__:spec:.spec:specs:.specs
104 temp temp:.temp:tmp:.tmp
105 template template:.template:templates:.templates
106 theme theme:themes
107 travis .travis
108 tools tools:.tools:util:utils
109 typescript typescript:ts
110 typings typings:@types
111 typings2 typings:@types
112 vagrant vagrant:.vagrant
113 video video:.video:videos:.videos
114 view html:view:views:layout:layouts:page:pages:_view:_views:_layout:_layouts:_page:_pages
115 vs .vs
116 vs2 .vs
117 vscode .vscode:vscode
118 vscode2 .vscode:vscode
119 vscode3 .vscode:vscode
120 vscode_test .vscode-test
121 vscode_test2 .vscode-test
122 vscode_test3 .vscode-test
123 webpack webpack
124 windows windows:win32
125 www www:wwwroot

View file

@ -1,5 +1,6 @@
import Octicon, {
ChevronDown,
ChevronRight,
File,
FileCode,
FileMedia,
@ -12,7 +13,6 @@ import Octicon, {
Markdown,
Octoface,
Reply,
TriangleRight,
X,
} from '@primer/octicons-react'
import * as React from 'react'
@ -57,8 +57,8 @@ function getSVGIconComponent(
}
case 'folder':
return {
IconComponent: TriangleRight,
name: 'TriangleRight',
IconComponent: ChevronRight,
name: 'ChevronRight',
}
case 'go-to':
return {

View file

@ -1,8 +1,9 @@
import { Icon } from 'components/Icon'
import * as React from 'react'
import { cx } from 'utils/cx'
import { OperatingSystems, os } from 'utils/general'
import { TreeNode } from 'utils/VisibleNodesGenerator'
import { getFileIconSrc, getFolderIconSrc } from '../utils/parseIconMapCSV'
import { Icon } from './Icon'
function getIconType(node: TreeNode) {
switch (node.type) {
@ -54,7 +55,7 @@ export function Node({ node, depth, expanded, focused, renderActions, style, onC
style={{ paddingLeft: `${10 + 20 * depth}px` }}
>
<div className={'node-item-label'}>
<Icon type={getIconType(node)} />
<NodeItemIcon node={node} open={expanded} />
<span className={'node-item-name'}>{name}</span>
</div>
{renderActions && <div>{renderActions(node)}</div>}
@ -63,3 +64,22 @@ export function Node({ node, depth, expanded, focused, renderActions, style, onC
</div>
)
}
const NodeItemIcon = React.memo(function NodeItemIcon({
node,
open = false,
}: {
node: TreeNode
open?: boolean
}) {
const src = React.useMemo(
() => (node.type === 'tree' ? getFolderIconSrc(node, open) : getFileIconSrc(node)),
[open],
)
return (
<>
{node.type !== 'blob' && <Icon type={getIconType(node)} />}
<img alt={node.name} className={'node-item-icon'} src={src} />
</>
)
})

View file

@ -358,8 +358,21 @@
transition: all 0.5s ease;
white-space: nowrap;
&-icon {
width: 16px;
height: 16px;
object-fit: contain;
vertical-align: middle;
padding-left: 6px;
box-sizing: content-box;
&.dim {
filter: sepia(1) hue-rotate(180deg);
}
}
// folder icon rotate when expand
&.expanded .octicon.TriangleRight {
&.expanded .octicon.ChevronRight {
transform: rotate(90deg);
}

5
src/global.d.ts vendored
View file

@ -7,3 +7,8 @@ type PartialValSet<T> = {
val: T
set: (val: Partial<T>) => void
}
declare module '*.csv' {
const content: string
export default content
}

View file

@ -8,21 +8,12 @@
"128": "icons/Gitako-128x128.png"
},
"homepage_url": "https://github.com/EnixCoda/Gitako",
"permissions": [
"storage",
"*://*.github.com/*",
"*://*.sentry.io/*"
],
"permissions": ["storage", "*://*.github.com/*", "*://*.sentry.io/*"],
"web_accessible_resources": ["icons/vscode/*"],
"content_scripts": [
{
"matches": [
"https://github.com/*"
],
"js": [
"firefox-shim.js",
"browser-polyfill.js",
"content.js"
]
"matches": ["https://github.com/*"],
"js": ["firefox-shim.js", "browser-polyfill.js", "content.js"]
}
]
}
}

View file

@ -0,0 +1,67 @@
import rawFileIconIndex from 'assets/icons/file-icons-index.csv'
import rawFolderIconIndex from 'assets/icons/folder-icons-index.csv'
import { TreeNode } from 'utils/VisibleNodesGenerator'
function parseFileIconMapCSV() {
const filenameIndex = new Map<string, string>()
const fileExtensionIndex = new Map<string, string>()
rawFileIconIndex.split('\n').forEach(line => {
if (!line) return
const [name, names, exts] = line.split(',')
if (names) {
names.split(':').forEach(filename => {
if (!filename) return
filenameIndex.set(filename, name)
})
}
if (exts) {
exts.split(':').forEach(ext => {
if (!ext) return
fileExtensionIndex.set(ext, name)
})
}
})
return {
filenameIndex,
fileExtensionIndex,
}
}
function parseFolderIconMapCSV() {
const folderNameIndex = new Map<string, string>()
rawFolderIconIndex.split('\n').forEach(line => {
if (!line) return
const [name, names] = line.split(',')
names.split(':').forEach(folderName => {
if (!folderName) return
folderNameIndex.set(folderName, name)
})
})
return {
folderNameIndex,
}
}
const { folderNameIndex } = parseFolderIconMapCSV()
export function getFolderIconSrc(node: TreeNode, open: boolean) {
const name = folderNameIndex.get(node.name.toLowerCase())
return getIconSrc('folder', name, open)
}
const { filenameIndex, fileExtensionIndex } = parseFileIconMapCSV()
export function getFileIconSrc(node: TreeNode) {
const name =
filenameIndex.get(node.name.toLowerCase()) ||
fileExtensionIndex.get((node.name.split('.').pop() as string).toLowerCase())
return getIconSrc('file', name)
}
export function getIconSrc(type: 'folder' | 'file', name: string = 'default', open?: boolean) {
const filename =
(name === 'default' ? 'default_' + type : type + '_type_' + name) +
(open ? '_opened' : '') +
'.svg'
return browser.runtime.getURL(`icons/vscode/${filename}`)
}

View file

@ -18,6 +18,10 @@ const plugins = [
from: './src/assets/icons/*',
to: 'icons/[name].[ext]',
},
{
from: './vscode-icons/icons/*',
to: 'icons/vscode/[name].[ext]',
},
{
from: 'node_modules/webextension-polyfill/dist/browser-polyfill.js',
to: 'browser-polyfill.js',
@ -79,6 +83,10 @@ module.exports = {
resourceQuery: /inline/,
loader: ['url-loader'],
},
{
test: /\.csv$/,
loader: ['raw-loader'],
},
{
test: /\.json$/,
loader: ['json-loader'],

View file

@ -6450,6 +6450,14 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
raw-loader@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.0.tgz#d639c40fb9d72b5c7f8abc1fb2ddb25b29d3d540"
integrity sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q==
dependencies:
loader-utils "^1.2.3"
schema-utils "^2.5.0"
rc@^1.2.7, rc@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@ -6948,6 +6956,14 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
schema-utils@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz#8f254f618d402cc80257486213c8970edfd7c22f"
integrity sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ==
dependencies:
ajv "^6.10.2"
ajv-keywords "^3.4.1"
screenfull@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.0.tgz#5c2010c0e84fd4157bf852877698f90b8cbe96f6"