Visual Studio: exclure les contours de la pile undo / redo

il y a quelque chose de vraiment gênant dans Visual Studio : quand je développe ou écrase une méthode ou une région de code, cette action est poussée sur la pile undo. Donc, si je édite un code dans une méthode, puis que j'écrase cette méthode, et que je veux ensuite annuler mon changement, je dois annuler deux fois : une fois pour l'action d'effondrement, et une fois pour le changement de code. Cela peut être très déroutant si vous avez étendu ou effondré plusieurs choses après avoir édité le code, l'éditeur continue de sauter à différents endroits et vous ne savez pas que vos changements aient été annulés ou non...

Donc ma question est : est-il possible de désactiver ce comportement ? c'est-à-dire que seuls les changements de code sont pris en compte dans la pile undo ?

PS: j'utilise Visual Studio 2008


EDIT: si ce comportement vous ennuie trop, merci vote pour le fixer sur UserVoice!

22
demandé sur Thomas Levesque 2009-11-30 02:12:50

5 réponses

vous pouvez voter pour la correction en Visual Studio UserVoice.

4
répondu splintor 2013-10-21 08:30:56

je ne crois pas qu'il existe un moyen de désactiver ce comportement.

comme alternative, les icônes undo et redo de la barre d'outils ont des rabattements d'historique qui vous permettent de voir visuellement un résumé de ce que les changements récents étaient que vous seriez en train de défaire ou de refaire. Cela peut parfois vous aider à vous assurer de défaire (ou de refaire) ce que vous attendez.

puisque ce n'est pas toujours suffisant pour savoir exactement ce que sont les changements (l'histoire de l'annulation n'affiche qu'un résumé), la solution I parfois l'utilisation de cette adresse est de combiner annuler (ctrl-z), rétablir (ctrl-y), et d'annuler de nouveau. La première annulation se déplace à l'endroit où le changement s'est produit (et annule ce changement). Le redo annulera l'Annulation (qui répète essentiellement le dernier changement effectué). Et la dernière annuler permet d'effectuer l'annulation de nouveau à la fenêtre défile à l'endroit où je peut voir l'annuler passe et peut confirmer si c'est le changement que je m'attendais à défaire. Ce n'est pas très efficace, mais il peut être très efficace pour s'assurer que le code est dans l'état qui est vraiment prévu.

2
répondu iammichael 2009-12-14 21:24:54

tout d'abord, il semble que toutes les opérations de contour ne sont pas enregistrées dans la pile undo/redo.

  • L'extension des contours (Ctrl+M/CTRL+M) est enregistrée dans la pile
  • activer / désactiver Tous les Décrivant (CTRL+C/CTRL+L) est enregistré dans la pile
  • Effondrement de définitions (CTRL+C/CTRL+O) n'est PAS enregistré dans la pile

Donc, autant que je sache, il n'est pas possible d'éviter l'enregistrement des opérations de Bascule dans la fonction annuler/rétablir pile dans Visual Studio 2008.

la seule option que vous avez pour activer/désactiver les contours pour chaque type de source. Pour C#, les contours peuvent être activés / désactivés dans Tools > Options > Text Editor > C# > Advanced"Enter outlining mode when files open" case à cocher.

2
répondu Laurent Etiemble 2009-12-15 16:41:05

la meilleure solution que je puisse proposer est de désactiver les contours en utilisant CTRL+M, puis CTRL+P.

1
répondu Cédric Guillemette 2009-12-10 15:51:41

j'ai fait un petit tour et j'ai découvert qu'il y a en fait une option dans Visual Studio pour désactiver ce comportement, et pourtant il ne semble pas être exposé n'importe où dans l'interface utilisateur. Toutefois, vous pouvez définir par programmation, et j'ai testé que cela fonctionne, il est (théoriquement) possible.

options:

DefaultTextViewOptions.OutliningUndoOptionId

et vous le réglez comme ceci:

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

avec cette information un visuel très simple Studio extension pourrait être écrit pour basculer ce paramètre pour tout nouveau ITextView instances.

1
répondu Rick Sladkey 2018-06-22 05:28:06