Tab Groups - Take Two


  • I acknowledge that the following is duplicating terminology used for the Split Tab Group. So for reference, when I refer to IDEA's Tab Groups, I will call them Split Tab Groups.

The idea of the Tab Groups is to allow the user to organize open files into more logical and manageable groups and work units. Some Tab Groups will be for files that are being actively modified, others may be for files that may be referenced often, that you don't want to have to keep searching for.

Maybe I am the only one, but I like to have several files open at once. Right now, I have to open some files in other editors because I don't want them to be closed as I work with other files; that is files I am using for a reference. Example, I have some XML Schema files open, and I don't want to have to track them down because I worked with to many other files before going back to the file.

In the attached images(using a totally made up example), I show the following:

A: IDEA Example as it is today, with multiple files open; and not even all of the files.
B: Tab Group example with Schema Tab Group selected.
C: Tab Group example with the XML Classes Tab Group selected.
D: Tab Group example with the Utils Tab Group selected.
E: Tab Group example with the Misc Tab Group selected.

The Tab Groups form the first row of the Tab Bar(if set to be on Top); basically a Tab Groups Bar. When you click on a Tab Group, only those files in that Tab Group would be displayed.

In short you can have a better organized, less cluttered, and easier to manage tabs, even if you have a lot open(unless you open them all in the same tab group).

Other Functionality:
- Create new empty Tab Group
- Be able to save a Tab Group into Favorites.
- Be able to open a group of files, directory or Favorite(s) into a Tab Group(existing or as new)
- Drag and drop to reorder tab groups
- Drag and drop tab to move it to a different Tab Group; include ability(such as holding down the control key or similar) to duplicate a tab into another Tab Group.
- Open a Tab Group to a Split Tab Group(current IDEA Split)
- Swap Tab Groups between Split Tab Groups
- Merge Tab Groups

Tab Groups would also have some similar options to as Tabs(Settings: IDE Settings: Editor: Appearance: Tab Groups)

- Tab Group Placement(Top, Bottom, Left, Right, None): Of course, if None is selected, then Tab Groups is turned off. Likewise, someone might put their Tab Groups at the Bottom, yet leave the file tabs at the Top.

- Tab Groups Limit: Specify the maximum number to Tab Groups

- Tab Groups in a single row: Might consider not allowing this option.

- Open Non-Project Classes into Tab Group: If the is option is select, you would also supply a default Tab Group name where all non-project classes are opened when doing things such as a Goto Declaration that takes you to a non-project class such as ArrayList.

IDEA Today - multiple files open.png
Tab Group - Schema.png
Tab Group - XMLClasses.png
Tab Group - Utils.png
Tab Group - Misc.png


One terminology suggestion (in order to avoid collision with what is currently referred to as "Tab Groups"): What you are suggesting to group is really not tabs, but files, so maybe you should simply call your construct "File Groups" (or - if you don't like that - "Editor Groups").


Maybe it's just me, but I really find that unnecessary. You don't really work on more than one file at the same time, so you don't need more than one open file.

You do, however, work on many related files on a short period of time, so what you really need is a way to quickly and efficiently access related and recently used files. "Recent Files" (CTRL+E) already works great for the latter, so I'd say IDEA only needs to improve on the former.

Here are a few ideas:

- EJB's: switch between remote interface, implementation and deployment descriptors.
- Hibernate: switch between mappings and mapped classes
- Struts: switch between action, form and struts-config.xml

This could go a little further, and include some fuzzy way to detect relatedness:

- Scan VCS history comments, and check all files that were checked in together with the current one, and consider them related.
- Estabilish a current "task" (let's say, a JIRA issue number), and scan VCS history for other files that were committed with the same issue number metioned in the commit message.

I'm sure the community could come up with better ideas than mine.


Yes, I do work on multiple files at one time. Partly because of programming, but also because of other tasks I do. Sometimes, I end up following a trail of classes, which ends up closing some or all of the files I am working with, so I have to go and find them again. Likewise I might want to keep that trail of classes easily available(and not necessarily saved in favorites) for reference.

Right now, I use Ultra Edit(I am also going to toss this idea at them) for handling some of these tasks(I often keep property, config, and log files open in UE). And, sometimes, I literally have to stop in the middle of what I am doing and sometimes come back to what I was working on hours or even days later. Being able to quickly organize and save that state through something like tab groups would be nothing less than awesome.

I also believe a similar feature may be coming to Firefox; there is an extension, but it conflicts with other extensions I use. Granted, browsing is a bit different than editing(though editing can be simply reading), but when doing research, I wish I could have different groups of tabs, based on what I am doing. Closest I have come for FF is using Session Manager from one of the plug ins(not the one built into FFs).

I do use CTRL+E, but not always, depending on what I am doing. I do use the mouse a lot(yes, I know it is a sin), so, for me, navigation with the mouse is just easier, more reflexive, more natural.

There are some files I keep open and available for days. I rarely power down my laptop, often hibernating and then restoring right back to where I was. I an use to working in a mode of saved state.

I guess, for me, I don't have a current "task", but multiple current 'tasks".


I need this feature. Would be convenient.

Update: I think this is implemented with the favorites list.


The favorites list doesn't cut it for me. Opening all favorites in one group at the same time works, but their new tabs just become part of the bulk of tabs that I already have, which does not give much overview. 

The Tab Groups as proposed by Mark would be an amazing feature to have.


Please sign in to leave a comment.