New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add guest support for multi-root workspaces / solutions #46

Open
Chuxel opened this Issue Jan 16, 2018 · 15 comments

Comments

Projects
None yet
10 participants
@Chuxel
Collaborator

Chuxel commented Jan 16, 2018

Currently Live Share only supports a single root folder.

  • In VS Code, this means the recently added multi-root workspace feature is not yet supported for guests.
  • In VS, this means files from projects referenced in a solutions that are not in a folder at or underneath the solution file will not appear for guests.

This feature requests adding these capabilities into Live Share.

@lostintangent

This comment has been minimized.

Collaborator

lostintangent commented Jan 16, 2018

Additionally, it would be great to hear feedback about whether folks want to share "loose files" that they open during a collaboration session, but aren't actually part of the shared solution (VS) or workspace (VS Code).

@lumaxis

This comment has been minimized.

lumaxis commented Feb 28, 2018

@Chuxel Any idea where this is on your priority list?

@Chuxel

This comment has been minimized.

Collaborator

Chuxel commented Feb 28, 2018

@lumaxis It's definitely one we know is important. Out of curiosity, what is your use case? Are you In VS or VS Code?

@lumaxis

This comment has been minimized.

lumaxis commented Feb 28, 2018

In the VS App Center team, we are running several Node.js services which are mostly developed using VS Code. Recently, we also moved to one big mono-repo. In the mono-repo, we have several .code-workspace files that give us an immediately great dev experience for a certain combination of the projects in our mono-repo.

In my team, we also focus on knowledge sharing and try to do pairing and collaboration as much as possible. For those purposes, we recently started using Live Share as a tool, especially for the parts of our team that are remote.
Without support for multi-root workspaces, we today however have to open the entire mono-repo folder in the Live Share workspace and that understandably gets a bit confusing and sometimes also slow 🙂
Does that help @Chuxel ?

@Chuxel

This comment has been minimized.

Collaborator

Chuxel commented Feb 28, 2018

@lumaxis Yes, that's great info! Makes complete sense. This is definitely on-roadmap and we know it's important for VS solutions so it's great to hear about a concrete scenario like this for VS Code too given workspaces is a new-ish feature in the tool.

@TroySchmidt

This comment has been minimized.

TroySchmidt commented Mar 28, 2018

My example use case is converting a React Javascript app to TypeScript so setup a multi-root workspace with both folders that sit side by side to do the conversion. But when Live Sharing came across this issue.

@MarioLiebisch

This comment has been minimized.

MarioLiebisch commented Apr 19, 2018

In my use case I'm trying to share a project built with CMake (Visual Studio as host).

📁 Project Root
  📁 build
    📃 ALL_BUILD.vcxproj
    📃 CMakeCache.txt
    📃 project.sln
    📃 <other VS files>
  📁 source
    📃 CMakeLists.txt
    📃 main.cpp
    📃 <other source files>
📃 CMakeLists.txt

None of the source files appear for a VS Code client, since they're outside the solution folder (i.e. build here).

@Chuxel

This comment has been minimized.

Collaborator

Chuxel commented Apr 24, 2018

Merging in #240 from @mihe, @DJLink


Issue from @mihe

Product and Version: VS 15.6.4, VS Code 1.22.2
OS Version: Windows
Live Share Extension Version: 0.2.400.25910 (VS), 0.2.405 (VS Code)
Target Platform or Language: C++

Steps to Reproduce / Scenario:

  1. Create a C++ solution in VS 2017 (15.6.4).
  2. Add to the solution a .cpp file that's located somewhere on disk that's not under the same file tree as the .sln file.
  3. Host a VS Live Share session.
  4. Join said session from either VS or VS Code.
  5. Note how the solution explorer in either client editor bases its solution explorer solely on the folder where the .sln file is located, and doesn't take the actual layout of the solution into consideration.
  6. Also note that when the host opens the file added in step 2 the client won't be able to see it.

This creates problems with any project where the .sln file isn't placed in some common parent directory to all of the source files. Unreal Engine 4 projects are one of those cases, where UE4.vcxproj (containing the source of the engine itself) is almost always placed outside of the scope of the .sln file.


Reply from @DJLink

I have this same issue. Some extra information, once I start a debug session and put a breakpoint in one of those files outside the project it will show on the other user session too, during that debug session

@matt-neal

This comment has been minimized.

matt-neal commented Apr 24, 2018

Further information for implementation and use-case, I work on a team developing full-stack on our own server and front-end architecture. The way our server runs, each of our products is a separate module, which I have open as separate folders within the workspace to keep from having massive, difficult to navigate file trees.
Obviously, for now, I can just utilize the server file and work from there, but ideally it would be nice to work in a per-product workspace with all dependencies loaded.

mschulz-msft pushed a commit that referenced this issue Apr 27, 2018

@hknielsen

This comment has been minimized.

hknielsen commented May 9, 2018

@Chuxel What are the state of this issue?
All our sln's live in a separate folder hierarchy than our csprojs. So there are no *.cs's to live share.

Really looking forward for this, collaboration will improve so much when we can use local IDE instead of remote screen sharing.

@racemaniac

This comment has been minimized.

racemaniac commented Jun 6, 2018

Had the same issue, but also found a simple workaround that helped for how we wanted to use it: In visual studio select the solution file you want to share, and then in the file menu select save as. Save the solution file in a higher up directory where everything you need is in, and then for liveshare open that copy of the solution instead.
Until this is fixed this should at least allow you to share everything you need.

@cevn

This comment has been minimized.

cevn commented Jul 3, 2018

This workaround only works for folders that can be co-located unfortunately. I have a workspace mixing golang and node and have no desire to put my javascript in my $GOPATH.

@jpike88

This comment has been minimized.

jpike88 commented Aug 8, 2018

I've had to make a single folder for live share to work again. Shame this isn't higher up as a priority.

@lostintangent

This comment has been minimized.

Collaborator

lostintangent commented Aug 8, 2018

@jpike88 Apologies for that inconvenience! Not only is this high priority, but we’re actually very close to finishing the work to fully support this. We’ll keep everyone updated on progress in the coming weeks 👍

@lostintangent

This comment has been minimized.

Collaborator

lostintangent commented Aug 29, 2018

FYI, the latest version of Live Share adds support for multi-root workspaces in VS Code! You should be able to open multiple roots and simply click the Share button 🚀 Please let us know if you run into any issues, and we appreciate everyone's patience, and for putting up with some of the aforementioned workarounds 😄

We're working on the equivalent support in VS, and will keep everyone posted on progress. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment