Wyłącz formatowanie kodu programu Visual Studio w Razor


119

Zostało to zadane wcześniej: dlaczego formatowanie kodu programu Visual Studio nie działa poprawnie w przypadku znaczników Razor?

Ale to pytanie ma kilka lat. A formatowanie Razor jest nadal całkowicie niedopuszczalne. Zrezygnowałem z naprawiania tego.

Czy mogę wyłączyć całe formatowanie programu Visual Studio dla plików CSHTML? Jeśli nie, czy mogę całkowicie wyłączyć całe formatowanie programu Visual Studio? Jakieś hacki innych firm, których mogę użyć? Coś musi być!

Zaktualizowałem do 2013 i formatowanie jest równie złe.

[EDYCJA]: 2015 jest również okropny. NAPRAWDĘ chciałbym, żeby to naprawili.

[EDYCJA]: 2017 jest również okropny. NAPRAWDĘ chciałbym, żeby to naprawili.

[EDYCJA]: 2019 jest również okropny. NAPRAWDĘ chciałbym, żeby to naprawili.


15
Gorzej

3
Poważnie. Musi być coś, co można z tym zrobić ...
JustMaier

7
JESZCZE GORZEJ w 2015!
Paul

4
Nie naprawiono w porównaniu z 2017 rtm
kwi

5
Nie naprawiono w roku 2018.
Dirk Boer

Odpowiedzi:


53

Nie możesz. Jest to wbudowana „funkcja” VS od pierwszej wersji .net (Visual studio 2002/2003).

Istnieje mnóstwo raportów o połączeniach dotyczących błędów formatowania, ale Microsoft całkowicie je ignoruje lub przenosi poprawkę do „następnej wersji”. Możesz zobaczyć przykładową odpowiedź Microsoft tutaj .

Można dodawać własne komentarze do Microsoft Zespołu tutaj


1
Szukałem tego ponownie z irytacją, nie wiem, czy coś zmienili, ale poprawka Metroid Huntera działa dla mnie w Razor stackoverflow.com/a/28053865/62829
mattmanser

4
Jak HTML w Visual Studio może nadal tak źle działać w 2015 roku?
schmoopy

1
Właściwie jest gorzej w 2015 niż w wersji 2013 (to samo dotyczy C #, gdzie będzie wciskać niepowiązane rzeczy za każdym razem, gdy otwierasz nawias). Kiedyś kochałem studio wizualne, ale to powoli go zabija.
youen

1
Uwaga: wszystkie linki są teraz martwe
'18

65

W menu Narzędzia -> Opcje -> Edytor tekstu -> HTML -> Zaawansowane

istnieje kluczowa pozycja Wklej, która mówi „Formatuj przy wklejaniu”, a obok niej znajduje się wartość logiczna. Zmiana tego na false wyłączyła dla mnie formatowanie przy wklejaniu w składni maszynki do golenia.

Używam VS Professional 2013, wersja 12.0.30110.00 Update 1


Dziękuję Ci! Automatyczne (mal) formatowanie wklejania doprowadzało mnie do szału. Wydaje się, że to go wyeliminowało.
Torrenty

Świetnie, to jest dokładnie to, co jest potrzebne, aby to odpędzić! Dzięki!
Martin S Ek

Głosowałbym w górę więcej niż jeden raz, jest to poprawna odpowiedź dla wersji 2013 up1 i nowszych.
Erik Simonic

2
Nie działa w Visual 2015? Odznaczono opcję „formatuj przy wklejaniu” w HTML / zaawansowanym, ale nadal podczas wklejania nadal pojawia się funky niesformatowanie / szalone wcięcia. Rozważam użycie innego edytora dla plików cshtml, ale wtedy straciłbym autouzupełnianie C #. Ta sytuacja jest szalona.
youen

5
Pracował dla mnie w VS2017.
Dave

37

Miejsca do zobaczenia:

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

(Wymaga instalacji rozszerzenia Web Essentials)

Ustaw na Fałsz

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

Ustaw na Fałsz

Z tymi ustawieniami nie mam żadnych problemów w Visual Studio 2013.

Kiedyś musiałem wciskać Ctrl-Z zbyt często, a jeśli zapomniałeś rozwikłać bałagan po napisaniu i przetestowaniu kodu, był to ogromny ból. Uważam, że Microsoft mógłby zrobić wiele, aby pomóc użytkownikom w skonfigurowaniu tego, a także uczynić go bardziej dostępnym.


3
Nie ma obszaru „podstawowe informacje o sieci”.
Paul

Świetna odpowiedź! Dręczyło mnie to od lat, ale nie więcej!
David Kirkland

2
@Paul Web Essentials to rozszerzenie VS, które ulepsza wiele rzeczy związanych z edytorami HTML, CSS, JS. Zainstalowanie go i wyłączenie automatycznego formatowania bardzo pomaga .
SandRock

3
To powinno być oznaczone jako odpowiedź. Zwłaszcza kwestia dotycząca Web Essentials. Dziękuję @dazbradbury!
Aggromonster

1
Druga opcja nie naprawia tego w VS2017, a pierwsza nawet nie istnieje.
ygoe

24

To, co mi zrobiło, to naciśnięcie CTRL + Z po wklejeniu, a następnie formatowanie jest usuwane.


3
pracowałem tutaj ... wklejałem kawałek, w tym <select> z serią atrybutów nokautu wiązania danych rozłożonych na ~ 8 linii i zabijało to osłonkę wielbłąda i usuwało dwukropki ... miałem zamiar wykręcić i ponownie wpisać to ... potem zrobiłem to Ctrl + Z i pisnęło, że zadziałało ... @ Miros
beauXjames

Głosowano za. To działa w VS 2015 :) Żadne inne rozwiązanie (różne ustawienia w menu Narzędzia> Opcje) nie działało u mnie, przynajmniej nie przy wklejaniu treści, która ma się w jakiś sposób zmieniać między kodem / html, tj. Wklejanie wierszy zawierających kod C #, a następnie html tagi lub wklejanie znaczników html bezpośrednio po wierszach z kodem C #.
savehansson

