Desative a formatação de código do Visual Studio no Razor

118

Isso já foi perguntado antes: Por que a formatação de código do Visual Studio não funciona corretamente para a marcação do Razor?

Mas essa pergunta tem alguns anos. E a formatação do Razor ainda é completamente inaceitável. Desisti de consertá-lo.

Posso desabilitar TODA a formatação do Visual Studio para arquivos CSHTML? Se não, posso desabilitar totalmente a formatação do Visual Studio? Quaisquer hacks de terceiros que eu possa usar? Tem que haver algo!

Eu atualizei para 2013 e a formatação é tão ruim quanto.

[EDIT]: 2015 também é horrível. Eu realmente gostaria que eles consertassem isso.

[EDIT]: 2017 também é horrível. Eu realmente gostaria que eles consertassem isso.

[EDIT]: 2019 também é horrível. Eu realmente gostaria que eles consertassem isso.

Paulo
fonte
15
É PIOR em 2013.
TombMedia
3
Seriamente. Tem que haver algo que possa ser feito sobre isso ...
JustMaier
7
É PIOR em 2015 TAMBÉM!
Paulo,
4
Não corrigido em vs 2017 rtm
abril
5
Não corrigido no ano de 2018.
Dirk Boer

Respostas:

53

Você não pode. Este é um "recurso" integrado do VS desde a primeira versão .net (visual studio 2002/2003).

Existem toneladas de relatórios de conexão sobre os bugs de formatação, mas a Microsoft os ignora completamente ou está empurrando a correção para a "próxima versão". Você pode ver um exemplo de resposta da Microsoft aqui .

Você pode postar seus próprios comentários para a equipe da Microsoft aqui

Kuzgun
fonte
1
Eu estava pesquisando exasperado novamente, não sei se eles mudaram alguma coisa, mas a correção de Metroid Hunter funciona para mim em Razor stackoverflow.com/a/28053865/62829
mattmanser
4
Como o HTML no Visual Studio ainda pode ser tão ruim em 2015?
schmoopy
1
Na verdade, é pior em 2015 do que a versão de 2013 (o mesmo se aplica ao C #, onde ele indentará coisas não relacionadas cada vez que você abrir uma chave). Eu costumava adorar estúdio visual, mas isso está acabando com isso aos poucos.
Youen
1
Nota: os links de conexão estão todos mortos agora
jrh
64

Em Ferramentas -> Opções -> Editor de Texto -> HTML -> Avançado

há um item de valor-chave Colar que diz "Formatar ao colar" e tem um valor booleano próximo a ele. Alterar isso para falso desabilitou a formatação ao colar para mim na sintaxe do razor.

Estou usando o VS Professional 2013, versão 12.0.30110.00 Atualização 1

Droydn
fonte
Obrigado! A formatação automática (mal) ao colar estava me deixando louco. Isso parece tê-lo eliminado.
Torrents de
Incrível, isso é exatamente o que é necessário para afastar isso! THX!
Martin S Ek de
Eu votaria em você mais de uma vez, Esta é uma resposta correta para vs versão 2013 up1 e mais recente.
Erik Simonic
2
Não funciona no visual de 2015? Desmarquei "formatar ao colar" em HTML / avançado, mas ainda consigo desformatação / recuo maluco ao colar. Estou pensando em usar outro editor para arquivos cshtml, mas perderia o preenchimento automático C #. Essa situação é uma loucura.
youen
5
Trabalhou para mim no VS2017.
Dave
36

Os lugares para procurar:

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

(Requer a instalação da extensão Web Essentials)

Definido como falso

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

Definido como falso

Com essas configurações, não tenho problemas no Visual Studio 2013.

Eu costumava ter que pressionar Ctrl-Z com muita frequência, e se você se esquecesse de desemaranhar a bagunça depois que seu código fosse escrito e testado, era uma dor enorme. Acho que a Microsoft pode fazer muito para ajudar os usuários a configurar isso, bem como torná-lo mais acessível.

Dazbradbury
fonte
3
Não existe uma área de 'fundamentos da web'.
Paul
Ótima resposta! Isso tem me incomodado há anos, mas não mais!
David Kirkland
2
@Paul Web Essentials é uma extensão do VS que aprimora muitas coisas relacionadas aos editores HTML, CSS e JS. Instalá-lo e desabilitar a formatação automática ajuda muito .
SandRock
3
Isso deve ser marcado como a resposta. Especialmente a linha sobre Web Essentials. Obrigado @dazbradbury!
Aggromonster
1
A segunda opção não corrige no VS2017 e a primeira nem existe.
ygoe
24

O que funcionou para mim foi pressionar CTRL + Z após colar, e a formatação foi removida.

user2920118
fonte
3
trabalhei aqui ... eu estava colando um pedaço incluindo um <select> com uma série de atributos de nocaute data-bind espalhados por ~ 8 linhas e estava matando o invólucro do camelo e removendo os dois pontos ... estava prestes a punt e redigitar isso ... então eu fiz isso Ctrl + Z e gritei que funcionou ... @ Miros
beauXjames 29/10/2014
Votos positivos. Isso funciona no VS 2015 :) Nenhuma outra solução (várias configurações em Ferramentas> Opções) funcionou para mim, pelo menos não ao colar conteúdo que deveria mudar entre código / html de alguma forma, ou seja, colar linhas contendo código C # seguido por html tags ou colando a marcação html diretamente após as linhas com código C #.
savehansson
Isso sempre funciona, em qualquer lugar no VS. Essa é a única maneira de desfazer a bagunça que a formatação causou. (Ou você realmente limpou manualmente ??) Já me acostumei, mas é muito chato.
ygoe
10

