2

执行代码修复后是否可以将插入符号移动到特定位置?

想象以下场景: - 在我正在编辑的源代码的开头附近,我的代码分析器检测到一个错误并用红色曲线突出显示 - 我正在编辑文件,因此突出显示的错误超出了显示范围 - 使用鼠标轮子,我遇到了上述错误 - 将曲线悬停后,出现错误弹出窗口并显示建议的代码修复 - 执行后,编辑器视图返回插入符号位置 - 我无法立即看到代码修复的结果

解决方案是将插入符号位置移动到发生代码修复的位置。但是我似乎找不到方法。

4

1 回答 1

2

如果这是一个 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*/);
于 2016-06-08T14:48:15.957 回答