Collaborative Coding Improvements— Coding Together, More Intuitive than Ever
In addition to the new mode, we’ve made several changes to the collaborative experience that will make it even easier to work together in a CodeTogether session.
We’ve moved from a Room concept to Virtual Cursors, as many first-time users found the idea of “rooms” confusing. If you’ve been with us for a while, don’t worry—virtual cursors work in exactly the same way as rooms did, albeit with an improved UI in the CodeTogether view. If you want to code with a group, simply share a virtual cursor with them as opposed to joining the same room.
In a related change, when you host a session you can choose whether guests who join will start by sharing your cursor, or get their own cursor. You can also leave this decision to them.
Joining Process & Large Project Support
When you join a session from an IDE, a dialog will visualize the connection status and progress, guests can see their initial cursor mode and even choose a mode if allowed by the host.
This also addresses a long standing issue we’ve had where sessions hosting large projects/workspaces could not be joined from an IDE. CodeTogether will now ensure that required workspace metadata like the resource tree is loaded before you join the session, with clearly displayed progress. This prevents the crash that would occasionally occur in prior versions.
Dynamic Driver Mode
In the dynamic driver mode, we’ve significantly improved intelligence behind automated driver assignment. Actions beyond editing code, like use of content assist and interaction with IDE dialogs, will now also be taken into account when evaluating driver activity, and a driver is less likely to lose the driver role when they stop typing. As a result, Dynamic Driver Mode now behaves in a much more predictable and intuitive manner.
Pseudo Alone Mode
Even when you’re not a driver, we allow you to break away from the driver to run your own analysis or even make edits (if session permissions allow). CodeTogether will intelligently allow you enough time to make changes or browse code, bringing you back to the driver when appropriate. The time allocated for changes/browsing will be dynamically extended with continued activity on your part.
Controls that allow you to choose another driver, start watching another participant or start coding independently have been overhauled. The state you are currently in is more clearly indicated and easy to change. You will find these controls in the editor border area for IntelliJ & Eclipse, in the status bar and toolbar for VS Code, and in the menu bar for browser clients.
A feature asked for often, when a driver scrolls in a file, followers’ editors will follow to ensure they display the same code. The driver no longer needs to explicitly change his cursor location or make a selection for the followers’ editors to sync.
More details on each of these enhancements can be found in our Session Basics documentation.