Getting Started with CodeTogether
Starting and Stopping a Session
You need to register a CodeTogether account before hosting a session. You are asked to provide these credentials the first time you start a session. Once you have an activated account, starting a session is straightforward.
Select Help > CodeTogether > Start CodeTogether, or click Start Sharing in the CodeTogether view to start a session. Once you are done with the session, click the End Session link in the CodeTogether view to end the session.
Open the Command Palette (
Ctrl/Cmd+Shift+P) and use the CodeTogether: Start Session command to start a session. Use the CodeTogether: Stop Session command to end the session.
Inviting and Managing Users in a CodeTogether Session
Once you have started a session, all you need to do is share the Invite URL with your intended participants to have them join your coding session. Participants simply have to open the Invite URL in any modern browser to join the session – no registration, download, or installation required!
Click the Invite Users button in the CodeTogether view to get the Invite URL. This view also displays a list of participants in your session, the ones following you, and any participant who currently has control. You can revoke control from any participant using the Revoke link.
The Invite URL is copied to the clipboard when the session starts, but you can also use the CodeTogether: Invite command to copy the URL to the clipboard at any later time.
The CodeTogether status bar item will show you the number of participants, and whether control has been granted to a participant. Click this item or use the CodeTogether: Manage Session command to revoke control.
For now, you will have to share this URL with your intended session participants manually. In future releases, we’ll be adding integrations for collaboration software like Slack to make joining a session more convenient.
Note: The number of participants that can join a session will be limited by your CodeTogether plan when generally available.
Sessions automatically timeout:
- When no participant joins for 90 minutes
- 45 minutes after the last participant leaves
- After 90 minutes of inactivity
Participant Session Basics
Participants have access to all files in the host’s workspace. Workspace resources can be browsed and opened through the Explorer view. Future versions of CodeTogether will allow a host to control exactly which part of the workspace he wishes to share.
Following the Host or Other Participants
A participant can follow a host or any other participant in the session. In follow mode, any file/editor opened/activated by the person being followed, is immediately activated on the participants side as well. The participant can navigate away to another editor tab or open a new file, but any selection or typing by the person being followed results in focus being brought back to the editor in which the changes are being made. Participants see these changes almost instantaneously at their end.
When joining a session, a participant is set up to follow the host. To unfollow the host, click the Follow Host toggle on the toolbar.
To request control from the host, a participant can simply click the Control & Code toggle on the toolbar. If the host is not actively typing, control is given to the participant requesting access. The participant can now edit and save files in the workspace. When a participant is making changes, the host automatically follows the participant across files, and see the changes being made by the participant almost instantaneously.
The host seamlessly regains control once the host starts editing a file, though the participant can also relinquish control by using the same toggle.
Changing Your Name
Participants are given random animal names on joining a session. To change this name, simply click your current name in the status bar and specify your new name. The new name is used for all future sessions joined from the same browser. The name can be changed at any time.
Use this view to see a list of participants in the session. Using the context menu, a participant can choose to follow/unfollow other participants, or the host.
The participant can also use the context menu on the host node to request or relinquish control.
Browsing and Editing Features Available to Participants
Even though participants join a CodeTogether session through a browser, they get a full-fledged IDE experience.
Browsing features can be used without control access on the host. As a participant, you can unfollow the host and navigate the code base even as the host continues work in other areas of the workspace.
You can use the Explorer view (View > Explorer) to dive into the projects in the host’s workspace. Expand any folder and double click any resource to open it. You can also use Quick Open
Ctrl/Cmd+P to filter through and open any file in the workspace.
Peek/Go to Definition
Pressing Ctrl/Cmd while hovering over an element shows you the definition of the element inline. You can click the hyperlink to navigate to the definition, whether in the same file or another. Alternatively, use the Go to Definition context menu item to navigate.
From the context menu of an element, choose the Peek References item to pull up all references to the element inline. You can examine each reference in detail without leaving your current editing context.
Documentation on Hover
If you hover over an element you will see corresponding documentation if available.
Outline/Go to Symbol
The Outline view (View > Outline) displays a structural outline of the file being currently edited. You can use the Outline view to navigate within the file.
You can also use Go to Symbol (
Ctrl/Cmd+Shift+O) to open up a filterable list of symbols to quickly navigate to a particular symbol in the file you’re currently editing.
File Content Search
Use the Search view (View > Search) to search for text within file contents. Regular expressions are supported and you can navigate directly to the matched section from the search results.
To edit code, you need Control access from the host. Besides basic editing capabilities like undo, redo, and clipboard access, the following code features are available.
Ctrl+Space to invoke content assist. On accepting a proposal, you can press Tab to jump from one parameter stop to the next as you key in the parameters to a constructor or method.
Errors from the host workspace appear in all participant sessions. This includes errors from files that are not currently open or being edited, as long as the host has validated those files.
Errors typically appear and disappear as you type, as validation takes place on the host and the markers are transferred over to the participants.
To see a list of all errors, you can open the Problems view (View > Problems) from where you can easily navigate to the referenced files.