Visual Studio: исключить выделение из стека отмены /повтора

В Visual Studio есть что-то действительно раздражающее: когда я раскрываю или сворачиваю область метода или кода, это действие помещается в стек отмены. Поэтому, если я отредактирую некоторый код в методе, затем сверну этот метод, а затем захочу отменить свое изменение, мне придется отменить дважды: один раз для действия свертывания и один раз для изменения кода. Это может ОЧЕНЬ сбивать с толку, если после редактирования кода вы развернули или свернули несколько вещей, редактор продолжает переходить в разные места, и вы не знаете, отменены ли ваши изменения или нет ...

Итак, мой вопрос: возможно ли отключить такое поведение? то есть, что в стеке отмены учитываются только изменения в коде?

PS: я использую Visual Studio 2008


РЕДАКТИРОВАТЬ: если это поведение вас тоже раздражает, проголосуйте, чтобы исправить это в UserVoice !

22 голоса | спросил Thomas Levesque 30 12009vEurope/Moscow11bEurope/MoscowMon, 30 Nov 2009 02:12:50 +0300 2009, 02:12:50

5 ответов


0

Вы можете проголосовать за исправление в Visual Studio UserVoice .

ответил splintor 21 +04002013-10-21T12:30:56+04:00312013bEurope/MoscowMon, 21 Oct 2013 12:30:56 +0400 2013, 12:30:56
0

Я не верю, что есть способ отключить это поведение.

В качестве альтернативы значки панели инструментов отмены и повтора имеют раскрывающиеся списки истории, которые позволяют визуально увидеть сводку последних изменений, которые вы бы отменили или повторили. Иногда это может помочь гарантировать, что вы отменяете (или переделываете) то, что ожидаете.

Поскольку этого не всегда достаточно, чтобы точно знать, что это за изменения (история отмены отображает только сводку), решение, которое я иногда использую для решения этой проблемы, состоит в объединении отмены (ctrl-z) и повторения (ctrl-y ) и снова отмените. Первая отмена перемещается туда, где произошло изменение (и отменяет это изменение). Повторить отменяет отмену (которая по существу повторяет последнее сделанное изменение). И последняя отмена выполнит отмену снова с окном, прокручиваемым до места, где я на самом деле вижу происходящее отмену, и может подтвердить, было ли это изменение, которое я ожидал отменить. Это не очень эффективно, но может быть очень эффективно, чтобы гарантировать, что код находится в состоянии, которое действительно ожидается.

ответил iammichael 15 TueEurope/Moscow2009-12-15T00:24:54+03:00Europe/Moscow12bEurope/MoscowTue, 15 Dec 2009 00:24:54 +0300 2009, 00:24:54
0

Во-первых, кажется, что не все описывающие операции записываются в стек отмены /повторения.

  • Расширение Toggle Outlining (CTRL + M /CTRL + M) записывается в стеке
  • Toggle All Outlining (CTRL + M /CTRL + L) записывается в стеке
  • Свернуть до определений (CTRL + M /CTRL + O) НЕ записано в стеке

Итак, насколько я знаю, невозможно избежать записи операций Toggle в стек отмены /повтора в Visual Studio 2008.

Единственная опция, которая у вас есть, это включить /отключить выделение для каждого типа источника. Для C # выделение может быть включено /отключено в Tools > Options > Text Editor > C# > Advanced с помощью "Enter outlining mode when files open" флажок.

ответил Laurent Etiemble 15 TueEurope/Moscow2009-12-15T19:41:05+03:00Europe/Moscow12bEurope/MoscowTue, 15 Dec 2009 19:41:05 +0300 2009, 19:41:05
0

Лучшее решение, которое я могу предложить, - отключить выделение, используя CTRL + M, а затем CTRL + P.

ответил Cédric Guillemette 10 ThuEurope/Moscow2009-12-10T18:51:41+03:00Europe/Moscow12bEurope/MoscowThu, 10 Dec 2009 18:51:41 +0300 2009, 18:51:41
0

Я немного покопался и обнаружил, что на самом деле в Visual Studio есть опция, позволяющая отключить это поведение, и, тем не менее, она не отображается нигде в пользовательском интерфейсе. Однако вы можете установить его программно, и я проверил, что он работает, так что это (технически) возможно.

Варианты:

DefaultTextViewOptions.OutliningUndoOptionId

и вы установите его так:

textView.Options.SetOptionValue(DefaultTextViewOptions.OutliningUndoOptionId, false);

С помощью этой информации можно написать очень простое расширение Visual Studio, чтобы переключать этот параметр для всех новых экземпляров ITextView.

ответил Rick Sladkey 22 J0000006Europe/Moscow 2018, 08:28:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132