Skip to content
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 some unit tests to validate cohosting configuration #11151

Merged
merged 6 commits into from
Nov 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,14 @@ internal class CohostDocumentColorEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.SupportsVisualStudioExtensions)
{
return [new Registration
{
Method = Methods.TextDocumentDocumentColorName,
RegisterOptions = new DocumentColorRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ internal sealed class CohostDocumentCompletionEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Completion?.DynamicRegistration is true)
{
Expand All @@ -66,7 +66,6 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
{
ResolveProvider = false, // TODO - change to true when Resolve is implemented
TriggerCharacters = CompletionTriggerAndCommitCharacters.AllTriggerCharacters,
DocumentSelector = filter,
AllCommitCharacters = CompletionTriggerAndCommitCharacters.AllCommitCharacters
}
}];
Expand Down Expand Up @@ -188,7 +187,7 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
completionContext.TriggerCharacter);
}

return combinedCompletionList;
return combinedCompletionList;
}

private async Task<VSInternalCompletionList?> GetHtmlCompletionListAsync(
Expand Down Expand Up @@ -219,7 +218,7 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
return rewrittenResponse;
}

private static T? ToVsLSP<T>(object source) where T : class
private static T? ToVsLSP<T>(object source) where T : class
{
// This is, to say the least, not ideal. In future we're going to normalize on to Roslyn LSP types, and this can go.
var options = new JsonSerializerOptions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,14 @@ internal sealed class CohostDocumentFormattingEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Formatting?.DynamicRegistration is true)
{
return [new Registration()
{
Method = Methods.TextDocumentFormattingName,
RegisterOptions = new DocumentFormattingRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,14 @@ internal class CohostDocumentHighlightEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.SupportsVisualStudioExtensions)
{
return [new Registration
{
Method = Methods.TextDocumentDocumentHighlightName,
RegisterOptions = new DocumentHighlightRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ internal class CohostDocumentPullDiagnosticsEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
// TODO: if (clientCapabilities.TextDocument?.Diagnostic?.DynamicRegistration is true)
{
Expand All @@ -59,7 +59,6 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
Method = VSInternalMethods.DocumentPullDiagnosticName,
RegisterOptions = new VSInternalDiagnosticRegistrationOptions()
{
DocumentSelector = filter,
DiagnosticKinds = [VSInternalDiagnosticKind.Syntax]
}
}];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,14 @@ internal sealed class CohostDocumentSpellCheckEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.SupportsVisualStudioExtensions)
{
return [new Registration
{
Method = VSInternalMethods.TextDocumentSpellCheckableRangesName,
RegisterOptions = new TextDocumentRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ internal class CohostDocumentSymbolEndpoint(IRemoteServiceInvoker remoteServiceI

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.DocumentSymbol?.DynamicRegistration == true)
{
Expand All @@ -40,9 +40,6 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
{
Method = Methods.TextDocumentDocumentSymbolName,
RegisterOptions = new DocumentSymbolRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,43 +18,33 @@ namespace Microsoft.VisualStudio.Razor.LanguageClient.Cohost;
#pragma warning restore RS0030 // Do not use banned APIs
internal sealed class CohostEndpointRegistration : IDynamicRegistrationProvider
{
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
return [
// Project Context, for the nav bar
new Registration
{
Method = VSMethods.GetProjectContextsName,
RegisterOptions = new TextDocumentRegistrationOptions()
{
DocumentSelector = filter
}
},
// DidOpen, DidChange, DidClose, for document synchronization
new Registration
{
Method = Methods.TextDocumentDidOpenName,
RegisterOptions = new TextDocumentRegistrationOptions()
{
DocumentSelector = filter
}
},
new Registration
{
Method = Methods.TextDocumentDidChangeName,
RegisterOptions = new TextDocumentChangeRegistrationOptions()
{
DocumentSelector = filter,
SyncKind = TextDocumentSyncKind.Incremental
}
},
new Registration
{
Method = Methods.TextDocumentDidCloseName,
RegisterOptions = new TextDocumentRegistrationOptions()
{
DocumentSelector = filter
}
},
];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,14 @@ internal class CohostFoldingRangeEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.FoldingRange?.DynamicRegistration is true)
{
return [new Registration()
{
Method = Methods.TextDocumentFoldingRangeName,
RegisterOptions = new FoldingRangeRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ internal sealed class CohostGoToDefinitionEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Definition?.DynamicRegistration == true)
{
return [new Registration
{
Method = Methods.TextDocumentDefinitionName,
RegisterOptions = new DefinitionOptions()
RegisterOptions = new DefinitionRegistrationOptions()
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,14 @@ internal sealed class CohostGoToImplementationEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Implementation?.DynamicRegistration == true)
{
return [new Registration
{
Method = Methods.TextDocumentImplementationName,
RegisterOptions = new ImplementationOptions()
RegisterOptions = new ImplementationRegistrationOptions()
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,14 @@ internal class CohostInlayHintEndpoint(IRemoteServiceInvoker remoteServiceInvoke

protected override bool RequiresLSPSolution => true;

public ImmutableArray<VSLSP.Registration> GetRegistrations(VSLSP.VSInternalClientCapabilities clientCapabilities, VSLSP.DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<VSLSP.Registration> GetRegistrations(VSLSP.VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.InlayHint?.DynamicRegistration == true)
{
return [new VSLSP.Registration
{
Method = Methods.TextDocumentInlayHintName,
RegisterOptions = new VSLSP.InlayHintRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,14 @@ internal class CohostLinkedEditingRangeEndpoint(IRemoteServiceInvoker remoteServ

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.LinkedEditingRange?.DynamicRegistration == true)
{
return [new Registration
{
Method = Methods.TextDocumentLinkedEditingRangeName,
RegisterOptions = new LinkedEditingRangeRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,14 @@ private static ImmutableArray<string> CalculateTriggerChars(IEnumerable<IOnAutoI

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.SupportsVisualStudioExtensions)
{
return [new Registration
{
Method = VSInternalMethods.OnAutoInsertName,
RegisterOptions = new VSInternalDocumentOnAutoInsertOptions()
RegisterOptions = new VSInternalDocumentOnAutoInsertRegistrationOptions()
.EnableOnAutoInsert(_triggerCharacters)
}];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,15 @@ internal sealed class CohostOnTypeFormattingEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Formatting?.DynamicRegistration is true)
{
return [new Registration()
{
Method = Methods.TextDocumentOnTypeFormattingName,
RegisterOptions = new DocumentOnTypeFormattingRegistrationOptions()
{
DocumentSelector = filter,
}.EnableOnTypeFormattingTriggerCharacters()
.EnableOnTypeFormattingTriggerCharacters()
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,14 @@ internal sealed class CohostRangeFormattingEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Formatting?.DynamicRegistration is true)
{
return [new Registration()
{
Method = Methods.TextDocumentRangeFormattingName,
RegisterOptions = new DocumentRangeFormattingRegistrationOptions()
{
DocumentSelector = filter
}
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ internal class CohostRenameEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.Rename?.DynamicRegistration == true)
{
Expand All @@ -44,7 +44,6 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
Method = Methods.TextDocumentRenameName,
RegisterOptions = new RenameRegistrationOptions()
{
DocumentSelector = filter,
PrepareProvider = false
}
}];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ internal sealed class CohostSemanticTokensRangeEndpoint(
protected override bool MutatesSolutionState => false;
protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.SemanticTokens?.DynamicRegistration == true)
{
Expand All @@ -55,9 +55,7 @@ public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilitie
{
Method = Methods.TextDocumentSemanticTokensRangeName,
RegisterOptions = new SemanticTokensRegistrationOptions()
{
DocumentSelector = filter,
}.EnableSemanticTokens(_semanticTokensLegendService)
.EnableSemanticTokens(_semanticTokensLegendService)
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,15 @@ internal class CohostSignatureHelpEndpoint(

protected override bool RequiresLSPSolution => true;

public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, DocumentFilter[] filter, RazorCohostRequestContext requestContext)
public ImmutableArray<Registration> GetRegistrations(VSInternalClientCapabilities clientCapabilities, RazorCohostRequestContext requestContext)
{
if (clientCapabilities.TextDocument?.SignatureHelp?.DynamicRegistration == true)
{
return [new Registration()
{
Method = Methods.TextDocumentSignatureHelpName,
RegisterOptions = new SignatureHelpRegistrationOptions()
{
DocumentSelector = filter
}.EnableSignatureHelp()
.EnableSignatureHelp()
}];
}

Expand Down
Loading
Loading