Visual Studio:从undo/redo堆栈中排除大纲

Tho*_*que 23 ide undo outlining visual-studio

在Visual Studio中有一些令人讨厌的东西:当我展开或折叠方法或代码区域时,此操作将被推送到撤消堆栈.因此,如果我在方法中编辑某些代码,然后折叠该方法,然后想要撤消我的更改,我必须撤消两次:一次用于崩溃操作,一次用于代码更改.如果您在编辑代码后展开或折叠了几件事情,编辑器会不断跳到不同的地方并且您不知道您的更改是否已被撤消,这可能会非常混乱......

所以我的问题是:是否可以禁用该行为?即,在撤消堆栈中只考虑代码的变化?

PS:我正在使用Visual Studio 2008


编辑:如果这种行为也让你烦恼,请投票在UserVoice上修复它!

Ser*_*sov 11

我创建了Disable Outlining Undo扩展,它排除了从录制到 Visual Studio 2017/2019 中的撤消/重做堆栈的展开和折叠操作。

感谢 Rick Sladkey 的想法!


Ric*_*key 6

我仔细研究了一下,发现 Visual Studio 中实际上有一个选项可以禁用此行为,但它似乎并未在用户界面中的任何地方公开。但是,您可以以编程方式设置它,我测试它确实有效,因此(技术上)是可能的。

选项是:

DefaultTextViewOptions.OutliningUndoOptionId

你这样设置:

textView.Options.SetOptionValue(DefaultTextViewOptions.OutliningUndoOptionId, false);
Run Code Online (Sandbox Code Playgroud)

有了这些信息,就可以编写一个非常简单的 Visual Studio 扩展来为所有新ITextView实例切换此设置。


spl*_*tor 5

您可以在Visual Studio UserVoice中投票修复它。

更新:原始链接已损坏。新链接在这里

  • 谢谢,但我知道这一点...我是创建此 UserVoice 条目的人;) (7认同)