- Collaboration services aren't guaranteed to be invoked in a particular order. If the guest initialization service was not invoked prior to the snapshot synchronization service then the synchronization service would null ref when resolving guest paths because the `LiveShareSessionAccessor.Session` would not be set yet.
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/786078
- Added general C# 8 tests that we can use to include nullability when the time comes.
- Added statement test to ensure syntax tree is correct for await foreach.
aspnet/AspNetCore#5078
Two changes:
* Update packages to 3.0.0-preview3.$(buildnumber) per latest 3.0 plan from the PMs
* Update packages to use SemVerV2 like most other repos are doing. Preview 1 of the packages in this repo were released with SemVer v1 "3.0.0-preview-18579-0056". We didn't update to SemVer v2 like everyone else because semver v2 would have sorted as "older" than 3.0.0-preview-18579-0056. But, now that we're updating the prerelease label to "preview3", semverv2 packages should appear as newer than 3.0.0-preview-18579-0056.
- Because we need to expose a LiveShare session globally to multiple services there was a situation where if the `GuestInitializationService` was instantiated after the snapshot synchronization service then we wouldn't have access to the current collaboration service via the `LiveShareSessionAccessor`. This is ok though, because in our synchronization service we're already passed the session context which we can just use directly.
- `GuestProjectPathProvider`can't actually return a null guest path if it's asked, so also removed the null coalescing on the `LiveShareSessionAccessor`'s `Session`.
- Fixed tests.
- Changed the LiveShare model from posting its entire state after every ProjectSnapshotManager event to post just the event state and then maintain the project manager on the guest.
- Because of the recent design change to abstract `ProjectSnapshots` away from a Roslyn project I was able to remove all `ProjectSnapshot`/`ProjectSnapshotManager` custom LiveShare implementations to decouple ourselves from LiveShare's remote language service workspace.
- Changed how we detect remote sessions. Instead of relying on an internal API we now look for a specific UI context that only exists during a LiveShare guest session.
- Changed the project snapshot handle proxies to use `ProjectWorkspaceState` instead of directly transporting TagHelpers.
- Updated the `RazorGuestInitializationService` to use public file list APIs to pre-download ViewImports for Razor projects.
- Updated tests to consume new product bits.
aspnet/Razor.LiveShare#47
- Changed the LiveShare model from posting its entire state after every ProjectSnapshotManager event to post just the event state and then maintain the project manager on the guest.
- Because of the recent design change to abstract `ProjectSnapshots` away from a Roslyn project I was able to remove all `ProjectSnapshot`/`ProjectSnapshotManager` custom LiveShare implementations to decouple ourselves from LiveShare's remote language service workspace.
- Changed how we detect remote sessions. Instead of relying on an internal API we now look for a specific UI context that only exists during a LiveShare guest session.
- Changed the project snapshot handle proxies to use `ProjectWorkspaceState` instead of directly transporting TagHelpers.
- Updated the `RazorGuestInitializationService` to use public file list APIs to pre-download ViewImports for Razor projects.
- Updated tests to consume new product bits.
aspnet/Razor.LiveShare#47
* Update dependencies from https://github.com/dotnet/arcade build 20190201.16
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19101.16
* Update dependencies from https://github.com/dotnet/arcade build 20190202.1
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19102.1
- Removed the differences of workspace project and `HostProject` in regards to `ProjectSnapshotManager` methods. We now just have `ProjectAdded`, `ProjectRemoved` etc.
- Obsoleted Workspace related members from the `ProjectSnapshot`in order to ensure that current LiveShare continues to work. Once LiveShare has been incorporated into Razor we can remove these members from the project snapshot.
- Removed several TagHelper calculating logic pieces from the document tracker. This is now done entirely from the ProjectSnapshotManager so there's no secondary route that needs to be taken in order to resolve TagHelpers for VS windows cases.
- Updated the `ProjectState` to take in TagHelpers and removed the internal logic it had to resolve TagHelpers.
- Added a TagHelpers property to ProjectSnapshot to indicate that they're no longer calculated, they're part of the project inputs.
- Added a ProjectWorkspaceChange generator to be responsible for calculating any workspace related information that is needed for a `ProjectSnapshot`. For now, this just calculates TagHelpers but in the future it may do more.
- Added a `FilePathComparison` static helper class which acts similarly to `FilePathComparer`.
- Changed our dynamic file info provider to no longer care about `ProjectIds`. Before this, it kept track of the project ids internally but never used them so this is a noop functional change.
- Changed how the out of process remote TagHelper resolution flow works. Prior to this you'd pass a Project across the wire as part of a project snapshot handle and then resolve TagHelpers the old fashioned way.
- Updated all existing tests to respect the new `ProjectWorkspaceState` flows.
- Added tests for new APIs.
#6672
- The SDK tests were occasionally failing with access denied due to the test using the machines dotnet.exe (instead of the local projects dotnet.exe).
#1667
This change updates the following dependencies
- Microsoft.Extensions.DependencyModel - 3.0.0-preview-27330-4
- Microsoft.NETCore.App - 3.0.0-preview-27330-4
This change updates the following dependencies
- System.Text.Encodings.Web - 4.6.0-preview.19080.5
- System.Diagnostics.DiagnosticSource - 4.6.0-preview.19080.5
This change updates the following dependencies
- Microsoft.Extensions.DependencyModel - 3.0.0-preview-27329-4
- Microsoft.NETCore.App - 3.0.0-preview-27329-4
This change updates the following dependencies
- System.Text.Encodings.Web - 4.6.0-preview.19079.11
- System.Diagnostics.DiagnosticSource - 4.6.0-preview.19079.11
As part of migrating the CodeGeneration targets in to the Razor.Sdk,
the SDK broke the contract that RazorReferencePaths includes the full closure
of assemblies during tag helper discovery.
This change restores the behavior to be compatible with the 2.x Razor.Design
package and adds tests to verify TagHelper discovery works in a range of projects.
Fixes https://github.com/aspnet/AspNetCore/issues/6825
* Remove unused package versions
* Remove references to Html.Abstractions
Removing this package since it's from the aspnet/AspNetCore.
* Remove System.ValueTuple package inside remove
* Add versions.details.xml items from corefx
* Add Microsoft.NETCore.App
* Fill up Version.Details.xml
* Update dependencies
* Fix failing test
- This change enables our parser to return a background completable task instead of waiting for the document structure notifications on the foreground thread.
- When changing the system to resolve all data on the background thread I ran into several races which triggered severe delays/timeouts/deadlocks when running through completion scenarios. To fix these issues I had to tie into our current partial parsing and snapshot tracking systems to properly complete tasks without crashing VS.
- Had to make a slight hack of returning the latest partially parsed syntax tree which maintains its original diagnostics/source document.
- There were some unrelated issues that result in a completion request aborting mid-flight, because of this changed the API to properly consume a cancellation token.
- Added unit parser tests for the `DefaultVisualStudioRazorParser`
- Added an integration test to verify the partial parsing interaction with `GetLatestSyntaxTreeAsync`.