Remove assembly name filter from THD API.

- This parameter was always passed `null` by tooling in the past.

#1279
This commit is contained in:
N. Taylor Mullen 2017-05-08 15:39:47 -07:00
parent 8616cf5dd0
commit 01ec2202b2
6 changed files with 20 additions and 30 deletions

View File

@ -16,12 +16,12 @@ namespace Microsoft.CodeAnalysis.Razor
public bool DesignTime { get; } public bool DesignTime { get; }
public override TagHelperResolutionResult GetTagHelpers(Compilation compilation, IEnumerable<string> assemblyNameFilters) public override TagHelperResolutionResult GetTagHelpers(Compilation compilation)
{ {
var descriptors = new List<TagHelperDescriptor>(); var descriptors = new List<TagHelperDescriptor>();
VisitTagHelpers(compilation, assemblyNameFilters, descriptors); VisitTagHelpers(compilation, descriptors);
VisitViewComponents(compilation, assemblyNameFilters, descriptors); VisitViewComponents(compilation, descriptors);
var diagnostics = new List<RazorDiagnostic>(); var diagnostics = new List<RazorDiagnostic>();
var resolutionResult = new TagHelperResolutionResult(descriptors, diagnostics); var resolutionResult = new TagHelperResolutionResult(descriptors, diagnostics);
@ -29,7 +29,7 @@ namespace Microsoft.CodeAnalysis.Razor
return resolutionResult; return resolutionResult;
} }
private void VisitTagHelpers(Compilation compilation, IEnumerable<string> assemblyNameFilters, List<TagHelperDescriptor> results) private void VisitTagHelpers(Compilation compilation, List<TagHelperDescriptor> results)
{ {
var types = new List<INamedTypeSymbol>(); var types = new List<INamedTypeSymbol>();
var visitor = TagHelperTypeVisitor.Create(compilation, types); var visitor = TagHelperTypeVisitor.Create(compilation, types);
@ -40,19 +40,16 @@ namespace Microsoft.CodeAnalysis.Razor
foreach (var type in types) foreach (var type in types)
{ {
if (assemblyNameFilters == null || assemblyNameFilters.Contains(type.ContainingAssembly.Identity.Name)) var descriptor = factory.CreateDescriptor(type);
{
var descriptor = factory.CreateDescriptor(type);
if (descriptor != null) if (descriptor != null)
{ {
results.Add(descriptor); results.Add(descriptor);
}
} }
} }
} }
private void VisitViewComponents(Compilation compilation, IEnumerable<string> assemblyNameFilters, List<TagHelperDescriptor> results) private void VisitViewComponents(Compilation compilation, List<TagHelperDescriptor> results)
{ {
var types = new List<INamedTypeSymbol>(); var types = new List<INamedTypeSymbol>();
var visitor = ViewComponentTypeVisitor.Create(compilation, types); var visitor = ViewComponentTypeVisitor.Create(compilation, types);
@ -62,12 +59,9 @@ namespace Microsoft.CodeAnalysis.Razor
var factory = new ViewComponentTagHelperDescriptorFactory(compilation); var factory = new ViewComponentTagHelperDescriptorFactory(compilation);
foreach (var type in types) foreach (var type in types)
{ {
if (assemblyNameFilters == null || assemblyNameFilters.Contains(type.ContainingAssembly.Identity.Name)) var descriptor = factory.CreateDescriptor(type);
{
var descriptor = factory.CreateDescriptor(type);
results.Add(descriptor); results.Add(descriptor);
}
} }
} }

View File

@ -10,15 +10,14 @@ namespace Microsoft.CodeAnalysis.Razor
{ {
internal abstract class TagHelperResolver : ILanguageService internal abstract class TagHelperResolver : ILanguageService
{ {
public abstract TagHelperResolutionResult GetTagHelpers(Compilation compilation, IEnumerable<string> assemblyNameFilters); public abstract TagHelperResolutionResult GetTagHelpers(Compilation compilation);
public virtual async Task<TagHelperResolutionResult> GetTagHelpersAsync( public virtual async Task<TagHelperResolutionResult> GetTagHelpersAsync(
Project project, Project project,
IEnumerable<string> assemblyNameFilters,
CancellationToken cancellationToken = default(CancellationToken)) CancellationToken cancellationToken = default(CancellationToken))
{ {
var compilation = await project.GetCompilationAsync(cancellationToken).ConfigureAwait(false); var compilation = await project.GetCompilationAsync(cancellationToken).ConfigureAwait(false);
return GetTagHelpers(compilation, assemblyNameFilters); return GetTagHelpers(compilation);
} }
} }
} }

