Skip to content

Commit 3f63dd1

Browse files
authored
Revert "Update XAML EA to use DocumentUri instead of System.Uri (#78555)" (#78596)
This was fine in VS, but broke VSCode (until xaml updates). This reverts commit 2611c9a, reversing changes made to f4e6964.
2 parents 0eb510a + 79c2be6 commit 3f63dd1

File tree

7 files changed

+29
-32
lines changed

7 files changed

+29
-32
lines changed

src/Tools/ExternalAccess/Xaml/External/ConversionHelpers.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@
77
using System.Linq;
88
using Microsoft.CodeAnalysis.LanguageServer;
99
using Microsoft.CodeAnalysis.QuickInfo;
10-
using Roslyn.LanguageServer.Protocol;
1110
using LSP = Roslyn.LanguageServer.Protocol;
1211

1312
namespace Microsoft.CodeAnalysis.ExternalAccess.Xaml;
1413

1514
internal static class ConversionHelpers
1615
{
17-
public static DocumentUri CreateAbsoluteDocumentUri(string absolutePath)
18-
=> ProtocolConversions.CreateAbsoluteDocumentUri(absolutePath);
16+
public static Uri CreateAbsoluteUri(string absolutePath)
17+
=> ProtocolConversions.CreateAbsoluteUri(absolutePath);
1918

2019
public static (string content, bool isMarkdown) CreateMarkdownContent(TextDocument document, QuickInfoItem info, XamlRequestContext context)
2120
{

src/Tools/ExternalAccess/Xaml/External/IResolveCachedDataService.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// See the LICENSE file in the project root for more information.
44

55
using System;
6-
using Roslyn.LanguageServer.Protocol;
76

87
namespace Microsoft.CodeAnalysis.ExternalAccess.Xaml;
98

@@ -15,6 +14,6 @@ namespace Microsoft.CodeAnalysis.ExternalAccess.Xaml;
1514
/// </remarks>
1615
internal interface IResolveCachedDataService
1716
{
18-
object ToResolveData(object data, DocumentUri uri);
19-
(object? data, DocumentUri? uri) FromResolveData(object? resolveData);
17+
object ToResolveData(object data, Uri uri);
18+
(object? data, Uri? uri) FromResolveData(object? resolveData);
2019
}

src/Tools/ExternalAccess/Xaml/External/ResolveDataConversions.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,24 @@ internal static class ResolveDataConversions
1717
private record DataResolveData(object Data, LSP.TextDocumentIdentifier Document) : DocumentResolveData(Document);
1818
private record DataIdResolveData(long DataId, LSP.TextDocumentIdentifier Document) : DocumentResolveData(Document);
1919

20-
public static object ToResolveData(object data, DocumentUri uri)
21-
=> new DataResolveData(data, new LSP.TextDocumentIdentifier { DocumentUri = uri });
20+
public static object ToResolveData(object data, Uri uri)
21+
=> new DataResolveData(data, new LSP.TextDocumentIdentifier { DocumentUri = new(uri) });
2222

23-
public static (object? data, DocumentUri? uri) FromResolveData(object? requestData)
23+
public static (object? data, Uri? uri) FromResolveData(object? requestData)
2424
{
2525
Contract.ThrowIfNull(requestData);
2626
var resolveData = JsonSerializer.Deserialize<DataResolveData>((JsonElement)requestData);
27-
return (resolveData?.Data, resolveData?.Document.DocumentUri);
27+
return (resolveData?.Data, resolveData?.Document.DocumentUri.GetRequiredParsedUri());
2828
}
2929

30-
internal static object ToCachedResolveData(object data, DocumentUri uri, ResolveDataCache resolveDataCache)
30+
internal static object ToCachedResolveData(object data, Uri uri, ResolveDataCache resolveDataCache)
3131
{
3232
var dataId = resolveDataCache.UpdateCache(data);
3333

34-
return new DataIdResolveData(dataId, new LSP.TextDocumentIdentifier { DocumentUri = uri });
34+
return new DataIdResolveData(dataId, new LSP.TextDocumentIdentifier { DocumentUri = new(uri) });
3535
}
3636

37-
internal static (object? data, DocumentUri? uri) FromCachedResolveData(object? lspData, ResolveDataCache resolveDataCache)
37+
internal static (object? data, Uri? uri) FromCachedResolveData(object? lspData, ResolveDataCache resolveDataCache)
3838
{
3939
DataIdResolveData? resolveData;
4040
if (lspData is JsonElement token)
@@ -50,6 +50,6 @@ internal static (object? data, DocumentUri? uri) FromCachedResolveData(object? l
5050
var data = resolveDataCache.GetCachedEntry(resolveData.DataId);
5151
var document = resolveData.Document;
5252

53-
return (data, document.DocumentUri);
53+
return (data, document.DocumentUri.GetRequiredParsedUri());
5454
}
5555
}

src/Tools/ExternalAccess/Xaml/External/XamlRequestContext.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
using System;
66
using Microsoft.CodeAnalysis.LanguageServer.Handler;
7-
using Roslyn.LanguageServer.Protocol;
87
using LSP = Roslyn.LanguageServer.Protocol;
98

109
namespace Microsoft.CodeAnalysis.ExternalAccess.Xaml;
@@ -28,14 +27,14 @@ private XamlRequestContext(RequestContext context)
2827
[Obsolete("Use ClientCapabilities instead.")]
2928
public readonly IClientCapabilityProvider ClientCapabilityProvider => new ClientCapabilityProvider(_context.GetRequiredClientCapabilities());
3029

31-
public object ToCachedResolveData(object data, DocumentUri uri)
30+
public object ToCachedResolveData(object data, Uri uri)
3231
{
3332
var resolveDataCache = _context.GetRequiredLspService<ResolveDataCache>();
3433

3534
return ResolveDataConversions.ToCachedResolveData(data, uri, resolveDataCache);
3635
}
3736

38-
public (object? data, DocumentUri? uri) FromCachedResolveData(object? lspData)
37+
public (object? data, Uri? uri) FromCachedResolveData(object? lspData)
3938
{
4039
var resolveDataCache = _context.GetRequiredLspService<ResolveDataCache>();
4140

src/Tools/ExternalAccess/Xaml/External/XamlRequestHandlerBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public XamlRequestHandlerBase(IXamlRequestHandler<TRequest, TResponse>? xamlRequ
2525
public bool RequiresLSPSolution => true;
2626

2727
public LSP.TextDocumentIdentifier GetTextDocumentIdentifier(TRequest request)
28-
=> new() { DocumentUri = GetTextDocumentUri(request) };
28+
=> new() { DocumentUri = new(GetTextDocumentUri(request)) };
2929

30-
public abstract DocumentUri GetTextDocumentUri(TRequest request);
30+
public abstract Uri GetTextDocumentUri(TRequest request);
3131

3232
public Task<TResponse> HandleRequestAsync(TRequest request, RequestContext context, CancellationToken cancellationToken)
3333
=> _xamlRequestHandler?.HandleRequestAsync(request, XamlRequestContext.FromRequestContext(context), cancellationToken) ?? throw new NotImplementedException();

src/Tools/ExternalAccess/Xaml/External/XamlRequestHandlerFactoryBase.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System;
66
using Microsoft.CodeAnalysis.LanguageServer;
77
using Microsoft.CodeAnalysis.LanguageServer.Handler;
8-
using Roslyn.LanguageServer.Protocol;
98

109
namespace Microsoft.CodeAnalysis.ExternalAccess.Xaml;
1110

@@ -37,10 +36,10 @@ public ResolveCachedDataService(ResolveDataCache resolveDataCache)
3736
_resolveDataCache = resolveDataCache ?? throw new ArgumentNullException(nameof(resolveDataCache));
3837
}
3938

40-
public object ToResolveData(object data, DocumentUri uri)
39+
public object ToResolveData(object data, Uri uri)
4140
=> ResolveDataConversions.ToCachedResolveData(data, uri, _resolveDataCache);
4241

43-
public (object? data, DocumentUri? uri) FromResolveData(object? lspData)
42+
public (object? data, Uri? uri) FromResolveData(object? lspData)
4443
=> ResolveDataConversions.FromCachedResolveData(lspData, _resolveDataCache);
4544
}
4645
}

src/Tools/ExternalAccess/Xaml/InternalAPI.Unshipped.txt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
abstract Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TResponse>.GetTextDocumentUri(TRequest request) -> Roslyn.LanguageServer.Protocol.DocumentUri!
1+
abstract Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TResponse>.GetTextDocumentUri(TRequest request) -> System.Uri!
22
abstract Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerFactoryBase<TRequest, TResponse>.CreateHandler(Microsoft.CodeAnalysis.ExternalAccess.Xaml.IXamlRequestHandler<TRequest, TResponse>? xamlRequestHandler, Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService! resolveDataService) -> Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TResponse>!
33
const Microsoft.CodeAnalysis.ExternalAccess.Xaml.Constants.DiagnosticSourceProviderName = "XamlDiagnostics" -> string!
44
const Microsoft.CodeAnalysis.ExternalAccess.Xaml.StringConstants.FactoryMethodMessage = "This factory method only provides services for the MEF export provider." -> string!
@@ -40,8 +40,8 @@ Microsoft.CodeAnalysis.ExternalAccess.Xaml.ILocationService.GetSymbolLocationsAs
4040
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IOnInitializedService
4141
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IOnInitializedService.OnInitializedAsync(Microsoft.CodeAnalysis.ExternalAccess.Xaml.IClientRequestManager! clientRequestManager, Roslyn.LanguageServer.Protocol.ClientCapabilities! clientCapabilities, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
4242
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService
43-
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService.FromResolveData(object? resolveData) -> (object? data, Roslyn.LanguageServer.Protocol.DocumentUri? uri)
44-
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService.ToResolveData(object! data, Roslyn.LanguageServer.Protocol.DocumentUri! uri) -> object!
43+
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService.FromResolveData(object? resolveData) -> (object? data, System.Uri? uri)
44+
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IResolveCachedDataService.ToResolveData(object! data, System.Uri! uri) -> object!
4545
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IXamlDiagnosticSource
4646
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IXamlDiagnosticSource.GetDiagnosticsAsync(Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.Diagnostic!>>!
4747
Microsoft.CodeAnalysis.ExternalAccess.Xaml.IXamlRequestHandler<TRequest, TResponse>
@@ -67,9 +67,9 @@ Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlMethodAttribute.XamlMethodAttribu
6767
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext
6868
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.ClientCapabilities.get -> Roslyn.LanguageServer.Protocol.ClientCapabilities!
6969
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.ClientCapabilityProvider.get -> Microsoft.CodeAnalysis.ExternalAccess.Xaml.IClientCapabilityProvider!
70-
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.FromCachedResolveData(object? lspData) -> (object? data, Roslyn.LanguageServer.Protocol.DocumentUri? uri)
70+
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.FromCachedResolveData(object? lspData) -> (object? data, System.Uri? uri)
7171
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.TextDocument.get -> Microsoft.CodeAnalysis.TextDocument?
72-
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.ToCachedResolveData(object! data, Roslyn.LanguageServer.Protocol.DocumentUri! uri) -> object!
72+
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.ToCachedResolveData(object! data, System.Uri! uri) -> object!
7373
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.XamlRequestContext() -> void
7474
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TResponse>
7575
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TResponse>.GetTextDocumentIdentifier(TRequest request) -> Roslyn.LanguageServer.Protocol.TextDocumentIdentifier!
@@ -80,10 +80,11 @@ Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerBase<TRequest, TRes
8080
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerFactoryBase<TRequest, TResponse>
8181
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerFactoryBase<TRequest, TResponse>.CreateILspService(Microsoft.CodeAnalysis.LanguageServer.LspServices! lspServices, Microsoft.CodeAnalysis.LanguageServer.WellKnownLspServerKinds serverKind) -> Microsoft.CodeAnalysis.LanguageServer.ILspService!
8282
Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestHandlerFactoryBase<TRequest, TResponse>.XamlRequestHandlerFactoryBase(Microsoft.CodeAnalysis.ExternalAccess.Xaml.IXamlRequestHandler<TRequest, TResponse>? xamlRequestHandler) -> void
83-
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ConversionHelpers.CreateAbsoluteDocumentUri(string! absolutePath) -> Roslyn.LanguageServer.Protocol.DocumentUri!
83+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ConversionHelpers.CreateAbsoluteUri(string! absolutePath) -> System.Uri!
84+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ConversionHelpers.CreateHoverResultAsync(Microsoft.CodeAnalysis.TextDocument! document, Microsoft.CodeAnalysis.QuickInfo.QuickInfoItem! info, Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<Roslyn.LanguageServer.Protocol.Hover!>!
8485
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ConversionHelpers.CreateMarkdownContent(Microsoft.CodeAnalysis.TextDocument! document, Microsoft.CodeAnalysis.QuickInfo.QuickInfoItem! info, Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext context) -> (string! content, bool isMarkdown)
85-
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.FromCachedResolveData(object? lspData, Microsoft.CodeAnalysis.LanguageServer.Handler.ResolveDataCache! resolveDataCache) -> (object? data, Roslyn.LanguageServer.Protocol.DocumentUri? uri)
86-
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.FromResolveData(object? requestData) -> (object? data, Roslyn.LanguageServer.Protocol.DocumentUri? uri)
87-
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.ToCachedResolveData(object! data, Roslyn.LanguageServer.Protocol.DocumentUri! uri, Microsoft.CodeAnalysis.LanguageServer.Handler.ResolveDataCache! resolveDataCache) -> object!
88-
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.ToResolveData(object! data, Roslyn.LanguageServer.Protocol.DocumentUri! uri) -> object!
86+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.FromCachedResolveData(object? lspData, Microsoft.CodeAnalysis.LanguageServer.Handler.ResolveDataCache! resolveDataCache) -> (object? data, System.Uri? uri)
87+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.FromResolveData(object? requestData) -> (object? data, System.Uri? uri)
88+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.ToCachedResolveData(object! data, System.Uri! uri, Microsoft.CodeAnalysis.LanguageServer.Handler.ResolveDataCache! resolveDataCache) -> object!
89+
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.ResolveDataConversions.ToResolveData(object! data, System.Uri! uri) -> object!
8990
static Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext.FromRequestContext(Microsoft.CodeAnalysis.LanguageServer.Handler.RequestContext context) -> Microsoft.CodeAnalysis.ExternalAccess.Xaml.XamlRequestContext

0 commit comments

Comments
 (0)