Director of Customer Engagement - Loves technology and almost everything related to computing. Wants to help you write better software. Follow at @brianfernandes.
Posted on Jul 6th 2020
There are screen sharing tools, there are pair programming tools . . . and then there’s CodeTogether. CodeTogether 2.0 provides such a superlative “coolaborative” programming experience, that once you try it, you won’t be able to settle for anything else. There’s a lot coming in this version, from support for additional languages to being able to use your favorite key bindings, but our new shared control framework is surely the pièce de résistance. Let’s get right into it.
Dive Right In!
In CodeTogether 2.0, multiple groups of developers, as well as individual developers, can code, or browse the shared workspace, simultaneously. That’s right, simultaneous coding is here – this has been our most requested feature and we’re happy to be coming through with a rock solid implementation in this release.
Whether in a group or alone, to start coding, a developer simply needs to start typing. Unlike prior versions of CodeTogether, there is no need to request control, no hotkey to press, and no confirmation dialog to step through. Several developers can be editing different files at the same time. If multiple developers are actively editing the same file, CodeTogether ensures they don’t type over each other.
Together or Alone
When you join a session, you will be placed in a group with other developers. All members of the group share the same editing context – the same cursor position and the same selection, in the same file. Any member of the group can drive the session by opening new files, making selections or editing code. Other members in the group will follow the driver.
Don’t want to be part of a group? All you need to do is flip the CodeTogether toggle off, and you’re now coding alone. In this mode, you can go anywhere you want, code anywhere you want, and you won’t be disrupting anyone else in the session – you won’t pull them along with you as you code/move through the workspace.
When you want to rejoin your fellow developers, click a member’s link in the CodeTogether view to join that member’s group. If they were coding alone, a new group is created with the two of you. Alternatively, you can just flip the toggle to be placed in the largest group automatically.
Choose Your IDE Experience
We know the pros love their key bindings, and so having to use a different set when coding in the browser must make things a bit cumbersome. In this release you can now customize your bindings – choose between Eclipse, IntelliJ and VS Code bindings for a smoother coding experience. And that’s not all, you can modify the look and feel of the browser to match your preferred IDE as well. Change these selections at any time using File > Settings > CodeTogether: Change IDE Experience.
See a squiggly line? Position your cursor on it to display any quick fixes that might be available for the error. Click the bulb and choose the desired fix action to execute. More such IDE aids are coming in future releases.
Via a Docker image, CodeTogether can now be deployed behind the firewall for even greater control over source exposure. Please see this page for additional details.
We’re continuing to improve our support for IntelliJ as a host with the following IntelliJ specific fixes:
CodeTogether now understands projects with multiple modules and content roots – source no longer has to be physically present within your project for it to be accessible in a shared session.
When invoking content assist in the browser, method arguments and return types are also suggested.
We made further fixes to proxy support, you are now able to host sessions without issue even when you’re connected through a proxy.
You can now host separate CodeTogether sessions from multiple IntelliJ windows.
With other developers in the same file you have active, you will be able to see their cursor locations/selections in the IDE.
Miscellaneous Fixes and Enhancements
We’ve added syntax highlighting for Scala and Twig.
You won’t have to scroll past dozens of Java imports, they’re now automatically collapsed.
With an Eclipse host, as-you-type validation would not work for DLTK based editors, like the PHP editor – now fixed.
We’ve put additional work into displaying more detailed outlines across hosts and across languages. Work in this area continues.
If you had a large number of errors in a file, it could result in slower typing and relaying of changes between browser and host.
Browsers now retain the full session URL in the address bar. This means that refreshing the browser will drop you back into the same session without issue. The URL can also be copied and shared with others.
If your browser window was not focused while connected to a session, bringing the browser to the foreground could result in a painfully slow replay of all the changes you missed. We will now show you the latest state of the file immediately.
Installation issues affecting the Arduino Pro IDE and IBM’s IDz have been fixed.
When a participant joined a session, errors would only be visible after the host made some edits. These will now be visible immediately.
If a search returns a lot of results, you could get timeouts trying to load files, and the session could disconnect – this no longer happens.
With an Eclipse host, formatting would fail for several file types, this has been fixed.
Scala Syntax Highlighting
As always, thank you for the support and feedback, send us a shout on Twitter, or if you’d like to catch our team live, drop in on our CodeTogether Gitter community. If you like working with CodeTogether, please do us a favor and tell your friends and colleagues about us – thank you!