From e3d1a60449b973fcc9ad5c9712cd270dac6a14b3 Mon Sep 17 00:00:00 2001 From: CyrusNajmabadi Date: Thu, 10 Nov 2016 12:40:55 -0800 Subject: [PATCH] Actually export the service. --- .../Diagnostics/AddUsing/AddUsingTests.cs | 37 +++++++++++++++++++ .../VisualBasicAddImportCodeFixProvider.vb | 6 +-- .../AddImport/CSharpAddImportService.cs | 3 ++ 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/EditorFeatures/CSharpTest/Diagnostics/AddUsing/AddUsingTests.cs b/src/EditorFeatures/CSharpTest/Diagnostics/AddUsing/AddUsingTests.cs index d964bde15a9..43de5c64e65 100644 --- a/src/EditorFeatures/CSharpTest/Diagnostics/AddUsing/AddUsingTests.cs +++ b/src/EditorFeatures/CSharpTest/Diagnostics/AddUsing/AddUsingTests.cs @@ -4373,6 +4373,43 @@ class C compareTokens: false); } + [Fact, Trait(Traits.Feature, Traits.Features.CodeActionsAddUsing)] + public async Task TestPlaceUsingWithUsings_NotWithAliases() + { + await TestAsync( +@" +using System; + +namespace N +{ + using C = System.Collections; + + class Class + { + [|List|] Method() + { + Foo(); + } + } +}", +@" +using System; +using System.Collections.Generic; + +namespace N +{ + using C = System.Collections; + + class Class + { + List Method() + { + Foo(); + } + } +}"); + } + public partial class AddUsingTestsWithAddImportDiagnosticProvider : AbstractCSharpDiagnosticProviderBasedUserDiagnosticTest { internal override Tuple CreateDiagnosticProviderAndFixer(Workspace workspace) diff --git a/src/Features/VisualBasic/Portable/CodeFixes/AddImport/VisualBasicAddImportCodeFixProvider.vb b/src/Features/VisualBasic/Portable/CodeFixes/AddImport/VisualBasicAddImportCodeFixProvider.vb index 69532656584..ac3d8f373d9 100644 --- a/src/Features/VisualBasic/Portable/CodeFixes/AddImport/VisualBasicAddImportCodeFixProvider.vb +++ b/src/Features/VisualBasic/Portable/CodeFixes/AddImport/VisualBasicAddImportCodeFixProvider.vb @@ -313,7 +313,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.AddImport Return symbol IsNot Nothing AndAlso symbol.Locations.Length > 0 End Function - Protected Overloads Overrides Async Function AddImportAsync( + Protected Overloads Overrides Function AddImportAsync( contextNode As SyntaxNode, symbol As INamespaceOrTypeSymbol, document As Document, @@ -322,9 +322,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.AddImport Dim nameSyntax = DirectCast(symbol.GenerateTypeSyntax(addGlobal:=False), NameSyntax) - Return Await AddImportsAsync( + Return AddImportsAsync( contextNode, document, placeSystemNamespaceFirst, nameSyntax, - additionalAnnotation:=Nothing, cancellationToken:=cancellationToken).ConfigureAwait(False) + additionalAnnotation:=Nothing, cancellationToken:=cancellationToken) End Function Private Shared Async Function AddImportsAsync( diff --git a/src/Workspaces/CSharp/Portable/AddImport/CSharpAddImportService.cs b/src/Workspaces/CSharp/Portable/AddImport/CSharpAddImportService.cs index 17dd17a6bed..34df26b9a65 100644 --- a/src/Workspaces/CSharp/Portable/AddImport/CSharpAddImportService.cs +++ b/src/Workspaces/CSharp/Portable/AddImport/CSharpAddImportService.cs @@ -2,13 +2,16 @@ using System; using System.Collections.Generic; +using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.AddImport; using Microsoft.CodeAnalysis.CSharp.Extensions; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Host.Mef; namespace Microsoft.CodeAnalysis.CSharp.AddImport { + [ExportLanguageService(typeof(IAddImportService), LanguageNames.CSharp), Shared] internal class CSharpAddImportService : IAddImportService { public SyntaxNode AddImports( -- GitLab