instalar - Visual Studio: excluir esquemas de la pila de deshacer/rehacer
vs code autoclose html (5)
En primer lugar, parece que no todas las operaciones de esbozo se registran en la pila de deshacer / rehacer.
- Toggle Outlining Expansion (CTRL + M / CTRL + M) se registra en la pila
- Toggle All Outlining (CTRL + M / CTRL + L) se registra en la pila
- El colapso a las definiciones (CTRL + M / CTRL + O) NO se registra en la pila
Por lo que sé, no es posible evitar la grabación de las operaciones de alternancia en la pila de deshacer / rehacer en Visual Studio 2008.
La única opción que tiene es habilitar / deshabilitar el esquema para cada tipo de fuente. Para C #, el esquema se puede habilitar / deshabilitar en Tools > Options > Text Editor > C# > Advanced
con la casilla de verificación "Enter outlining mode when files open"
.
Hay algo realmente molesto en Visual Studio: cuando amplío o contraigo un método o una región de código, esta acción se inserta en la pila de deshacer. Entonces, si edito algún código en un método, luego colapso ese método y luego deseo deshacer mi cambio, tengo que deshacer dos veces: una para la acción de contraer y una para el cambio de código. Esto puede ser MUY confuso si expandió o colapsó varias cosas después de editar el código, el editor sigue saltando a diferentes lugares y no sabe si sus cambios se han deshecho o no ...
Entonces mi pregunta es: ¿es posible deshabilitar ese comportamiento? es decir, que solo los cambios en el código se toman en cuenta en la pila de deshacer?
PS: estoy usando Visual Studio 2008
EDITAR: si este comportamiento también le molesta, ¡ vote para corregirlo en UserVoice !
Hice una pequeña ojeada y descubrí que, de hecho, hay una opción en Visual Studio para deshabilitar este comportamiento y, sin embargo, no parece estar expuesto en ninguna parte de la interfaz de usuario. Sin embargo, puede configurarlo programáticamente y comprobé que funciona, por lo que es (técnicamente) posible.
Las opciones son:
DefaultTextViewOptions.OutliningUndoOptionId
y lo pones así:
textView.Options.SetOptionValue(DefaultTextViewOptions.OutliningUndoOptionId, false);
Con esta información, se podría escribir una extensión de Visual Studio muy simple para alternar esta configuración para todas las nuevas instancias de ITextView
.
La mejor solución que puedo proponer es deshabilitar el esquema usando CTRL + M, luego CTRL + P.
No creo que haya una manera de deshabilitar este comportamiento.
Como alternativa, los iconos de la barra de herramientas para deshacer y rehacer tienen un menú desplegable de historial que le permite ver visualmente un resumen de los cambios recientes que se estarían deshaciendo o rehaciendo. A veces, esto puede ayudar a garantizar que esté deshaciendo (o rehaciendo) lo que espera.
Como eso no siempre es suficiente para saber exactamente cuáles son los cambios (el historial de deshacer solo muestra un resumen), la solución que ocasionalmente utilizo para solucionar esto es combinar deshacer (ctrl-z), rehacer (ctrl-y) y deshacer de nuevo La primera acción de deshacer se mueve a donde ocurrió el cambio (y deshace ese cambio). El rehacer deshará el deshacer (que esencialmente repite el último cambio realizado). Y la última acción de deshacer realizará la operación de deshacer nuevamente con la ventana desplazada a la ubicación donde realmente puedo ver que se está realizando la acción de deshacer y puedo confirmar si ese es el cambio que esperaba deshacer. No es muy eficiente, pero puede ser muy eficaz para garantizar que el código esté en el estado que realmente se espera.
Puedes votar para corregirlo en Visual Studio UserVoice .