2017-03-01 53 views
1

使用以下代碼我可以獲取.css和.js文件的ITextDocument等,但DocumentService.TryGetTextDocument()方法返回的是空的ITextDocument文檔,用於。 html文件。無法從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?

我需要在執行特定命令時處理文檔的內容。

任何幫助大大appeciated!

回答

0

請修改您的代碼,它適用於我的一面。

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

改變的第一個參數** ** DocumentService.TryGetTextDocument從** ** textView.TextBuffer到** ** textView.TextDataModel.DocumentBuffer作品。謝謝! –