Deshabilitar el formato de código de Visual Studio en Razor


118

Esto se ha preguntado antes: ¿Por qué el formato de código de Visual Studio no funciona correctamente para el marcado de Razor?

Pero esa pregunta tiene un par de años. Y el formateo de Razor sigue siendo completamente inaceptable. He renunciado a arreglarlo.

¿Puedo deshabilitar TODO el formato de Visual Studio para archivos CSHTML? Si no es así, ¿puedo deshabilitar todo el formato de Visual Studio por completo? ¿Algún truco de terceros que pueda usar? ¡Tiene que haber algo!

Me actualicé a 2013 y el formato es igual de malo.

[EDITAR]: 2015 también es horrible. REALMENTE deseo que arreglen esto.

[EDITAR]: 2017 también es terrible. REALMENTE deseo que arreglen esto.

[EDITAR]: 2019 también es espantoso. REALMENTE deseo que arreglen esto.


15
Es PEOR en 2013.
TombMedia

3
Seriamente. Tiene que haber algo que se pueda hacer al respecto ...
JustMaier

7
¡También es PEOR en 2015!
Paul

4
No solucionado en vs 2017 rtm
abril de

5
No fijo en el año 2018.
Dirk Boer

Respuestas:


53

No puedes. Esta es una "característica" incorporada de VS desde la primera versión .net (visual studio 2002/2003).

Hay toneladas de informes de conexión sobre los errores de formato, pero Microsoft los ignora por completo o empuja la solución a la "próxima versión". Puede ver un ejemplo de respuesta de Microsoft aquí .

Puede publicar sus propios comentarios en Microsoft Team aquí


1
Estaba buscando esto con exasperación nuevamente, no sé si han cambiado algo, pero la solución de Metroid Hunter funciona para mí en Razor stackoverflow.com/a/28053865/62829
mattmanser

4
¿Cómo puede el HTML en Visual Studio seguir siendo tan malo en 2015?
schmoopy

1
En realidad, es peor en 2015 que en la versión de 2013 (lo mismo se aplica a C #, donde aplicará sangría a cosas no relacionadas cada vez que abra una llave). Solía ​​amar el estudio visual, pero esto lo está matando lentamente.
youen

1
Nota: los enlaces de conexión están todos muertos ahora
jrh

64

En Herramientas -> Opciones -> Editor de texto -> HTML -> Avanzado

hay un elemento de valor clave Pegar que dice "Formatear al pegar" y tiene un valor booleano al lado. Cambiar esto a falso me ha deshabilitado el formateo al pegar en la sintaxis de razor.

Estoy usando VS Professional 2013, versión 12.0.30110.00 actualización 1


¡Gracias! El formato automático (mal) al pegar me estaba volviendo loco. Esto parece haberlo eliminado.
Torrents

¡Impresionante, esto es exactamente lo que se necesita para alejar esto! ¡Gracias!
Martin S Ek

Lo votaría más de una vez. Esta es una respuesta correcta para la versión 2013 up1 y posteriores.
Erik Simonic

2
¿No funciona en visual 2015? He desmarcado "formato al pegar" en HTML / avanzado, pero sigo teniendo problemas al pegar sin formato / sangrías locas. Estoy considerando usar otro editor para archivos cshtml, pero luego perdería el autocompletado de C #. Esta situación es una locura.
youen

5
Trabajó para mí en VS2017.
Dave

36

Los lugares para buscar:

Tools -> Options -> Web Essentials -> HTML -> Auto-format HTML on Enter

(Requiere la instalación de la extensión Web Essentials)

Establecer en falso

Tools -> Options -> Text Editor -> HTML -> Advanced -> Format on Paste

Establecer en falso

Con esta configuración no tengo problemas en Visual Studio 2013.

Solía ​​tener que presionar Ctrl-Z con demasiada frecuencia, y si olvidaba desenredar el lío una vez que su código estaba escrito y probado era un gran dolor. Siento que Microsoft podría hacer mucho para ayudar a los usuarios a configurar esto y hacerlo más accesible.


3
No hay un área de "elementos esenciales de la web".
Paul

¡Gran respuesta! Esto me ha estado molestando durante años, ¡pero no más!
David Kirkland

2
@Paul Web Essentials es una extensión de VS que mejora muchas cosas relacionadas con los editores de HTML, CSS y JS. Instalarlo y deshabilitar el formato automático ayuda mucho .
SandRock

3
Esto debe marcarse como la respuesta. Especialmente la línea sobre Web Essentials. ¡Gracias @dazbradbury!
Aggromonster

1
La segunda opción no lo soluciona en VS2017 y la primera ni siquiera existe.
ygoe

24

Lo que hizo el truco para mí fue presionar CTRL + Z después de pegar, luego se elimina el formato.


3
trabajó aquí ... estaba pegando un fragmento que incluía un <select> con una serie de atributos de eliminación de enlace de datos repartidos en ~ 8 líneas y estaba matando la carcasa del camello y quitando los dos puntos ... estaba a punto de despejar y volver a escribir eso ... luego hice esto Ctrl + Z y casi chillé que funcionaba ... @ Miros
beauXjames

Voto a favor. Esto funciona en VS 2015 :) Ninguna otra solución (varias configuraciones en Herramientas> Opciones) funcionó para mí, al menos no al pegar contenido que se supone que cambia entre código / html de alguna manera, es decir, pegar líneas que contienen código C # seguido de html etiquetas o pegar el marcado html directamente después de las líneas con código C #.
savehansson

