Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2056346
I made a mistake when I originally authored this, but we didn't notice
because we were shipping .NET Framework services so there were files at
the specified location too. Now that we've removed those, this started
to cause exceptions.
Funny story.
When I did my previous PR, I had to bump Roslyn but thought I'd leave
CLaSP alone to simplify the PR, and not confuse this. So this PR is
bumping CLaSP to match and dealing with all of the breaking changes.
There were 2 😁
Part of https://github.com/dotnet/razor/issues/9519
Commit at a time might be easier. Not really sure.
This PR finished off Uri Presentation in cohosting, but more importantly
it brings html document generation to cohosting. The generation is done
completely on-demand as we get a request for a document, and in general
is much simpler than the current system, because whilst we still need to
push the document to a VS buffer, we don't have to wait for the document
to be pushed to VS from the LSP server, and synchronize those two
pushes. This isn't doing any buffer management specifically for
cohosting yet, but all of that is still needed for C# anyway, at the
moment.
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
* Update dependencies from https://github.com/dotnet/arcade build 20240425.1
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.24204.3 -> To Version 8.0.0-beta.24225.1
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: David Wengier <david.wengier@microsoft.com>
All of our formatting passes took an `IClientConnection` but only Html
actually uses it. Cleaning this up gives us a more accurate picture for
cohosting.
* Allow components in global namespace
* Update existing tests
* Fixup baseline
* Test formatting of component in global namespace
* Add design-time codegen test
* Automatically determine where empty root namespace is allowed
* Fixup tooling
* Test more formatting in global namespace
* Fix global namespace testing
* Fix formatting in global namespace
* Check global namespace flag instead of empty string
There's a long discussion about this, but it turns out that CLaSP relies on MEF metadata that exposes System.Types. This means that MEF must load assemblies in order to produce metadata. Recently, one of our co-hosting endpoints unintentionally pulled in Microsoft.CodeAnalysis.Razor.Workspaces by using a protocol type from MS.CA.Razor.Workspaces as generic type argument. Since, CLaSP loads the type, it had to additionally load MS.CA.Razor.Workspaces to satisfy the generic argument.
The fix is easy -- just don't use that protocol type. However, that's not sustainable and this change has started a conversation about potential re-architecture to CLaSP to avoid eagerly loading assemblies.
Fixes an issue Andrew found in speedometer tests. When opening files and
modifying them, before we migrate the document to the "real" project,
things get out of sync.
Also matches some stacks on PRISM, but I think this bug was only
introduced in the last two weeks, so I don't think its the only cause
thats for sure.
This change should address issues in ProjectWorkspaceStateGenerator
where update cancellation was tied to the base IDisposable
implementation in a complex way. This could cause exceptions to be
thrown unnecessarily if the generator is disposed while an update is in
flight. Now we just track a boolean field as we did in the past.
Validation PR to determine impact:
https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/549802
This change should address issues in ProjectWorkspaceStateGenerator where update cancellation was tied to the base IDisposable implementation in a complex way. This could cause exceptions to be thrown unnecessarily if the generator is disposed while an update is in flight. Now we just track a boolean field as we did in the past.
* Support Linked Editing Ranges in Cohosting.
Factored out common code into a static helper and created the remote part of the code as well as cohosting endpoing.
* Removed unnecessary code and comment (CR feedback)
* Adding RazorDocumentServiceBase to deal with common document-related code
* Fixing build break (removing unnecessary using)
* Additional methods that allows not to duplicate work
Related to #10173
This change updates the work to pass `RazorProjectInfo` via LSP to
instead write `RazorProjectInfo` instances to temporary files and pass
the file names via LSP. The files are deleted in the language server
after they are deserialized.