Actualización: Esta respuesta ya está disponible as a video.
He estado luchando para encontrar la manera de hacerlo. Sé que esto no responde tu pregunta exacta. Pero realmente lo que estás buscando es un flujo de trabajo en el que puedas hacer cambios de código con un retraso nulo (o casi nulo), y creo que ya descubrí lo más cercano que puedes obtener con Visual Studio. (Y por lo tanto, evitando un gran esfuerzo de ingeniería y lidiando con proyectos "anormales").
La manera de lograr este flujo de trabajo es en realidad asombrosamente simple, una vez se piensa en ello: teclas
Uso de acceso directo!
La primera forma en que se me ocurrió es utilizar el método normal de edición y continuación para establecer un punto de interrupción. Solo al usar el teclado puede hacer esto considerablemente más rápido. Esto solo funciona con un código que se llama en un bucle (por ejemplo: draw/update). Haga clic en el código que desea modificar, añadir un punto de interrupción (F9), casi inmediatamente se dio en el punto de interrupción, modificar su código, retire la breakoint (F9), y ejecute el código de nuevo (F5).
Esto es bastante bueno. No es necesario que use el mouse para alcanzar el objetivo relativamente pequeño "Añadir punto de corte" en la columna de la izquierda. Pero mueve el foco de entrada al principio de la línea, por lo que generalmente debe usar el mouse nuevamente para corregirlo antes de poder comenzar a editar.
Quiero algo más rápido. Así que se me ocurrió una solución mejor:
De nuevo, usando el teclado: Pulsar Ctrl +Alt +rotura para "romper todo". Esto ingresa al depurador casi al instante, sin tener que preocuparse por establecer un punto de interrupción o si el código que desea modificar se está ejecutando en un bucle. Esto cambiará la ventana del editor y se enfocará en el documento donde se rompe la ejecución, pero puede corregirlo inmediatamente presionando Ctrl + - para "Navegar hacia atrás".
Luego puede hacer sus ediciones y simplemente presione F5 para verlas en acción.Solo debe usar el mouse una vez (o no usarlo) para seleccionar inicialmente dónde desea comenzar a escribir, tal como lo esperaría.
cierto Ctrl +Alt +rotura y Ctrl +- son horribles combinaciones de teclas para algo que desea ser capaz de hacer muy rápidamente. Y sería mejor si hubiera solo una tecla para presionar.
Si tiene Visual Studio completo, probablemente podría convertirlo en una macro o complemento. Express no los tiene, así que lo mejor que puedes hacer es modificar tus enlaces de teclas (Herramientas, Personalizar, Teclado ...) y vincularlo a dos teclas adyacentes, que puedes presionar en sucesión rápida. O use una utilidad macro externa.
Personalmente configuré las dos combinaciones de teclas que se presionarán sucesivamente (no parece necesitar un retraso entre las dos) mediante una macro establecida en un botón de repuesto en mi mouse. Lo cual funciona razonablemente bien, ya que generalmente estoy seleccionando texto al mismo tiempo. También podría agregar una macro de teclado más tarde.
Hasta ahora he identificado dos trampas de menor importancia de este método:
- Al ejecutar la aplicación de nuevo, Visual Studio le transfiere el enfoque. Sería bueno si mantuviera el foco. Agregar un clic con el botón izquierdo del mouse a mi macro es una solución parcial para volver a editar rápidamente el código.
- "Navegar hacia atrás" no conserva la selección de texto, solo la posición de intercalación.
¿Le sugiero que lea los valores que desea editar de un archivo, para poder editar el archivo y volver a leerlo cuando lo desee mientras se ejecuta? – Benjamin
Sí, esta es una buena práctica, pero también es bueno poder programar de forma interactiva. Esto generalmente se hace mediante el uso de un lenguaje de scripting. Esperaba que C# pudiera hacer lo que Java puede hacer en esta instancia. Desafortunadamente, parece que alguien tomó una decisión de diseño para bloquear los archivos fuente para que sean de solo lectura durante la ejecución sin pensar en cómo podría ser útil permitir las ediciones. – zfedoran