无法从 HTML 文本缓冲区检索 ITextDocument

Unable to retrieve ITextDocument from HTML text buffer

使用以下代码,我能够获取 .css 和 .js 文件等的 ITextDocument,但是 DocumentService.TryGetTextDocument() 方法返回 [= 的空 ITextDocument 文档20=].html 个文件。

[Export(typeof(IVsTextViewCreationListener))]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.PrimaryDocument)]
internal sealed class CommandProvider : IVsTextViewCreationListener
{
    [Import(typeof(IVsEditorAdaptersFactoryService))]
    private IVsEditorAdaptersFactoryService EditorService { get; set; }

    [Import(typeof(ITextDocumentFactoryService))]
    private ITextDocumentFactoryService DocumentService { get; set; }

    public void VsTextViewCreated(IVsTextView textViewAdapter)
    {
        var textView = EditorService.GetWpfTextView(textViewAdapter);
        if (!DocumentService.TryGetTextDocument(textView.TextBuffer, out ITextDocument document))
            return;
    }
}

问题:如何从 HTML 文本缓冲区中检索 ITextDocument?

我需要在执行特定命令时操作文档的内容。

非常感谢任何帮助!

请像这样修改你的代码,它在我这边有效。

public void VsTextViewCreated(IVsTextView textViewAdapter)
{
    var textView = EditorService.GetWpfTextView(textViewAdapter);
    ITextDocument document = null;
    if (!DocumentService.TryGetTextDocument(textView.TextDataModel.DocumentBuffer, out document))
        return;
}