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

让·亚历山大·沃尔德纳

使用以下代码,我可以获得 .css 和 .js 文件等的 ITextDocument,但 DocumentService.TryGetTextDocument() 方法为.html文件返回一个空的 ITextDocument 文档

[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?

执行特定命令时,我需要处理文档的内容。

非常感谢任何帮助!

Zhanglong Wu - MSFT

请像这样修改您的代码,它对我有用。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章