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 and Folder Associations
Exhaustive List
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, which means 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 be16×16
. - The icon must not weigh too much (it rarely exceeds 5 KB)
- 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
ora.b
)
Moreover, please note that it’s preferable that your icon is actually of use, put another way 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.)