diff --git a/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs b/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs index 05d7e666d79fb026a7f55186b71e89e0478ce4fd..0962881700df01d8ef8ec56cc13279d1babc501e 100644 --- a/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs +++ b/src/Features/Core/Portable/AddImport/CodeActions/AssemblyReferenceCodeAction.cs @@ -16,74 +16,74 @@ namespace Microsoft.CodeAnalysis.CodeFixes.AddImport { internal abstract partial class AbstractAddImportCodeFixProvider { - private class AssemblyReferenceCodeAction : CodeAction - { - private readonly ReferenceAssemblyWithTypeResult _referenceAssemblyWithType; - private readonly string _title; - private readonly Document _document; - private readonly ImmutableArray _textChanges; + private class AssemblyReferenceCodeAction : CodeAction + { + private readonly ReferenceAssemblyWithTypeResult _referenceAssemblyWithType; + private readonly string _title; + private readonly Document _document; + private readonly ImmutableArray _textChanges; - public override string Title => _title; + public override string Title => _title; - public override ImmutableArray Tags => WellKnownTagArrays.AddReference; + public override ImmutableArray Tags => WellKnownTagArrays.AddReference; - private readonly Lazy _lazyResolvedPath; + private readonly Lazy _lazyResolvedPath; - public AssemblyReferenceCodeAction( - string title, - ReferenceAssemblyWithTypeResult referenceAssemblyWithType, - Document document, - ImmutableArray textChanges) - { - _referenceAssemblyWithType = referenceAssemblyWithType; - _document = document; - _textChanges = textChanges; + public AssemblyReferenceCodeAction( + string title, + ReferenceAssemblyWithTypeResult referenceAssemblyWithType, + Document document, + ImmutableArray textChanges) + { + _referenceAssemblyWithType = referenceAssemblyWithType; + _document = document; + _textChanges = textChanges; - _title = title; - _lazyResolvedPath = new Lazy(ResolvePath); - } + _title = title; + _lazyResolvedPath = new Lazy(ResolvePath); + } - // Adding a reference is always low priority. - internal override CodeActionPriority Priority => CodeActionPriority.Low; + // Adding a reference is always low priority. + internal override CodeActionPriority Priority => CodeActionPriority.Low; - private string ResolvePath() - { - var assemblyResolverService = _document.Project.Solution.Workspace.Services.GetService(); + private string ResolvePath() + { + var assemblyResolverService = _document.Project.Solution.Workspace.Services.GetService(); - var fullyQualifiedName = string.Join( - ".", _referenceAssemblyWithType.ContainingNamespaceNames.Concat(_referenceAssemblyWithType.TypeName)); + var fullyQualifiedName = string.Join( + ".", _referenceAssemblyWithType.ContainingNamespaceNames.Concat(_referenceAssemblyWithType.TypeName)); - var assemblyPath = assemblyResolverService?.ResolveAssemblyPath( - _document.Project.Id, _referenceAssemblyWithType.AssemblyName, fullyQualifiedName); + var assemblyPath = assemblyResolverService?.ResolveAssemblyPath( + _document.Project.Id, _referenceAssemblyWithType.AssemblyName, fullyQualifiedName); - return assemblyPath; - } + return assemblyPath; + } - internal override bool PerformFinalApplicabilityCheck - => true; + internal override bool PerformFinalApplicabilityCheck + => true; - internal override bool IsApplicable(Workspace workspace) - => !string.IsNullOrWhiteSpace(_lazyResolvedPath.Value); + internal override bool IsApplicable(Workspace workspace) + => !string.IsNullOrWhiteSpace(_lazyResolvedPath.Value); - protected override async Task> ComputeOperationsAsync(CancellationToken cancellationToken) - { - var service = _document.Project.Solution.Workspace.Services.GetService(); - var resolvedPath = _lazyResolvedPath.Value; - var reference = service.GetReference(resolvedPath, MetadataReferenceProperties.Assembly); + protected override async Task> ComputeOperationsAsync(CancellationToken cancellationToken) + { + var service = _document.Project.Solution.Workspace.Services.GetService(); + var resolvedPath = _lazyResolvedPath.Value; + var reference = service.GetReference(resolvedPath, MetadataReferenceProperties.Assembly); - var oldText = await _document.GetTextAsync(cancellationToken).ConfigureAwait(false); - var newText = oldText.WithChanges(_textChanges); + var oldText = await _document.GetTextAsync(cancellationToken).ConfigureAwait(false); + var newText = oldText.WithChanges(_textChanges); - var newDocument = _document.WithText(newText); + var newDocument = _document.WithText(newText); - // Now add the actual assembly reference. - var newProject = newDocument.Project; - newProject = newProject.WithMetadataReferences( - newProject.MetadataReferences.Concat(reference)); + // Now add the actual assembly reference. + var newProject = newDocument.Project; + newProject = newProject.WithMetadataReferences( + newProject.MetadataReferences.Concat(reference)); - var operation = new ApplyChangesOperation(newProject.Solution); - return SpecializedCollections.SingletonEnumerable(operation); + var operation = new ApplyChangesOperation(newProject.Solution); + return SpecializedCollections.SingletonEnumerable(operation); + } } - } } } \ No newline at end of file