File Icons

File Icons Reference

Introduction

Aside from themes and color schemes, the plugin provides also a complete reskin to the projects’ file icons, making them prettier and easier to distinguish.

It’s heavily inspired by the A File Icon plugin for Sublime, which itself is inspired by Atom File Icons Atom plugin.

 

Note: There is also a standalone plugin for the icons only, called Atom File Icons IDEA, which is straight out taken from this plugin, so if you’d like to only have the icons without the themes, check this one.

Acknowledgements

All file icons have been built using the tools provided by A File Icon. Great thanks to @ihodev!

The icons themselves were taken from one of these sources:

How it works

Icons are matched based on a specific pattern in the filename:

  • According to the file extension (ex: .png, .js, .yml …)
  • According to the framework/library (ex: package.json, Gemfile, AndroidManifest.xml…)
  • According to certain keywords in the name (Redis, Cordova, Git…)

Finally, if the icon does not fall in any of the categories, it will either:

  • Get a generic category (Audio, Video, Archive, JSON)
  • Fallback to the original icon provided by Jetbrains

To see the full associations list, see icon_associations.xml

Reference

File Icons

access@2x.png Access
actionscript@2x.png Actionscript
ada@2x.png Ada
ae@2x.png Ae
ahk@2x.png Ahk
ai@2x.png Ai
akka@2x.png Akka
android@2x.png Android
angular@2x.png Angular
ansible@2x.png Ansible
apib@2x.png Apib
applescript@2x.png Applescript
appstore@2x.png Appstore
appveyor@2x.png Appveyor
archive@2x.png Archive
asp@2x.png Asp
atom@2x.png Atom
audio@2x.png Audio
aurelia@2x.png Aurelia
babel@2x.png Babel
bazel@2x.png Bazel
bean@2x.png Bean
behat@2x.png Behat
binary@2x.png Binary
blade@2x.png Blade
blank@2x.png Blank
bookmark@2x.png Bookmark
bower@2x.png Bower
bundle@2x.png Bundle
c@2x.png C
cabal@2x.png Cabal
cakephp@2x.png Cakephp
cf@2x.png Cf
cfc@2x.png Cfc
cfm@2x.png Cfm
chef@2x.png Chef
circleci@2x.png Circleci
class@2x.png Class
clojure@2x.png Clojure
cmake@2x.png Cmake
coffeescript@2x.png Coffeescript
compass@2x.png Compass
composer@2x.png Composer
config@2x.png Config
cordova@2x.png Cordova
cpp@2x.png Cpp
csharp@2x.png Csharp
css@2x.png Css
csv@2x.png Csv
cucumber@2x.png Cucumber
dart@2x.png Dart
db@2x.png Db
default@2x.png Default
diff@2x.png Diff
django@2x.png Django
dlang@2x.png Dlang
docker@2x.png Docker
dotnet@2x.png Dotnet
doxygen@2x.png Doxygen
drupal@2x.png Drupal
dylib@2x.png Dylib
eclipse@2x.png Eclipse
editorconfig@2x.png Editorconfig
ejs@2x.png Ejs
elm@2x.png Elm
emacs@2x.png Emacs
ember@2x.png Ember
erb@2x.png Erb
erlang@2x.png Erlang
eslint@2x.png Eslint
ex@2x.png Ex
excel@2x.png Excel
finder@2x.png Finder
fish@2x.png Fish
flow@2x.png Flow
font@2x.png Font
freemarker@2x.png Freemarker
fsharp@2x.png Fsharp
ghostscript@2x.png Ghostscript
git@2x.png Git
github@2x.png Github
go@2x.png Go
godot@2x.png Godot
gradle@2x.png Gradle
graphql@2x.png Graphql
graphviz@2x.png Graphviz
groovy@2x.png Groovy
gruntfile@2x.png Gruntfile
gulpfile@2x.png Gulpfile
hack@2x.png Hack
haml@2x.png Haml
haskell@2x.png Haskell
haxe@2x.png Haxe
hh@2x.png Hh
htaccess@2x.png Htaccess
html@2x.png Html
idea@2x.png Idea
image@2x.png Image
indesign@2x.png Indesign
ionic@2x.png Ionic
jade@2x.png Jade
java@2x.png Java
jekyll@2x.png Jekyll
jest@2x.png Jest
jinja@2x.png Jinja
jira@2x.png Jira
joomla@2x.png Joomla
jquery@2x.png Jquery
js@2x.png Js
jsmin@2x.png Jsmin
json@2x.png Json
jsp@2x.png Jsp
jsx@2x.png Jsx
julia@2x.png Julia
jupyter@2x.png Jupyter
karma@2x.png Karma
knockout@2x.png Knockout
kotlin@2x.png Kotlin
less@2x.png Less
license@2x.png License
liquid@2x.png Liquid
lisp@2x.png Lisp
lock@2x.png Lock
log@2x.png Log
lsl@2x.png Lsl
lua@2x.png Lua
magento@2x.png Magento
makefile@2x.png Makefile
manpage@2x.png Manpage
markdown@2x.png Markdown
markup@2x.png Markup
mathematica@2x.png Mathematica
matlab@2x.png Matlab
maven@2x.png Maven
maya@2x.png Maya
mercurial@2x.png Mercurial
meteor@2x.png Meteor
mocha@2x.png Mocha
mongodb@2x.png Mongodb
mustache@2x.png Mustache
nginx@2x.png Nginx
nib@2x.png Nib
nodejs@2x.png Nodejs
nodemon@2x.png Nodemon
note@2x.png Note
npm@2x.png Npm
nsis@2x.png Nsis
nuclide@2x.png Nuclide
nuget@2x.png Nuget
objc@2x.png Objc
ocaml@2x.png Ocaml
onenote@2x.png Onenote
openoffice@2x.png Openoffice
p4@2x.png P4
pascal@2x.png Pascal
patch@2x.png Patch
pdf@2x.png Pdf
perl@2x.png Perl
phalcon@2x.png Phalcon
php@2x.png Php
phpunit@2x.png Phpunit
phtml@2x.png Phtml
play@2x.png Play
plist@2x.png Plist
polymer@2x.png Polymer
postcss@2x.png Postcss
powerpoint@2x.png Powerpoint
powershell@2x.png Powershell
preferences@2x.png Preferences
premiere@2x.png Premiere
prettier@2x.png Prettier
procfile@2x.png Procfile
protractor@2x.png Protractor
psd@2x.png Psd
pug@2x.png Pug
puppet@2x.png Puppet
purescript@2x.png Purescript
python@2x.png Python
r@2x.png R
rails@2x.png Rails
rake@2x.png Rake
rdoc@2x.png Rdoc
react@2x.png React
readme@2x.png Readme
readme@2x_dark.png Readme_dark
reason@2x.png Reason
redis@2x.png Redis
redux@2x.png Redux
riot@2x.png Riot
robot@2x.png Robot
rollup@2x.png Rollup
rspec@2x.png Rspec
rst@2x.png Rst
ruby@2x.png Ruby
rust@2x.png Rust
sass@2x.png Sass
sbt@2x.png Sbt
scala@2x.png Scala
scss@2x.png Scss
settings@2x.png Settings
shell@2x.png Shell
sketch@2x.png Sketch
slim@2x.png Slim
source@2x.png Source
spring@2x.png Spring
sql@2x.png Sql
sqlite@2x.png Sqlite
stata@2x.png Stata
stylelint@2x.png Stylelint
stylus@2x.png Stylus
sublime@2x.png Sublime
svg@2x.png Svg
svn@2x.png Svn
swagger@2x.png Swagger
swift@2x.png Swift
swig@2x.png Swig
symfony@2x.png Symfony
tcl@2x.png Tcl
tern@2x.png Tern
test@2x.png Test
testjava@2x.png Testjava
testjs@2x.png Testjs
testpy@2x.png Testpy
testruby@2x.png Testruby
testts@2x.png Testts
tex@2x.png Tex
text@2x.png Text
textile@2x.png Textile
textmate@2x.png Textmate
todo@2x.png Todo
tomcat@2x.png Tomcat
travis@2x.png Travis
twig@2x.png Twig
typeScript@2x.png Typescript
typings@2x.png Typings
unreal@2x.png Unreal
vagrant@2x.png Vagrant
vhdl@2x.png Vhdl
video@2x.png Video
vim@2x.png Vim
visio@2x.png Visio
vs@2x.png Vs
vue@2x.png Vue
webpack@2x.png Webpack
windows@2x.png Windows
word@2x.png Word
wordpress@2x.png Wordpress
xamarin@2x.png Xamarin
xml@2x.png Xml
yaml@2x.png Yaml
yarn@2x.png Yarn
yeoman@2x.png Yeoman
yt@2x.png Yt

