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 Associations

Reference

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
  • The icon must be in SVG format and 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.)