' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. Imports Microsoft.CodeAnalysis.Completion.Providers Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Completion.CompletionProviders Imports Microsoft.CodeAnalysis.VisualBasic.Completion.Providers Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Completion.CompletionProviders Public Class CrefCompletionProviderTests Inherits AbstractVisualBasicCompletionProviderTests Friend Overrides Function CreateCompletionProvider() As ICompletionProvider Return New CrefCompletionProvider() End Function Public Sub NotOutsideCref() Dim text = Class C ''' $$ Sub Foo() End Sub End Class .Value VerifyNoItemsExist(text) End Sub Public Sub NotOutsideCref2() Dim text = Class C $$ Sub Foo() End Sub End Class .Value VerifyNoItemsExist(text) End Sub Public Sub NotOutsideCref3() Dim text = Class C Sub Foo() Me.$$ End Sub End Class .Value VerifyNoItemsExist(text) End Sub Public Sub AfterCrefOpenQuote() Dim text = ''' Module Program Sub Foo() End Sub End Module]]>.Value VerifyItemExists(text, "Foo()") End Sub Public Sub NotInTypeParameterContext() Dim text = ''' Public Sub InSignature_FirstParameter() Dim text = ''' Class Program(Of T) Sub Foo(z as Integer) End Sub End Class]]>.Value VerifyItemExists(text, "Integer") VerifyItemIsAbsent(text, "Foo(Integer") End Sub Public Sub InSignature_SecondParameter() Dim text = ''' Class Program(Of T) Sub Foo(z as Integer, q as Integer) End Sub End Class]]>.Value VerifyItemExists(text, "Integer") End Sub Public Sub NotAfterSignature() Dim text = ''' Class Program(Of T) Sub Foo(z as Integer, q as Integer) End Sub End Class]]>.Value VerifyNoItemsExist(text) End Sub Public Sub NotAfterDotAfterSignature() Dim text = ''' Class Program(Of T) Sub Foo(z as Integer, q as Integer) End Sub End Class]]>.Value VerifyNoItemsExist(text) End Sub Public Sub MethodParametersIncluded() Dim text = ''' Class Program(Of T) Sub Foo(ByRef z As Integer, ByVal x As Integer, ParamArray xx As Integer()) End Sub End Class]]>.Value VerifyItemExists(text, "Foo(ByRef Integer, Integer, Integer())") End Sub Public Sub TypesSuggestedWithTypeParameters() Dim text = ''' Class Program(Of TTypeParameter) End Class Class Program End Class]]>.Value VerifyItemExists(text, "Program") VerifyItemExists(text, "Program(Of TTypeParameter)") End Sub Public Sub Operators() Dim text = ''' ''' ''' Public Shared Operator +(c As C) End Operator End Class]]>.Value VerifyItemExists(text, "Operator +(C)") End Sub Public Sub ModOperator() Dim text = ''' ''' ''' Public Shared Operator Mod (c As C, a as Integer) End Operator End Class]]>.Value VerifyItemExists(text, "Operator Mod(C, Integer)") End Sub Public Sub ConstructorsShown() Dim text = ''' ''' Class C Sub New(x as Integer) End Sub End Class ]]>.Value VerifyItemExists(text, "New(Integer)") End Sub Public Sub AfterNamespace() Dim text = ''' ''' Class C Sub New(x as Integer) End Sub End Class ]]>.Value VerifyItemExists(text, "String") End Sub Public Sub ParameterizedProperties() Dim text = ''' ''' Class C Public Property Item(x As Integer) As Integer Get Return 0 End Get Set(value As Integer) End Set End Property Public Property Item(x As Integer, y As String) As Integer Get Return 1 End Get Set(value As Integer) End Set End Property End Class ]]>.Value VerifyItemExists(text, "Item(Integer)") VerifyItemExists(text, "Item(Integer, String)") End Sub Public Sub NoIdentifierEscaping() Dim text = ''' Class A End Class ]]>.Value VerifyItemExists(text, "GetType()") End Sub Public Sub NoCommitOnParen() Dim text = ''' ''' Class C Sub bar(x As Integer, y As Integer) End Sub End Class ]]>.Value Dim expected = ''' ''' Class C Sub bar(x As Integer, y As Integer) End Sub End Class ]]>.Value VerifyProviderCommit(text, "bar(Integer, Integer)", expected, "("c, "bar") End Sub Public Sub AllowTypingTypeParameters() Dim text = ''' ''' Class C Sub bar(x As Integer, y As Integer) End Sub End Class ]]>.Value Dim expected = ''' ''' Class C Sub bar(x As Integer, y As Integer) End Sub End Class ]]>.Value VerifyProviderCommit(text, "List(Of T)", expected, " "c, "List(Of") End Sub Public Sub OfAfterParen() Dim text = ''' Public Sub OfNotAfterComma() Dim text = '''