To zawsze działa, wszędzie w VS. To jedyny sposób na naprawienie bałaganu, jaki spowodowało formatowanie. (A może naprawdę wyczyściłeś to ręcznie?) Przyzwyczaiłem się już do tego, ale jest to bardzo irytujące.
ygoe

10

W moim przypadku R # okazał się winowajcą, można go wyłączyć tutaj:

ReSharper> Opcje> Edycja kodu> Razor> Edytor i formatowanie

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


Nie jest to jednak uwzględnione w programie Visual Studio, więc trzeba byłoby zainstalować to osobno.
Paul

2
Powodem, dla którego o tym wspominam, jest to, że ktoś może pomyśleć, że Visual Studio przeformatowało (tak jak ja), podczas gdy w rzeczywistości może to być R # (którego używa wielu programistów). Więc jeśli ktoś nie może go wyłączyć i ma zainstalowany R #, chciałby się upewnić, że jest wyłączony w obu.
hcoverlambda

5
W R # 2017.3 te ustawienia są w ReSharper | Opcje | Środowisko | Redaktor | Zachowanie redaktora
Dark Daskin,

1
W R # 2018.3 musiałem również ustawić zachowanie edytora, automatyczne formatowanie przy wklejaniu na „Brak”
EM0

7

Niestety jedynym sposobem uniknięcia automatycznego formatowania przy wklejaniu jest skomentowanie lokalizacji, w której zamierzasz wkleić nowy kod, a po operacji wklejania usunięcie instrukcji komentowania.

Wydaje się, że Wyszukaj i zamień nie uruchamia automatycznego formatowania. Ale wklejanie powoduje ponowne formatowanie całego bloku kodu.

To straszne, poza słowami. To sprawia, że ​​Visual Studio IDE jest praktycznie bezużyteczne do edycji Razor. Do plików Razor trzeba użyć zewnętrznego edytora.

Co gorsza, nawet najnowszy Visual Studio 2013 Update 1 ulega awarii podczas ciągłego edytowania widoków Razor.


6

Zabawne jest to, że możesz wyłączyć formatowanie C # i formatowanie HTML, ale nie formatowanie Razor.

Odznaczono „Narzędzia> Opcje> Edytor tekstu> C #> Formatowanie> Automatycznie formatuj przy wklejaniu” i to samo dla HTML.

Skutkuje to następującą zabawą w plikach cshtml:

  • Wklej kod HTML: bez formatu
  • Wklej kod C #: brak formatu
  • Wklej kod Razor: sformatuj wszystko źle

A ponieważ nie ma możliwości zmiany opcji Razor, myślę, że musisz z tym żyć.

Moje „rozwiązanie”: wklej i naciśnij ctrl-z, aby cofnąć automatyczne formatowanie


1
Ja też… ale to doprowadza mnie do szału!
Matt Kocaj,

Twoje rozwiązanie jest obejściem i zajmuje kilka minut podczas edytowania dużych plików.
Arturo Torres Sánchez

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.