diff --git a/src/Microsoft.VisualStudio.Editor.Razor/DefaultCodeDocumentProviderFactory.cs b/src/Microsoft.VisualStudio.Editor.Razor/DefaultCodeDocumentProviderFactory.cs index d98e88133b..7f2deb914b 100644 --- a/src/Microsoft.VisualStudio.Editor.Razor/DefaultCodeDocumentProviderFactory.cs +++ b/src/Microsoft.VisualStudio.Editor.Razor/DefaultCodeDocumentProviderFactory.cs @@ -13,19 +13,6 @@ namespace Microsoft.VisualStudio.Editor.Razor [ExportLanguageServiceFactory(typeof(RazorCodeDocumentProvider), RazorLanguage.Name)] internal class DefaultCodeDocumentProviderFactory : ILanguageServiceFactory { - private readonly RazorTextBufferProvider _textBufferProvider; - - [ImportingConstructor] - public DefaultCodeDocumentProviderFactory(RazorTextBufferProvider bufferProvider) - { - if (bufferProvider == null) - { - throw new ArgumentNullException(nameof(bufferProvider)); - } - - _textBufferProvider = bufferProvider; - } - public ILanguageService CreateLanguageService(HostLanguageServices languageServices) { if (languageServices == null) @@ -33,9 +20,10 @@ namespace Microsoft.VisualStudio.Editor.Razor throw new ArgumentNullException(nameof(languageServices)); } + var textBufferProvider = languageServices.GetRequiredService(); var textBufferCodeDocumentProvider = languageServices.GetRequiredService(); - return new DefaultCodeDocumentProvider(_textBufferProvider, textBufferCodeDocumentProvider); + return new DefaultCodeDocumentProvider(textBufferProvider, textBufferCodeDocumentProvider); } } } diff --git a/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProvider.cs b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProvider.cs index 22efa0ec08..5ddecbd9dc 100644 --- a/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProvider.cs +++ b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProvider.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; -using System.ComponentModel.Composition; using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Text; @@ -11,13 +10,10 @@ using Microsoft.VisualStudio.Text.Projection; namespace Microsoft.VisualStudio.Editor.Razor { - [System.Composition.Shared] - [Export(typeof(RazorTextBufferProvider))] internal class DefaultTextBufferProvider : RazorTextBufferProvider { private readonly IBufferGraphFactoryService _bufferGraphService; - [ImportingConstructor] public DefaultTextBufferProvider(IBufferGraphFactoryService bufferGraphService) { if (bufferGraphService == null) diff --git a/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProviderFactory.cs b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProviderFactory.cs new file mode 100644 index 0000000000..834e10a5be --- /dev/null +++ b/src/Microsoft.VisualStudio.Editor.Razor/DefaultTextBufferProviderFactory.cs @@ -0,0 +1,40 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Composition; +using Microsoft.CodeAnalysis.Host; +using Microsoft.CodeAnalysis.Host.Mef; +using Microsoft.CodeAnalysis.Razor; +using Microsoft.VisualStudio.Text.Projection; + +namespace Microsoft.VisualStudio.Editor.Razor +{ + [Shared] + [ExportLanguageServiceFactory(typeof(RazorTextBufferProvider), RazorLanguage.Name)] + internal class DefaultTextBufferProviderFactory : ILanguageServiceFactory + { + private readonly IBufferGraphFactoryService _bufferGraphService; + + [ImportingConstructor] + public DefaultTextBufferProviderFactory(IBufferGraphFactoryService bufferGraphService) + { + if (bufferGraphService == null) + { + throw new ArgumentNullException(nameof(bufferGraphService)); + } + + _bufferGraphService = bufferGraphService; + } + + public ILanguageService CreateLanguageService(HostLanguageServices languageServices) + { + if (languageServices == null) + { + throw new ArgumentNullException(nameof(languageServices)); + } + + return new DefaultTextBufferProvider(_bufferGraphService); + } + } +} diff --git a/src/Microsoft.VisualStudio.Editor.Razor/RazorTextBufferProvider.cs b/src/Microsoft.VisualStudio.Editor.Razor/RazorTextBufferProvider.cs index 8c18c6d89a..ed3479671b 100644 --- a/src/Microsoft.VisualStudio.Editor.Razor/RazorTextBufferProvider.cs +++ b/src/Microsoft.VisualStudio.Editor.Razor/RazorTextBufferProvider.cs @@ -2,11 +2,12 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.Host; using Microsoft.VisualStudio.Text; namespace Microsoft.VisualStudio.Editor.Razor { - internal abstract class RazorTextBufferProvider + internal abstract class RazorTextBufferProvider : ILanguageService { public abstract bool TryGetFromDocument(TextDocument document, out ITextBuffer textBuffer); }