My #1 wish for IDEA 14

Dear Santa,

I know it is quite early in the year to write my wish list for Christmas. But I know that you carefully need to manage your resources delivering all those great new features... Seriously, here's something that is constantly annoying me in IDEA:
I am opening multiple windows to be able to work on multiple projects simuntaneously. The use case are projects for multiple branches of my code.

However, it is very difficult to distinguish those two IDEA windows from each other. Say project names are Superkalifrageles-trunk and Superkalifrageles-release_2.1 (for branches trunk and release_2.1)

  • I need to parse the title bar of the windows to find the appropriate information that I need. This is tedious
  • The windows task bar has multiple instances that look the same (same Icon, same text)

I am constantly ending up in the wrong instance of IDEA and frequently I start making changes for the wrong project. It would really great, if there were a way to make IDEA windows more distinguishable from each other. This could be different colors of the IDEA icon, different colors of the toolbar or something else entirely.

Thanks for listening.


I used to have problems like that too, then I wrote this plugin: 

Since then, I have no problem with working on large number of opened projects, usually 10-20, including different branches.
I do not read what is opened, I just type a part of the name and then read what is left and choose the right one.
But I have to say that my project names are little bit more distinguishable (PORTAL_TRUNK, PORTAL_14000, PORTAL_14100,..)


By the way, you could write a plugin which would make a colored box in the toolbar, like so:

public class ProjectToolbarColor extends DumbAwareAction implements CustomComponentAction {      private ColorPanel colorPanel;      @Override      public void update(AnActionEvent e) {           Project project = e.getProject();           if (project != null) {                String name = project.getName();                boolean trunk = name.contains("trunk");                colorPanel.setSelectedColor(trunk ? Color.BLUE : Color.RED);           }      }      @Override      public JComponent createCustomComponent(Presentation presentation) {           final JPanel comp = new JPanel();           colorPanel = new ColorPanel("");           colorPanel.setBorderColor(Color.WHITE);           comp.add(colorPanel);           return comp;      }      @Override      public void actionPerformed(AnActionEvent anActionEvent) {      }


A bit off topic, but how do you manage to have 10 to 20 projects running at the same time?
I usually run out of memory when I have more than 2 open.
I have Xmx=1024m.
My project has about 175 jars (~200MB) in dependencies though, although these are the same jars in each branch.


I have Xmx=3024m or so.
Before using 64bit OS, I had to use 2 instances of IntelliJ integrated via my plugin.


Oh, wow, this plugin is a life saver, and should be part of the IntelliJ core! Finally no more CMD+` to cycle through my projects to find the right one. Really nice!


Thanks for pointing that out. I wasn't aware of that plugin. I'll certainly give it a try. However, most errors occur while switching back from another application (all my IDEA entries in the task bar look the same).


So what about changing the icon?

ppublic class IconProjectComponent implements ProjectComponent {
     private Project project;

     public IconProjectComponent(Project project) {
          this.project = project;

     public void projectOpened() {
          if (project != null) {
               String name = project.getName();
               boolean trunk = name.toLowerCase().contains("trunk");
               if (trunk) {
                    Window ideFrame = WindowManagerEx.getInstanceEx().getFrame(project);
                    java.util.List<Image> icons = new ArrayList<Image>();
... }


That's also nice, but wouldn't work in Mac, right?


Because there's always only one instance (or icon) in the task switcher of IntelliJ in Mac, instead of one icon per project, like in Windows. I don't see how this would work then?