Folder Icons

audio.svg Audio
aws.svg Aws
bower.svg Bower
circleci.svg Circleci
components.svg Components
config.svg Config
db.svg Db
dist.svg Dist
docker.svg Docker
docs.svg Docs
fonts.svg Fonts
git.svg Git
github.svg Github
global.svg Global
gradle.svg Gradle
i18n.svg I18n
images.svg Images
include.svg Include
js.svg Js
kubernetes.svg Kubernetes
lib.svg Lib
logs.svg Logs
markdown.svg Markdown
node.svg Node
other.svg Other
php.svg Php
redux.svg Redux
resource.svg Resource
sass.svg Sass
src.svg Src
styles.svg Styles
temp.svg Temp
tests.svg Tests
themes.svg Themes
ts.svg Ts
video.svg Video
views.svg Views
vscode.svg Vscode
vue.svg Vue
web.svg Web
webpack.svg Webpack
wordpress.svg Wordpress

Customization

If you want to add an icon, or add/remove/modify an association pattern to/from the list, you can submit a PR with the requested icon/change. Your request must follow those guidelines:

  • The icon must be an acknowledged icon, e.g. from one of the aforementioned resources. If you cannot find your icon in these resources but want to create one anyway, you must:
    • Have your icon as close as the original language/framework logo
    • Only use one color
    • The color must be one of those mentioned in Color Schemes
  • You must submit two icons: one of size 16x16 and one of size 32x32 with the @2x.png extension.
  • The icon must be in PNG format.
  • OR you can send a SVG but its width and height must be 16x16.
  • The icon must not weigh too much (it rarely exceeds 5KB)
  • Add the icon in the src/resources/icons/files folder.

If you add an association, please bear in mind that:

  • The items are processed from top to bottom, so specific icons (like package.json) must come before generic icons (such as *.json).
  • Check that your association is not used or shadowed by another one.
  • Your association must make sense (e.g. not Verizon, *.000 or a.b)

Also please note that it’s preferable that your icon is actually of use, e.g. do not submit requests for a private framework that you use only in your company or of a personal choice (like “I prefer my html files to have the React icon” or something of the sort.)