Move TagHelperFactsService and export it.
- Created a `TagHelperFactsServiceInternal` and export its public counterpart in `Microsoft.VisualStudio.Editor.Razor`. - Updated tests to react to new naming. #1762
This commit is contained in:
parent
520876e55d
commit
458111ad03
|
|
@ -11,10 +11,10 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
{
|
||||
internal class DefaultTagHelperCompletionService : TagHelperCompletionService
|
||||
{
|
||||
private readonly TagHelperFactsService _tagHelperFactsService;
|
||||
private readonly TagHelperFactsServiceInternal _tagHelperFactsService;
|
||||
private static readonly HashSet<TagHelperDescriptor> _emptyHashSet = new HashSet<TagHelperDescriptor>();
|
||||
|
||||
public DefaultTagHelperCompletionService(TagHelperFactsService tagHelperFactsService)
|
||||
public DefaultTagHelperCompletionService(TagHelperFactsServiceInternal tagHelperFactsService)
|
||||
{
|
||||
_tagHelperFactsService = tagHelperFactsService;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
{
|
||||
public ILanguageService CreateLanguageService(HostLanguageServices languageServices)
|
||||
{
|
||||
var tagHelperFactsService = languageServices.GetRequiredService<TagHelperFactsService>();
|
||||
var tagHelperFactsService = languageServices.GetRequiredService<TagHelperFactsServiceInternal>();
|
||||
return new DefaultTagHelperCompletionService(tagHelperFactsService);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Razor.Language;
|
|||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
{
|
||||
internal class DefaultTagHelperFactsService : TagHelperFactsService
|
||||
internal class DefaultTagHelperFactsServiceInternal : TagHelperFactsServiceInternal
|
||||
{
|
||||
public override TagHelperBinding GetTagHelperBinding(
|
||||
TagHelperDocumentContext documentContext,
|
||||
|
|
@ -6,12 +6,12 @@ using Microsoft.CodeAnalysis.Host.Mef;
|
|||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
{
|
||||
[ExportLanguageServiceFactory(typeof(TagHelperFactsService), RazorLanguage.Name, ServiceLayer.Default)]
|
||||
internal class DefaultTagHelperFactsServiceFactory : ILanguageServiceFactory
|
||||
[ExportLanguageServiceFactory(typeof(TagHelperFactsServiceInternal), RazorLanguage.Name, ServiceLayer.Default)]
|
||||
internal class DefaultTagHelperFactsServiceInternalFactory : ILanguageServiceFactory
|
||||
{
|
||||
public ILanguageService CreateLanguageService(HostLanguageServices languageServices)
|
||||
{
|
||||
return new DefaultTagHelperFactsService();
|
||||
return new DefaultTagHelperFactsServiceInternal();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis.Host;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
{
|
||||
internal abstract class TagHelperFactsServiceInternal : ILanguageService
|
||||
{
|
||||
public abstract TagHelperBinding GetTagHelperBinding(TagHelperDocumentContext documentContext, string tagName, IEnumerable<KeyValuePair<string, string>> attributes, string parentTag, bool parentIsTagHelper);
|
||||
|
||||
public abstract IEnumerable<BoundAttributeDescriptor> GetBoundTagHelperAttributes(TagHelperDocumentContext documentContext, string attributeName, TagHelperBinding binding);
|
||||
|
||||
public abstract IReadOnlyList<TagHelperDescriptor> GetTagHelpersGivenTag(TagHelperDocumentContext documentContext, string tagName, string parentTag);
|
||||
|
||||
public abstract IReadOnlyList<TagHelperDescriptor> GetTagHelpersGivenParent(TagHelperDocumentContext documentContext, string parentTag);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.Composition;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis.Razor;
|
||||
|
||||
namespace Microsoft.VisualStudio.Editor.Razor
|
||||
{
|
||||
[System.Composition.Shared]
|
||||
[Export(typeof(TagHelperFactsService))]
|
||||
internal class DefaultTagHelperFactsService : TagHelperFactsService
|
||||
{
|
||||
private readonly TagHelperFactsServiceInternal _tagHelperFactsService;
|
||||
|
||||
[ImportingConstructor]
|
||||
public DefaultTagHelperFactsService(VisualStudioWorkspaceAccessor workspaceAccessor)
|
||||
{
|
||||
var razorLanguageServices = workspaceAccessor.Workspace.Services.GetLanguageServices(RazorLanguage.Name);
|
||||
_tagHelperFactsService = razorLanguageServices.GetRequiredService<TagHelperFactsServiceInternal>();
|
||||
}
|
||||
|
||||
public override TagHelperBinding GetTagHelperBinding(
|
||||
TagHelperDocumentContext documentContext,
|
||||
string tagName,
|
||||
IEnumerable<KeyValuePair<string, string>> attributes,
|
||||
string parentTag,
|
||||
bool parentIsTagHelper)
|
||||
{
|
||||
return _tagHelperFactsService.GetTagHelperBinding(documentContext, tagName, attributes, parentTag, parentIsTagHelper);
|
||||
}
|
||||
|
||||
public override IEnumerable<BoundAttributeDescriptor> GetBoundTagHelperAttributes(
|
||||
TagHelperDocumentContext documentContext,
|
||||
string attributeName,
|
||||
TagHelperBinding binding)
|
||||
{
|
||||
return _tagHelperFactsService.GetBoundTagHelperAttributes(documentContext, attributeName, binding);
|
||||
}
|
||||
|
||||
public override IReadOnlyList<TagHelperDescriptor> GetTagHelpersGivenTag(
|
||||
TagHelperDocumentContext documentContext,
|
||||
string tagName,
|
||||
string parentTag)
|
||||
{
|
||||
return _tagHelperFactsService.GetTagHelpersGivenTag(documentContext, tagName, parentTag);
|
||||
}
|
||||
|
||||
public override IReadOnlyList<TagHelperDescriptor> GetTagHelpersGivenParent(TagHelperDocumentContext documentContext, string parentTag)
|
||||
{
|
||||
return _tagHelperFactsService.GetTagHelpersGivenParent(documentContext, parentTag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,11 +3,10 @@
|
|||
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Razor.Language;
|
||||
using Microsoft.CodeAnalysis.Host;
|
||||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
namespace Microsoft.VisualStudio.Editor.Razor
|
||||
{
|
||||
public abstract class TagHelperFactsService : ILanguageService
|
||||
public abstract class TagHelperFactsService
|
||||
{
|
||||
public abstract TagHelperBinding GetTagHelperBinding(TagHelperDocumentContext documentContext, string tagName, IEnumerable<KeyValuePair<string, string>> attributes, string parentTag, bool parentIsTagHelper);
|
||||
|
||||
|
|
@ -994,8 +994,8 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
|
||||
private static DefaultTagHelperCompletionService CreateTagHelperCompletionFactsService()
|
||||
{
|
||||
var tagHelperFactService = new DefaultTagHelperFactsService();
|
||||
var completionFactService = new DefaultTagHelperCompletionService(tagHelperFactService);
|
||||
var tagHelperFactsService = new DefaultTagHelperFactsServiceInternal();
|
||||
var completionFactService = new DefaultTagHelperCompletionService(tagHelperFactsService);
|
||||
|
||||
return completionFactService;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.CodeAnalysis.Razor
|
||||
{
|
||||
public class DefaultTagHelperFactsServiceTest
|
||||
public class DefaultTagHelperFactsServiceInternalTest
|
||||
{
|
||||
// Purposefully not thoroughly testing DefaultTagHelperFactsService.GetTagHelperBinding because it's a pass through
|
||||
// into TagHelperDescriptorProvider.GetTagHelperBinding.
|
||||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var binding = service.GetTagHelperBinding(documentContext, "!a", Enumerable.Empty<KeyValuePair<string, string>>(), parentTag: null, parentIsTagHelper: false);
|
||||
|
|
@ -66,7 +66,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build(),
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
var attributes = new[]
|
||||
{
|
||||
new KeyValuePair<string, string>("asp-for", "Name")
|
||||
|
|
@ -108,7 +108,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
documentDescriptors[0].BoundAttributes.Last()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
var binding = service.GetTagHelperBinding(documentContext, "a", Enumerable.Empty<KeyValuePair<string, string>>(), parentTag: null, parentIsTagHelper: false);
|
||||
|
||||
// Act
|
||||
|
|
@ -143,7 +143,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
documentDescriptors[0].BoundAttributes.First()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
var binding = service.GetTagHelperBinding(documentContext, "input", Enumerable.Empty<KeyValuePair<string, string>>(), parentTag: null, parentIsTagHelper: false);
|
||||
|
||||
// Act
|
||||
|
|
@ -164,7 +164,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenTag(documentContext, "!strong", parentTag: null);
|
||||
|
|
@ -184,7 +184,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenTag(documentContext, "strong", "p");
|
||||
|
|
@ -217,7 +217,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenTag(documentContext, "a", "div");
|
||||
|
|
@ -244,7 +244,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create("th", documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenTag(documentContext, "thstrong", "div");
|
||||
|
|
@ -277,7 +277,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenTag(documentContext, "strong", "div");
|
||||
|
|
@ -297,7 +297,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenParent(documentContext, parentTag: null /* root */);
|
||||
|
|
@ -322,7 +322,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenParent(documentContext, parentTag: null /* root */);
|
||||
|
|
@ -343,7 +343,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenParent(documentContext, "p");
|
||||
|
|
@ -376,7 +376,7 @@ namespace Microsoft.CodeAnalysis.Razor
|
|||
.Build()
|
||||
};
|
||||
var documentContext = TagHelperDocumentContext.Create(string.Empty, documentDescriptors);
|
||||
var service = new DefaultTagHelperFactsService();
|
||||
var service = new DefaultTagHelperFactsServiceInternal();
|
||||
|
||||
// Act
|
||||
var descriptors = service.GetTagHelpersGivenParent(documentContext, "div");
|
||||
Loading…
Reference in New Issue