| File: CodeRefactorings\AddAwait\VisualBasicAddAwaitCodeRefactoringProvider.vb | Web Access |
| Project: src\roslyn\src\Features\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.Features.vbproj (Microsoft.CodeAnalysis.VisualBasic.Features) |
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Composition Imports System.Diagnostics.CodeAnalysis Imports Microsoft.CodeAnalysis.CodeRefactorings Imports Microsoft.CodeAnalysis.CodeRefactorings.AddAwait Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.CodeAnalysis.VisualBasic.CodeRefactorings.AddAwait <ExportCodeRefactoringProvider(LanguageNames.VisualBasic, Name:=PredefinedCodeRefactoringProviderNames.AddAwait), [Shared]> Friend Class VisualBasicAddAwaitCodeRefactoringProvider Inherits AbstractAddAwaitCodeRefactoringProvider(Of ExpressionSyntax) <ImportingConstructor> <SuppressMessage("RoslynDiagnosticsReliability", "RS0033:Importing constructor should be [Obsolete]", Justification:="Used in test code: https://github.com/dotnet/roslyn/issues/42814")> Public Sub New() End Sub Protected Overrides Function GetTitle() As String Return VBFeaturesResources.Add_Await End Function Protected Overrides Function GetTitleWithConfigureAwait() As String Return VBFeaturesResources.Add_Await_and_ConfigureAwaitFalse End Function Protected Overrides Function IsInAsyncContext(node As SyntaxNode) As Boolean For Each current In node.Ancestors() Select Case current.Kind Case SyntaxKind.MultiLineFunctionLambdaExpression, SyntaxKind.MultiLineSubLambdaExpression, SyntaxKind.SingleLineFunctionLambdaExpression, SyntaxKind.SingleLineSubLambdaExpression Return DirectCast(current, LambdaExpressionSyntax).SubOrFunctionHeader.Modifiers.Any(SyntaxKind.AsyncKeyword) Case SyntaxKind.SubBlock, SyntaxKind.FunctionBlock Return DirectCast(current, MethodBlockBaseSyntax).BlockStatement.Modifiers.Any(SyntaxKind.AsyncKeyword) End Select Next Return False End Function End Class End Namespace