如何在执行代码修复后将插入符号移动到特定位置
本文关键字:移动 符号 插入 位置 定位 执行 代码 | 更新日期: 2023-09-27 18:33:24
执行代码修复后是否可以将插入符号移动到特定位置?
想象一下以下场景:- 在我正在编辑的源代码的开头附近,我的代码分析器检测到一个错误并用红色波浪线突出显示- 我正在编辑文件,因此突出显示的错误超出了显示的范围- 使用鼠标滚轮,我得到上述错误- 悬停波浪线后,出现错误弹出窗口,并带有建议的代码修复- 执行后,编辑器的视图返回到插入符号位置- 我无法立即看到代码修复的结果
解决方案是将插入符号位置移动到发生代码修复的位置。但是我似乎找不到方法。
如果这是一个 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*/);