Editor Sessions Plugin for

Name sets of Eclipse tabs and switch between them with ease

Update 16 May 2020 - Plugin has been updated to work with Version: 2020-03 (4.15.0)

Sorry for the delay in getting this fixed. Install and Enjoy! - Chris

Overview

The Editor Sessions tool is designed to help developers manage large numbers of files under Eclipse by allowing them to name groups of open files (tabs) so they can be easily accessed later. When switching from one task to another, the user no longer needs to remember which files were opened for the previous task. You can simply name a set of tabs, close and open a different set of files, and get back to the previous set by switching back to it. When you switch back to a given set, the tool remembers where you were in each file. It also brings the tab you were last working on to the front. In short, it takes you back to exactly where you were when working on that task, what file you were working on, what text you had selected in each file, everything. You can't get that functionality by manually opening each file the old fashioned way.

The Editor Sessions plugin is analogous to the Workspace itself. Just as multiple Workspaces may be used to manage different sets of Eclipse projects, the Editor Sessions plugin may be used to manage different sets of open files within a given Workspace.

The tool is feature rich. You can either snapshot tab sets (set them so that they do not change so they can be used as a reference), or allow a set to change as files are opened and closed during that session. You can also alphabetize tabs. Each session can be set to open tabs alphabetically. The tool even remembers which set of files you had opened previously, allowing you to get back to them with one click. The Alphabetize dropdown menu can be used at any time to sort the currently open set of tabs.

I use this tool all the time. It's very convenient and useful for getting back to previously opened sets of files as I work on different projects and tasks within Eclipse. Prior to writing this tool, like everyone else, I kept old files open for fear of forgetting that I was working on them, thus cluttering up the Eclipse editor with dozens of tiny tabs. Now I can name tab sets and switch between them with ease.

Installation Instructions

You must be running Eclipse Neon 2 or higher to use this OSGi based plugin. To download the latest Eclipse, go here: https://www.eclipse.org/downloads/

If you are upgrading from a version prior to 1.1.2.beta (11 September 2017) and you want to import your existing session data, scroll to the bottom of this page. If you don't care about importing old data you can ignore this step.

Using the Editor Sessions tool

Once installed, the Editor Sessions tool appears as a single menu item under the File menu, just below the Revert menu item. The user interface is somewhat self explanatory.

When you go to File -> Editor Sessions, you will see the following set of submenus.

Create New Session
Create a new session consisting of the currently open set of tabs. From here you can set a couple of behaviors. Clicking "Manual update" means that the session data will not change as tabs are opened and closed. You can always update the file set for this session via the Update menu item. Click the dropdown in the dialog to see what files will be included in the set.
Select Session
Switch to a different set of file tabs. The current set will be closed and a previously saved set will be opened. All selected text and cursor positions will be recalled and the file you were working will be brought to the front. The select dropdown will automatically default to whatever the previous session was. From here, you can also change the behavior settings.
Update Session Info
You can change the name and behavior of the currently selected session. If the session was set to Manual Update, a checkbox allowing you to update the file set included in the session will be presented if the open set of files is different from the set contained in the session. The dropdown slows which files are currently in the set.

Delete Current Session
Deletes the currently selected session.

Export Session Data
Allows you to export your session data to an XML file. At the moment you can't give this file a name, but all current data is exported.

Import Session Data
Imports previously exported session data.

Alphabetize Tabs
Simply sorts the currently open set of tabs.

Interesting Use Cases and Practices

You might think that such a simple tool would have little complexity to it, but after using it for a while I've come up with a few useful ideas.

It was often the case that when I'd save off a session, I'd forget that the session continuously updated the sets of files it tracked. If I had wanted to use that session to remember a basic set of Java files, it would become polluted with additional files as I worked on a project. There are two possible solutions to this.

1: When saving off a set of file tabs, save a second copy as a sort of working set where you expect to remember files as you open and close them. If you want to go back to the original set, you can just switch to it.

2: Check Manual Update when you want to create a reference set. That way the file set won't change as you open and close files. You can always update the set via the Update menu item.

I typically do some combination of 1 and 2. I ialmost always check Manual Update to be safe, unless I know I want a session to be fluid.

Creating different sessions for different parts of a project and checking Manual Update is a common practice lately. When you create a new set, it remembers your choices from the previous set and replicates them, so you don't have to remember to check boxes all the time.

Send Comments

If you would like to send comments to me, bug reports or feature requests please mail me at chrishull42@gmail.com with the subject line "Editor Sessions Plugin". Comments are greatly appreciated.

Current Release, Known Issues, Recent Fixes

The current and likely final version is 1.2.0 posted on 23 September 2017. The only issue I have ever found after months of using the code is mentioned below. Version 1.1.2 and 1.1.2.beta are identical to version 1.2.0. If you installed on or after 11 September, you're good to go.

11 September 2017: 1.1.2.beta
I recently fixed an intermittent bug that caused the tool to do nothing when one of it's menu items was selected. The issue was a straightforward one and was fixed. No other bugs have been reported. I have seen no other problems. The bug caused no harm to user data or Eclipse itself.

Source Code

The code may be viewed on my Github account at https://github.com/chrishull/github-eclipse

Upgrading from a version prior to 1.1.2.beta

Versions prior to 11 September 2017 use an older file format.

If you want to import your old session data, the file format has changed slightly and I didn't write a converter. Modifying the exported session file is simple. Open the EditorSessionsData.xml file that you exported before upgrading and make two changes.

Near the beginning of the file, change this...

to this...(change WorkspaceMap to SessionMapContainer and delete all lines up to SessionMap)

Near the end of the file, change this...

to this...(delete value and entry and change WorkspaceMap to SessionMapContainer)

You should be able to import the file. Once imported, use Select Session to see that your sessions are present. Click Ok if you get the warning dialog.

Links to Other Pages

My Openstack Projects Page (Pluto) Pluto for Openstack
My Career page http://chrishull.com/career
My homepage http://chrishull.com