Git Product home page Git Product logo

codetogether-live's Introduction


logo
A fresh take on collaborative coding and IDE live sharing


Live share IDEs and coding sessions with CodeTogether. See changes in real time, even when coding in the same file, like Google Docs for your code. Cross-IDE support for Eclipse, IntelliJ, and VS Code and IDEs based on them. So many uses: pair programming, mob programming, code review, project design, unit testing, education, interviews, remote development, code collaboration and more.

Free plans, including anonymous usage, are always available.

CodeTogether Gif

Key Features

  • Multi-IDE support. Host and join from IntelliJ, VS Code or Eclipse.
  • Browser too. IDE functionality with just a URL, even join from a phone or tablet.
  • Secure. End-to-end encryption & On-Premises option with SSO integration.
  • Real-time editing. See changes immediately, even when editing the same file.
  • Host-based intelligence. Exceptional content assist, validation & navigation for all.
  • Shared consoles & terminals. Host-controlled with optional write access.
  • Share local servers. Expose to your guests web apps running locally.
  • Run Tests and Launches. Easily write, run, re-run tests for red/green refactor TDD.
  • Flexible. Supports multiple groups, easily move between groups or code alone.
  • CodeTogether Teams. Simplifies collaboration with team-centric flows.
  • Efficient. No resource drain, lag time or artifacting like with screen sharing.
  • Intuitive design. Easy to host, easy to join, with no learning curve.

Documentation

Quickstart

On-Premises

Reference

Contact Us

codetogether-live's People

Contributors

aaronlonin avatar brianvfernandes avatar genuiteckanbot avatar hupling avatar janis-gen avatar simonrupar avatar timwebb avatar toddewilliams avatar wgalanciak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codetogether-live's Issues

Files with same name opened in the browser shows the path having session id

Describe the bug
If any file inside the project is found at 2 places just because it is copied from one dir to another dir within the project at the host side, opening both files one after another at the guest side, shows the editor name including the session URL path.

To Reproduce
Steps to reproduce the behavior:

  1. Create a project at the host.
  2. Now copy & paste index.html from the src dir to app dir.
  3. Start a session and open index.html from both places.
  4. Notice that each tab now has a long path including session ID

Expected behavior
That a short path to disambiguate would be good but without sessions.

Screenshots
https://gyazo.com/b6ed4f1d266550861fc79e25d2800cc3

[IntelliJ] Rename on the host side is not reflected correctly

Describe the bug
Rename on the host side is not reflected correctly.

To Reproduce
Steps to reproduce the behavior:

  1. Open file in IntelliJ
  2. Participant joins session
  3. Host renames file
  4. Browser should reflect change

Expected behavior
File correctly renamed in browser.

[Eclipse] Provide generic outline support

Describe the bug
For files that are actively open in Eclipse, we can have our generic language binding provide outline information using the same service used by the outline view in Eclipse.

To Reproduce
Steps to reproduce the behavior:

  1. Open a JEE project in Eclipse
  2. Open in the browser a JSP file
  3. Take control and observe that there is no outline information

Expected behavior
Basic outline information should be serviced from Eclipse.

Screenshots
https://gyazo.com/8dbb80054aa3c105a331c2324780738f

Add support for Git changes visualization

It would be beneficial if after joining a session, it were possible to see what local changes have been made and not yet committed to Git including diff visualization.

Very large search can result in timeout and session disconnect

Describe the bug
Discovered in VS Code but likely happens other places -- if you do a search that results in lots of results, you can get timeouts trying to load files (likely channel is being thrashed with results)

To Reproduce
Steps to reproduce the behavior:
Start a vscode session & take control in the browser.
Open the search view and search for "index", or any keyword which can populate many results.
While the results are loading just Click on the result items, like 2-4 items. [Control is still there ]
Go to vscode, check the ct-view

