从Visual Studio Extension 2017中获取IWpfTextView可以通过以下步骤实现:
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Text.Editor.OptionsExtensionMethods;
IWpfTextView textView = null;
if (ServiceProvider.GlobalProvider.GetService(typeof(SVsTextManager)) is IVsTextManager textManager &&
textManager.GetActiveView(1, null, out IVsTextView activeView) == 0)
{
textView = activeView.GetWpfTextView();
}
string text = textView.TextSnapshot.GetText();
int caretPosition = textView.Caret.Position.BufferPosition.Position;
string selectedText = textView.Selection.SelectedSpans.FirstOrDefault()?.GetText();
请注意,以上代码仅适用于Visual Studio Extension 2017,并且假设你已经熟悉Visual Studio扩展开发的基本概念和流程。
关于IWpfTextView的更多信息,你可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云