Ok, so first comes the warning: what I offer below is an incomplete and work-in-progress code, which I offer AS IS. It only works on OS X for now, has a number of bugs, features are missing, etc, etc.
In the last couple of years, I've asked a few members of this community to test MIDE privately, and got very constructive responses plus a number of bugs were reported. Still, I don't consider it ready for general public use, so use it only if you feel adventurous.
The only reason I post it now is that it seems to directly answer the question asked, and even in the current form, may be useful to some people. It is certainly very useful for me personally, in my current work, to the extent that I can't think of not using it for everything I do in Mathematica. So better make it available now, than wait for unspecified period of time until it is all ready and shining.
What it is supposed to become
MIDE is the name I chose for the Mathematica IDE I've been working on, for quite some time now (several years), as a personal project.
My plan has been, and still is, to convert it to a modular next generation IDE for Mathematica / WL / multi-language development (Mathematica / Java / C / etc., but of course with Mathematica being a central part of it), with a proper extensibility model, so that it is developed collaboratively, and plugins for it could be written by the community.
My vision for it, why I think it can be useful, and what problems it might be able to solve, I expressed in more detail in MIDE's manual, which is a separate notebook that comes with MIDE.nb (more on it below).
What it is now
Right now it basically is a tab manager, that allows one to have split the screen in 2 parts and have notebooks as tabs on both.
Also, it has what I call "Development mode", where one can use improved code navigation facilities, and a very rudimentary support for workspaces.
Even in this very reduced capacity, it has been very useful for me personally, and I do all my active development work using it.
It only works so far on Mac OS X (untested on Windows, last time I tried, it needs certain UI adjustments).
Here are a few screenshots (which are about a year and a half old, but not much changed in appearance since)
More details are in the manual, which is a separate notebook and is loaded by MIDE automatically
Download and use
You can download the notebook with MIDE's code, and the manual notebook, by using this link:
MIDE download link
Put both notebooks in the same directory
The following steps you will need to do only once
Configure the new kernel called "Background" (via menu Evaluation -> Kernel configuration options -> Add), and that one will power the ide.
Open MIDE.nb in Mathematica and select it (make currently active notebook)
Go to the menu Evaluation -> Notebook's Kernel, and set it to Background
Evaluate Mide.nb (from menu Evalaution -> Evaluate initialization cells)
Follow the startup procedure:
It will ask you to choose the workspace, it doesn't really matter which you choose (there are 3 available) - there isn't a full workspace support yet anyway.
It will ask you to load its own source into "dev. mode". This is just for illustration purposes, and will take some additional time if you choose this option. But it will give you some good idea about what dev.mode can do.
It will open the manual in dev mode. Dev. mode panel is on the toolbar on the left.
You can read the manual to see what this is all about and how to use it. Note that in dev. mode, you click on cell names to expand the cells (or you can do that from the left panel too)
If you want to close the notebook which is one of the tabs, don't use the notebook window's own x button for that, since it will bring MIDE to an invalid state. Instead, select the appropriate tab and press the x button (red) on the corresponding tab panel.
When you press the x button to close selected tab, the notebook will be closed without being saved. This is something I plan to change, but it is good to be aware of that in the mean time.
When you save a notebook under a different name, the tab panel will generally lose responsiveness, until you press the "Refresh all tabs" button on the tab panel.
The same typically happens if you "dock" some notebook from Help to be one of the tabs, and then go do a different doc page in the same doc notebook. You have then to press the "Refresh all tabs" button on the tab panel, and then click on the changed tab, to make it again responsive.
The manual is somewhat dated in that is states that there is no exit button, while there actually is one, with the icon of a running man, on both tab panels. When you press it, MIDE will exit, but will save the information about which notebooks were open, in the current workspace. If you reload it again with the same workspace, it will load those notebooks again. NOTE: when it exits, it will close all tabs without saving them or prompting you to do so, so it is best to first manually save all those that need to be saved, to avoid losing work.
Having that said, I've got used to all these quirks and they don't bother me any more, although of course most of them are bugs to be fixed at some point.
Bug reports and suggestions
More than welcome in any case. As I mentioned, I've been working on rewriting MIDE, adding more features, etc. However, having more opinions on current limitations and bugs will help.
I must warn however, that I won't be able to quickly address the bugs, partly because I have very little time to work on MIDE at the moment, partly because this version is not supposed to be the final version, so I don't want to waste efforts on something that will anyway be heavily rewritten and transformed.
That said, making the current version work under Windows is probably not much work, and I may consider doing that if there is enough interest expressed by the community.
Collaboration and future development
I am not opening this for collaboration at this time, because the current version has the wrong architecture, and I plan on rewriting the core of it on my own. Once the core is ready, I plan to put this on Github and make this a normal collaborative project. Hopefully this will happen some time soon.
There are a number of features I plan for it, but I won't list them now, because it's a bit too far away. Once the core is ready, and the project is on Github, I will add a planned list of features.
You can treat this code as being MIT - licensed.