View File

@ -27,7 +27,7 @@ namespace Microsoft.CodeAnalysis.Remote.Razor
Rpc.StartListening(); Rpc.StartListening();
} }
public async Task<TagHelperResolutionResult> GetTagHelpersAsync(Guid projectIdBytes, string projectDebugName, IEnumerable<string> assemblyNameFilters, CancellationToken cancellationToken = default(CancellationToken)) public async Task<TagHelperResolutionResult> GetTagHelpersAsync(Guid projectIdBytes, string projectDebugName, CancellationToken cancellationToken = default(CancellationToken))
{ {
var projectId = ProjectId.CreateFromSerialized(projectIdBytes, projectDebugName); var projectId = ProjectId.CreateFromSerialized(projectIdBytes, projectDebugName);
@ -35,7 +35,7 @@ namespace Microsoft.CodeAnalysis.Remote.Razor
var project = solution.GetProject(projectId); var project = solution.GetProject(projectId);
var resolver = new DefaultTagHelperResolver(designTime: true); var resolver = new DefaultTagHelperResolver(designTime: true);
var result = await resolver.GetTagHelpersAsync(project, assemblyNameFilters, cancellationToken).ConfigureAwait(false); var result = await resolver.GetTagHelpersAsync(project, cancellationToken).ConfigureAwait(false);
return result; return result;
} }

View File

@ -24,7 +24,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
[Import] [Import]
public SVsServiceProvider Services { get; set; } public SVsServiceProvider Services { get; set; }
public async Task<TagHelperResolutionResult> GetTagHelpersAsync(Project project, IEnumerable<string> assemblyNameFilters) public async Task<TagHelperResolutionResult> GetTagHelpersAsync(Project project)
{ {
try try
{ {
@ -43,7 +43,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
{ {
var jsonObject = await session.InvokeAsync<JObject>( var jsonObject = await session.InvokeAsync<JObject>(
"GetTagHelpersAsync", "GetTagHelpersAsync",
new object[] { project.Id.Id, "Foo", assemblyNameFilters, }).ConfigureAwait(false); new object[] { project.Id.Id, "Foo", }).ConfigureAwait(false);
result = GetTagHelperResolutionResult(jsonObject); result = GetTagHelperResolutionResult(jsonObject);
@ -57,7 +57,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
// The OOP host is turned off, so let's do this in process. // The OOP host is turned off, so let's do this in process.
var resolver = new CodeAnalysis.Razor.DefaultTagHelperResolver(designTime: true); var resolver = new CodeAnalysis.Razor.DefaultTagHelperResolver(designTime: true);
result = await resolver.GetTagHelpersAsync(project, assemblyNameFilters, CancellationToken.None).ConfigureAwait(false); result = await resolver.GetTagHelpersAsync(project, CancellationToken.None).ConfigureAwait(false);
return result; return result;
} }
catch (Exception exception) catch (Exception exception)

View File

@ -10,6 +10,6 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
{ {
public interface ITagHelperResolver public interface ITagHelperResolver
{ {
Task<TagHelperResolutionResult> GetTagHelpersAsync(Project project, IEnumerable<string> assemblyNameFilters); Task<TagHelperResolutionResult> GetTagHelpersAsync(Project project);
} }
} }

View File

@ -175,10 +175,7 @@ namespace Microsoft.VisualStudio.RazorExtension.RazorInfo
.Select(reference => reference.Display) .Select(reference => reference.Display)
.Select(filter => Path.GetFileNameWithoutExtension(filter)); .Select(filter => Path.GetFileNameWithoutExtension(filter));
var projectFilters = project.AllProjectReferences.Select(filter => solution.GetProject(filter.ProjectId).AssemblyName); var projectFilters = project.AllProjectReferences.Select(filter => solution.GetProject(filter.ProjectId).AssemblyName);
var tagHelperAssemblyFilters = assemblyFilters var resolutionResult = await _tagHelperResolver.GetTagHelpersAsync(project);
.Concat(projectFilters)
.Concat(new[] { project.AssemblyName });
var resolutionResult = await _tagHelperResolver.GetTagHelpersAsync(project, tagHelperAssemblyFilters);
var files = GetCshtmlDocuments(project); var files = GetCshtmlDocuments(project);