执行codefix后是否可以将插入符号移动到特定位置?
想象一下以下场景: - 在我正在编辑的源代码的开头附近,我的代码分析器检测到错误,并用红色波浪线突出显示 - 我正在编辑文件,因此突出显示的错误超出了显示的范围 - 使用鼠标滚轮,我得到上述错误 - 在悬停曲线后,会出现错误弹出窗口,其中包含建议的代码修复程序 - 执行后,编辑器的视图返回到插入符号位置 - 我无法立即看到代码修复的结果
解决方案是将插入位置移动到发生代码修复的位置。但是,我似乎找不到办法。
答案 0 :(得分:1)
如果这是一个vsix扩展,那么至少应该让你关闭。
IVsTextManager textManager = (IVsTextManager)GetService(typeof(SVsTextManager));
IVsTextView textView = null;
textManager.GetActiveView(1, null, out textView);
IComponentModel componentModel =(IComponentModel)GetService(typeof(SComponentModel));
Microsoft.VisualStudio.Text.Editor.IWpfTextView textView = componentModel.GetService<IVsEditorAdaptersFactoryService>().GetWpfTextView(textView);
textView.Caret.MoveTo(/*lots of overrides*/);