No meu caso R # acabou sendo o culpado, pode ser desabilitado aqui:

ReSharper> Opções> Edição de código> Razor> Editor e formatação

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

Hcoverlambda
fonte
Isso não está incluído no Visual Studio, portanto, você teria que instalá-lo separadamente.
Paulo
2
O motivo pelo qual menciono isso aqui é que alguém pode estar pensando que o Visual Studio estava fazendo a reformatação (como eu fiz), quando na verdade poderia ser R # (que muitos desenvolvedores usam). Portanto, se alguém não conseguir desativá-lo e tiver o R ​​# instalado, deverá certificar-se de que está desativado em ambos.
hcoverlambda
5
No R # 2017.3, essas configurações estão em ReSharper | Opções | Meio Ambiente | Editor | Comportamento do Editor
Dark Daskin
1
Em R # 2018.3 também tive que definir o comportamento do editor, formatação automática ao colar como "Nenhum"
EM0
7

Infelizmente, a única maneira de evitar a autoformatação ao colar é comentar o local onde você vai colar algum código novo e, após a operação de colar, remover as instruções de comentário.

Pesquisar e substituir parece não acionar a formatação automática. Mas a colagem reformata todo o bloco de código.

Isso é terrível além das palavras. Isso torna o IDE do Visual Studio virtualmente inutilizável para edição do Razor. É necessário usar um editor externo para arquivos Razor.

O que é ainda pior, mesmo a última atualização 1 do Visual Studio 2013 trava durante a edição de visualizações do Razor o tempo todo.

convidado
fonte
6

A parte divertida é que você pode desabilitar a formatação C # e HTML, mas não a formatação Razor.

Desmarquei "Ferramentas> Opções> Editor de texto> C #> Formatação> Formatar automaticamente ao colar" e o mesmo para HTML.

O que resulta na seguinte experiência divertida em arquivos cshtml:

  • Colar código HTML: sem formato
  • Colar código C #: sem formato
  • Cole o código do Razor: formate tudo errado

E como não há opção de mudar as opções do Razor, você tem que conviver com isso, eu acho.

Minha "solução": colar e ctrl-z para desfazer a formatação automática

Christiaan Maks
fonte
1
Eu também .. mas isso está me deixando louco!
Matt Kocaj
Sua solução é uma solução alternativa e leva minutos ao editar arquivos grandes.
Arturo Torres Sánchez
0

Encontrei essas configurações no Resharper 2019, que melhoraram minha experiência: insira a descrição da imagem aqui

Stephen Oberauer
fonte