Esto siempre funciona, en todas partes en VS. Esta es la única forma de deshacer el desorden que causó el formateo. (¿O realmente lo limpiaste manualmente?) Ya me acostumbré, pero es muy molesto.
ygoe

10

En mi caso, R # terminó siendo el culpable, se puede desactivar aquí:

ReSharper> Opciones> Edición de código> Razor> Editor y formato

https://www.jetbrains.com/help/resharper/2016.1/Reference__Options__Languages__Razor__Editor.html


Sin embargo, esto no se incluye con Visual Studio, por lo que habría tenido que instalarlo por separado.
Paul

2
La razón por la que lo menciono aquí es que alguien puede estar pensando que Visual Studio estaba haciendo el reformateo (como lo hice yo) cuando en realidad podría ser R # (que muchos desarrolladores usan). Entonces, si alguien no puede deshabilitarlo y tiene R # instalado, querrá asegurarse de que esté deshabilitado en ambos.
hcoverlambda

5
En R # 2017.3, estas configuraciones están en ReSharper | Opciones | Medio ambiente | Editor | Comportamiento del editor
Dark Daskin

1
En R # 2018.3 también tuve que configurar el comportamiento del editor, formato automático al pegar en "Ninguno"
EM0

7

Desafortunadamente, la única forma de evitar el formato automático al pegar es comentar la ubicación donde va a pegar un código nuevo y, después de la operación de pegar, eliminar las instrucciones de comentario.

Buscar y reemplazar parece no activar el formato automático. Pero pegar reformatea todo el bloque de código.

Esto es terrible más allá de las palabras. Hace que Visual Studio IDE sea prácticamente inutilizable para la edición de Razor. Uno tiene que usar un editor externo para archivos Razor.

Lo que es aún peor, incluso la última actualización 1 de Visual Studio 2013 se bloquea al editar vistas de Razor todo el tiempo.


6

La parte divertida es que puede deshabilitar el formato C # y el formato HTML, pero no el formato Razor.

He desmarcado "Herramientas> Opciones> Editor de texto> C #> Formato> Formatear automáticamente al pegar" y lo mismo para HTML.

Lo que da como resultado la siguiente experiencia divertida en archivos cshtml:

  • Pegar código HTML: sin formato
  • Pegar código C #: sin formato
  • Pegar código de Razor: formatee todo mal

Y como no hay opción para cambiar las opciones de Razor, supongo que tienes que vivir con esto.

Mi "solución": pega y ctrl-z para deshacer el formato automático


1
Yo también ... ¡pero me está volviendo loco!
Matt Kocaj

Su solución es una solución alternativa y lleva unos minutos al editar archivos grandes.
Arturo Torres Sánchez

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.