|
' 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.ComponentModel.Composition
Imports Microsoft.CodeAnalysis.Host.Mef
Imports Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion
Imports Microsoft.VisualStudio.Language.Intellisense.AsyncCompletion.Data
Imports Microsoft.VisualStudio.Text.Editor
Imports Microsoft.VisualStudio.Utilities
Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense
<Export(GetType(ICompletionPresenterProvider))>
<PartNotDiscoverable>
<Name(NameOf(MockCompletionPresenterProvider))>
<ContentType(ContentTypeNames.RoslynContentType)>
<Order(Before:=NameOf(PredefinedCompletionNames.DefaultCompletionPresenter))>
Public Class MockCompletionPresenterProvider
Implements ICompletionPresenterProvider
Private ReadOnly _presenters As Dictionary(Of ITextView, ICompletionPresenter) = New Dictionary(Of ITextView, ICompletionPresenter)()
<ImportingConstructor>
<Obsolete(MefConstruction.ImportingConstructorMessage, True)>
Public Sub New()
End Sub
Public ReadOnly Property Options As CompletionPresenterOptions Implements ICompletionPresenterProvider.Options
Get
' resultsPerPage can be set for any reasonable value corresponding to the number of lines in popup.
' It is used in some tests involving Up/Down keystrokes.
Return New CompletionPresenterOptions(resultsPerPage:=10)
End Get
End Property
Public Function GetOrCreate(textView As ITextView) As ICompletionPresenter Implements ICompletionPresenterProvider.GetOrCreate
Dim presenter As ICompletionPresenter = Nothing
If Not _presenters.TryGetValue(textView, presenter) Then
presenter = New MockCompletionPresenter(textView)
_presenters(textView) = presenter
End If
Return presenter
End Function
End Class
End Namespace
|