Expected behavior
Actual: Below are the list of issues:

  1. You will notice that ct-view in vscode shows the Start Session button, i.e. session is internally disconnected.
  2. Status bar (vscode) at the bottom shows that the participant is still connected, however clicking on that does not open the palette so that I can end the session.
  3. At the participant side, it looks like control is still there and goes after a few seconds with a flash message " Lost connection with host" https://gyazo.com/aee95f4984ae0e87e7ad7b048daaddd1 (Control is lost) which means that session is back now. [Expected: Session should be fully terminated/blocked] but actually it's not.
  4. If Participant tries to take control, he sees this message Waiting to host to be idle (https://gyazo.com/3078826e1404330d6317e66019751883) & he cannot take the control.
  5. To establish a successful connection, the host should have to restart the IDE to proceed further.

Screenshots*
rec: https://gfycat.com/idealgrizzledangelwingmussel
SS: https://www.screencast.com/t/EFnXUQTJR6

Improve handling for Image file types (and handle gracefully ones we can't open)

Is your feature request related to a problem? Please describe.
In general, when opening files we don't handle we should deal with gracefully. For images in particular, it would be great if we can render those better.

Describe the solution you'd like
Allow previewing images directly in the browser as a preview browser tab.

Switching files as participant in control is not reflected on host

Describe the bug
When working with multiple editor tabs, you can get into a state where the tab opened in a non-foreground browser (at browser level) is not fully activated and requires clicking somewhere else in the editor space to allow editing and activation events to be fired.

To Reproduce
Steps to reproduce the behavior:

  1. Have 5 files open in Host
  2. Connect Participant
  3. Open those 5 files in participant
  4. Click through files in Host some
  5. Go back to Browser
  6. Take control and switch through files

Expected behavior
Tabs should always become active even when opened with a background browser window.

Extra Details
The issue only happens if you have the browser non-foreground. The workaround is just to click somewhere in the editor and then the tab goes white.

Content Assist displays duplicate proposals for CSS files

Describe the bug
Content Assist displays duplicate proposals for CSS files, such as multiple entries for "body-color" as seen below.

To Reproduce
Steps to reproduce the behavior:

  1. Open a css file
  2. add body { }
  3. Inside body, type background-c and invoke CA
    Notice there are several duplicates listed, like below. Doesn't happen with other file types.

Expected behavior
There should not be any duplicate entries.

Screenshot
image-20200428164309-1

Visualize when a file is loading that was selected in the explorer

Describe the solution you'd like
When you double click a file to open it, it could take about a second or two to open if it hasn't been opened before in the current session. Because of this delay, it's not clear if your double click was registered, I believe other software would show a small loading animation next to the file until it was loaded.

Hide top-evel file actions when not in control (or if not applicable)

Describe the bug
Top-level actions for New File or New Folder should be disabled when not in control. In addition, remove "Add Folder to Workspace" entirely as it is non-functional and used only from Host side.

To Reproduce
Steps to reproduce the behavior:

  1. Connect to session
  2. Try to use action when not in control

Expected behavior
Actions that are not functional should be disabled or hidden.

[IntelliJ] Improve visualization when someone is in control

Describe the solution you'd like
Introduce visualization of control in the editor of IntelliJ, similar to how we do with VS Code and Eclipse with a simple in-editor annotation.

Describe your primary environment
IntelliJ developers.

Describe alternatives you've considered
You can use the presence view as a workaround but it isn't very visual.

After inserting a selected CA proposal by pressing dot, CA is not subsequently being invoked

Describe the bug
After inserting a selected CA proposal by pressing dot, CA is not subsequently being invoked.

This happens having either VSCode and Eclipse as hosts.

To Reproduce
Steps to reproduce the behavior:
The case is, if on browser side you type something, invoke content assist and insert the proposal by typing dot, the selected proposal and the dot are entered correctly but there's no content assist triggered after the dot (as we usually see if we type something and then just enter a dot e.g. cartItem.) and you have to invoke it manually.
However, if you do that on host side as host in control, proposal and dot are inserted and also it opens a new content assist for the proposals after the dot is inserted.

Expected behavior
Content assist should open again to offer subsequent suggestions.

Screenshots
Eclipse vs Browser:
https://gyazo.com/df00f6d561357542e462eb2efe350ad0
https://gyazo.com/73ee62bd8734e4f2f02104b9d25010e9
Vscode vs Browser:
https://gyazo.com/0ef3cd4f0c73adb44671dd1ab487b7bc
https://gyazo.com/0be92e536d4f54f91a3a914209443279

Additional context
The issue is not on the host side, it's on the browser side with the participant in control. The gifs for comparison are to show how it behaves if you try the same case in host editor the CA is invoked in that case (the expected). However, if you try the same on browser side it doesnt.

[IntelliJ] Control is lost when deleting a file if you have more files open at host side

Describe the bug
If a participant delete a file that is open in host, the file is closed in the host side, this provoke that host switch to next editor and participant lost control for the editor switch.

To Reproduce
Steps to reproduce the behavior:

  • As host open some editors
  • as participant take control
  • open the file that you will delete
  • delete the file.
  • participant lost control since host switch editor

Expected behavior
Participant should keep control.

Screenshots
If applicable, add screenshots to help explain your problem.

CodeTogether Host (please complete the following information):

  • IDE: [e.g. Eclipse, VSCode, IntelliJ]
  • IDE Version [e.g. 2020.1, 1.44]
  • OS: [e.g. Windows]
  • OS Version: [e.g. 10]

Browser Participant (please complete the following information):

  • Browser: [e.g. Chrome, Safari]
  • Browser Version: [e.g. 22]
  • OS: [e.g. Windows]

Additional context
Add any other context about the problem here.

Workaround (if any)
Any steps discovered to workaround the issue.

Cursor position is not saved/synced at participant side after re-opening a edited file

Describe the bug
When closing and reopening a file in the browser, the cursor location is different between the host and the browser.

To Reproduce

CASE I: vscode:

  1. Start a session and get control in the browser.
  2. Now open a file & add something. [Note the cursor position]
  3. Save -> Close -> Re-open the file into the editor.

Actual:
At the host, the cursor position is shown by the control icon where it was last in step#2, but at browser, the cursor position is still at (0,0).
Refer: https://i.imgur.com/ggJjrXo.gifv

CASE II: eclipse:

  1. Start a session and get control in the browser.
  2. Now open a file & add something. [Note the cursor position]
  3. Save -> Close -> Re-open the file into the editor.

Actual:
browser side: Cursor position is (0, 0) which looks expected in case of eclipse host
eclipse side: There is no control icon showing or not synced with the browser cursor position.

Cannot read property 'start' logged on browser console

Describe the bug
Log shown in browser:

TypeError: Cannot read property 'start' of null
    at ParticipantNameDecorator.push.../../packages/ct-presence/lib/browser/editing/participant-name-decorator.js.ParticipantNameDecorator.applySelectionDecorations (c:\Users\tim\git\codetogether\packages\ct-presence\src\browser\editing\participant-name-decorator.ts:203:38)
    at c:\Users\tim\git\codetogether\packages\ct-presence\src\browser\editing\editor-sync-contribution.ts:162:5

To Reproduce
Steps to reproduce the behavior:

  1. Have a few editors open but no text selected
  2. Take control in browser
  3. In another participant browser, an error can be logged

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

CodeTogether Host (please complete the following information):

  • IDE: All
  • OS: All

Browser Participant (please complete the following information):

  • Browser: All
  • OS: All

Suggestion - Add participant information to VS Code session

We're missing the following visual information in the Visual Studio Code instance that creates a CodeTogether session:

  • Active participants, without starting another browser session that shows participants.
  • Active controller. A visual cue on which participants currently controls the session.

Control request is not invoked when the participant presses backspace

Describe the bug
Control request is not invoked when the participant presses backspace

To Reproduce
Steps to reproduce the behavior:

  1. Open file in browser
  2. Place cursor after some text
  3. Press backspace

Expected behavior
If not in control, a dialog should be presented to the user to allow taking control.

Browser Participant (please complete the following information):

  • Browser: All

Active editor name has some decoded characters if file name has special chars/space in their name

Describe the bug
The editor name in the Presence view in the browser/IDE has the encoded with some special chars.

To Reproduce
Steps to reproduce the behavior:
1.Create/Open any file having space or some special chars like #.

Expected behavior
URL decode filenames as part of rendering in presence views.

Screenshots
https://gyazo.com/c2ba57ce0e157a08ec12178a1965b641
https://gyazo.com/00b0aa19b58bec605675ed08a2607e66

Scrolling with mouse wheel is too slow

Describe the bug
A user complained that scrolling with the mouse wheel is too slow ("mousewheel is unbearable small steps"). While faster in Chrome than in Firefox, both are still too slow to be usable.

Note: I have a mouse with a optional fluid scrolling mode in which case it's probably an acceptable speed, but it still lacks the acceleration logic that you get in Eclipse.

To Reproduce
Steps to reproduce the behavior:

  1. Open a session in Firefox
  2. Try to scroll using mouse wheel

Expected behavior
Scrolling should be fast enough to navigate a relatively large file.

[IntelliJ][Host] Go to definition set cursor at beginning of the line

Describe the bug
Go to definition set cursor at beginning of the line instead of the direct location for the definition.

To Reproduce
Steps to reproduce the behavior:

  1. Open source in IntelliJ
  2. Take control from the browser
  3. Navigate to corresponding source

Expected behavior
Jump to the direct location for the definition.

Screenshots
Go to definition now is taking you to the line where the var/method is but to the beginning on the line and not the the name:
https://gyazo.com/88c1ed5b6cb6061a1c55b9a6eecd649d
Also if is a method and have comments in the beginning, the cursor is set to the comments:
https://gyazo.com/4a4d2598da5b665786488b8f5379659d

[VSCode] Rename of dirty editor from browser fails

Describe the bug
Rename of dirty editor from browser fails with the dialog looking stuck.

To Reproduce
Steps to reproduce the behavior:

  1. Open a file in browser
  2. Modify file
  3. From Explorer try to rename it

Expected behavior
That the file is renamed and still dirty just like if you renamed it on the host side.

CodeTogether Host (please complete the following information):

  • IDE: VS Code
  • IDE Version 1.44
  • OS: All
  • OS Version: Any

Recent files show files from previous sessions

Describe the bug
We should clean up the recent files list as it may refer to files from different workspace/project.

To Reproduce
Steps to reproduce the behavior:

  1. Make changes in a session
  2. Stop the session and start another one
  3. In new session, see previously modified files

Formatting is not synced & hence host-browser can have different cursor position for same item

Describe the bug
When formatting, changes to the tab size/spacing can cause inconsistencies with subsequent editing.

To Reproduce

CASE I: Formatting applied at Browser side
Steps:

  1. Apply some custom indentation settings at Eclipse at Pref->General->Editors->Text Editors. Eg. Tab Width =7.
  2. Close Prefs by clicking on "Apply & Close".
  3. Start a CT session & open the session URL in the browser.
  4. Grab the Control & Code.
  5. Open any HTML file which has a non-formatted code.
  6. Invoke Formatting from the context menu in the editor.
  7. Once formatting is applied compare the code from browser to host.

Actual:
There is a mismatch in the formatted structure which results in the change in cursor position of some part of the code as because formatting at participant gets applied with tab size 4 (default) & at host it gets applied with the custom settings of the ide (tab size=7, step#1)
refer:
https://share.getcloudapp.com/6qu5kG5A

CASE II: Formatting applied at the host side

  1. Host: Open any file which has custom indentation applied (say tab size =6).
  2. Now Start the session and open the URL in the browser.
  3. By default file opened (in step#1) at host gets open in the browser.
  4. Now match compare the formatted structure of the code from host to browser.

Actual: At the browser side, the formatted editor always shows the content formatted with tab size =4 by default, irrespective of what indentation tab size does the editor is having a host.

[Browser] Search initially returns incorrect results

Describe the bug
Every time you see the results change, enter was pressed shortly before. I had to press enter about 3 times before I got the correct results.

To Reproduce
Steps to reproduce the behavior:

  • When searching continue typing and hitting enter to filter
  • Observe that results can include previous/invalid results

Expected behavior
Results should be refreshed on filter change to show only matches that are still valid and continue refreshing from host.

Screenshots
https://gyazo.com/4a4de8bfd5c1b4d24f1dad488bb0f205

Do not ask for confirmation when closing browser

Describe the bug
When leaving a CodeTogether session, a message is shown about unsaved changes being lost. If the participant is not in control, this dialog should never be shown.

To Reproduce
Steps to reproduce the behavior:

  1. As host, open some files and make changes
  2. In participant watch host, and then try to close tab

Expected behavior
The tab should allow simple navigation away without dialog

[IntelliJ][Host] Previous selection is not restored when reopening a file

Describe the bug
Previous selection is not restored when reopening a file.

To Reproduce
Steps to reproduce the behavior:

  1. Host opens a file.
  2. Host selects the last line.
  3. Host closes the file.
  4. Host reopens the same file.
  5. The cursor shows in browser side at start of file.

Expected behavior
Participant sees the last line is selected.

[IntelliJ] Editor state in browser is inconsistent when IntelliJ auto-save is turned on

Describe the bug
By default IntelliJ is saving changes by default however dirty state is not accurate in browser

To Reproduce
Steps to reproduce the behavior:

  1. Open file in IntelliJ
  2. Connect and watch from browser
  3. Take control and make changes

Expected behavior
The editor should not show dirty as it is auto-saved on IntelliJ side but shows dirty.

[VSCode] Using Go to def to jump to a file in node_modules closes current active editor on host

Describe the bug
Using Go to def to jump to a file in node_modules closes current active editor on host

  • Works fine with CodeMix
  • With VSCode, it works fine if I jump between components but results in below issue if I jump to a module.

To Reproduce
Steps to reproduce the behavior:

  1. On VSCode import an angular project
  2. Start a session
  3. Join as participant
  4. Take control as participant
  5. Open app.module.ts
  6. Use Go to definition to jump to a module in node_modules
    module file is opened on the participant. On the host side, the app.module.ts file is closed and active editor becomes the previously edited file. If no files were edited previously host side has empty set of editors.

Expected behavior
module file is opened on participant and the same file is opened on the host side as well.

Support syntax coloring for .vue files in the browser

Describe the bug
Add support for syntax coloring for .vue files.

To Reproduce
Steps to reproduce the behavior:

  1. Open a Vue project
  2. Open a .vue file in browser
  3. Observe that there is no syntax coloring

Expected behavior
Coloring!

Save As from browser works different from Eclipse

Describe the bug
When using Save As in the browser, the results differ from what is expected on the host. The dirty changes should only show in the new file.

To Reproduce
Steps to reproduce the behavior:

  1. Start a session and join as participant
  2. Take control and edit a file (e.g. test.html)
  3. Save the file under a different name via File > Save as (e.g. test1.html)

Expected behavior
Actual: original file (test.html) is saved with changes and new file (test1.html) is created without the changes
https://gyazo.com/830b5de193f5ab16703b2a7a4aa6e77f
https://gyazo.com/dd441b4f89fde1067f24fb56040c8100

Expected: tested the same on Eclipse side and doing Save As actually saves the changes into the new file and the original file is reverted to the state before the changes were made
https://gyazo.com/9c57e33535cb510a6523d540b820d07e
https://gyazo.com/207da4687143610597dd10f5d785d04f

[IntelliJ] Show update information for optional or required updates

Describe the solution you'd like
On Eclipse and VS Code, if the server indicates an optional or required update is available, the UI shows key information about the update. We should do the same for IntelliJ to make it clearer the benefits of the update that is available.

Describe your primary environment
IntelliJ developers.

Describe alternatives you've considered
Search on Google to find change log.

[IntelliJ] Content assist not working for constructors

Describe the bug
As of now, we're not showing java proposals for constructors, only text proposals for them. Invoking content assist for the constructor part does not bring up any specific language proposals for it, only text proposals.

To Reproduce
Steps to reproduce the behavior:

  1. In a Java file add "import java.io.*;"
  2. In code try to create a new FileInputStream

Expected behavior
We should get content assist for constructors.

Screenshots
https://gyazo.com/ad9f6c55f56f74d37c861aa8dd1c7668

CodeTogether Host (please complete the following information):

  • IDE: IntelliJ
  • IDE Version 2020.1

Navigation not working to referenced files on HTML

Describe the bug
Can not navigate to files in links references or script source in participant side, reproducible on Eclipse and VS Code Sessions.

To Reproduce
Steps to reproduce the behavior:

  1. Start a CT session and connect as participant
  2. Take control in browser
  3. Open a HTML fle with a link or script reference to a css or js file something like
  4. Try to navigate to the file in the href section or in the src in a js script
  5. Nothing happens doing ctrl+click or doing go to navigation

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
https://gyazo.com/69418cdfbff2dae7cd12d8dac21ddc3c

[IntelliJ] Better support for multiple windows/projects

Is your feature request related to a problem? Please describe.
Working in multiple projects at once isn't supported.

Describe the solution you'd like
Currently, we start the session in the context of the current project. If a user opens another project in a new window, session stays active. So in result, it is active from both windows (including content of a Presence view) but actually only the first project is shared.

Describe your primary environment
IntelliJ developer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.