Plan for Developing Saros for IntelliJ IDEA

The "old Saros", which only supported Eclipse, resided in the dpp package. However, many classes from the dpp package are (or at least should be) independent from Eclipse. To limit the amount of rework necessary for the IntelliJ IDEA version of Saros, we decided to extract all IDE-independent sourcecode into a Saros Core project (package dpp.core). Hence, there are two major tasks:

  1. Maintain the Saros Core: Identify code that should be IDE-independent, create appropriate abstractions, and move common logic and the abstractions to the Core project.
  2. Implement Saros for IntelliJ: Use the Core functionality to create an IntelliJ IDEA plugin that (for a start) resembles the Eclipse version of Saros.

Implementing Saros for IntelliJ

If you wish to contribute to Saros for IntelliJ, check out the open feature requests on Sourceforge.

Currently Saros for IntelliJ has only the basic Saros functionality:

  • Starting sessions
  • Sharing projects
  • Concurrently adding files
  • Contribution annotations
  • Follow mode.

However, the synchronization is still rather unstable and many features from Saros/E are still missing, like additional awareness information in files and gutters.

You can check the current state of Saros on the IntelliJ project on GitHub

If you are interested in contributing to Saros/I, the feature requests at SourceForge serve as a good point to pick a task.

You'll find additional information in a semi-structured form in these two Google Docs:

Maintaining the Saros Core

In its current form, the Saros Core should be thought of not as a reusable component with a clearly defined API, but more of a framework that sets the structure of individual Saros variants.

For a "complete Saros", the Core requires the following elements to be implemented:

  • ...

The following things do not pose hard requirement, but should be implemented to follow Saros's architecture: