Change text buffer code document provider to follow our public API MEF rules.
This commit is contained in:
parent
345eb29c62
commit
df1d0bbcd4
|
|
@ -2,10 +2,10 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel.Composition;
|
using System.ComponentModel.Composition;
|
||||||
using Microsoft.AspNetCore.Razor.Language;
|
using Microsoft.AspNetCore.Razor.Language;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
|
using Microsoft.CodeAnalysis.Razor;
|
||||||
|
|
||||||
namespace Microsoft.VisualStudio.Editor.Razor
|
namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
|
|
@ -18,6 +18,25 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
|
||||||
[ImportingConstructor]
|
[ImportingConstructor]
|
||||||
public DefaultCodeDocumentProvider(
|
public DefaultCodeDocumentProvider(
|
||||||
|
RazorTextBufferProvider bufferProvider,
|
||||||
|
VisualStudioWorkspaceAccessor workspaceAccessor)
|
||||||
|
{
|
||||||
|
if (bufferProvider == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(bufferProvider));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (workspaceAccessor == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(workspaceAccessor));
|
||||||
|
}
|
||||||
|
|
||||||
|
_bufferProvider = bufferProvider;
|
||||||
|
_codeDocumentProvider = workspaceAccessor.Workspace.Services.GetLanguageServices(RazorLanguage.Name).GetRequiredService<TextBufferCodeDocumentProvider>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Internal for testing
|
||||||
|
internal DefaultCodeDocumentProvider(
|
||||||
RazorTextBufferProvider bufferProvider,
|
RazorTextBufferProvider bufferProvider,
|
||||||
TextBufferCodeDocumentProvider codeDocumentProvider)
|
TextBufferCodeDocumentProvider codeDocumentProvider)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,11 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel.Composition;
|
|
||||||
using Microsoft.AspNetCore.Razor.Language;
|
using Microsoft.AspNetCore.Razor.Language;
|
||||||
using Microsoft.VisualStudio.Text;
|
using Microsoft.VisualStudio.Text;
|
||||||
|
|
||||||
namespace Microsoft.VisualStudio.Editor.Razor
|
namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
[System.Composition.Shared]
|
|
||||||
[Export(typeof(TextBufferCodeDocumentProvider))]
|
|
||||||
internal class DefaultTextBufferCodeDocumentProvider : TextBufferCodeDocumentProvider
|
internal class DefaultTextBufferCodeDocumentProvider : TextBufferCodeDocumentProvider
|
||||||
{
|
{
|
||||||
public override bool TryGetFromBuffer(ITextBuffer textBuffer, out RazorCodeDocument codeDocument)
|
public override bool TryGetFromBuffer(ITextBuffer textBuffer, out RazorCodeDocument codeDocument)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
// 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 Microsoft.CodeAnalysis.Host;
|
||||||
|
using Microsoft.CodeAnalysis.Host.Mef;
|
||||||
|
using Microsoft.CodeAnalysis.Razor;
|
||||||
|
|
||||||
|
namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
{
|
||||||
|
[ExportLanguageServiceFactory(typeof(TextBufferCodeDocumentProvider), RazorLanguage.Name, ServiceLayer.Default)]
|
||||||
|
internal class DefaultTextBufferCodeDocumentProviderFactory : ILanguageServiceFactory
|
||||||
|
{
|
||||||
|
public ILanguageService CreateLanguageService(HostLanguageServices languageServices)
|
||||||
|
{
|
||||||
|
return new DefaultTextBufferCodeDocumentProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,7 @@ using Microsoft.VisualStudio.Text;
|
||||||
|
|
||||||
namespace Microsoft.VisualStudio.Editor.Razor
|
namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
internal abstract class TextBufferCodeDocumentProvider
|
internal abstract class TextBufferCodeDocumentProvider : ILanguageService
|
||||||
{
|
{
|
||||||
public abstract bool TryGetFromBuffer(ITextBuffer textBuffer, out RazorCodeDocument codeDocument);
|
public abstract bool TryGetFromBuffer(ITextBuffer textBuffer, out RazorCodeDocument codeDocument);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue