Nonaktifkan pemformatan kode Visual Studio di Razor

118

Ini telah ditanyakan sebelumnya: Mengapa pemformatan kode Visual Studio tidak berfungsi dengan baik untuk markup Razor?

Tapi pertanyaan itu berumur beberapa tahun. Dan pemformatan Razor masih sepenuhnya tidak dapat diterima. Saya sudah menyerah untuk memperbaikinya.

Dapatkah saya menonaktifkan SEMUA pemformatan Visual Studio untuk file CSHTML? Jika tidak, dapatkah saya menonaktifkan semua format Visual Studio sepenuhnya? Adakah peretasan pihak ketiga yang dapat saya gunakan? Pasti ada sesuatu!

Saya telah meningkatkan ke 2013 dan formatnya sama buruknya.

[EDIT]: 2015 juga sangat buruk. Saya benar-benar berharap mereka akan memperbaikinya.

[EDIT]: 2017 juga sangat mengerikan. Saya benar-benar berharap mereka akan memperbaikinya.

[EDIT]: 2019 juga sangat mengerikan. Saya benar-benar berharap mereka akan memperbaikinya.

Paul
sumber
15
TERBURUK
3
Sungguh. Pasti ada sesuatu yang dapat dilakukan tentang ini ...
JustMaier
7
TERBURUK di 2015 JUGA!
Paul
4
Tidak diperbaiki pada vs 2017 rtm
apr
5
Tidak diperbaiki pada tahun 2018.
Dirk Boer

Jawaban:

53

Kamu tidak bisa. Ini dibangun di "fitur" VS sejak versi pertama .net (visual studio 2002/2003).

Ada banyak sekali laporan koneksi tentang bug pemformatan, tetapi Microsoft mengabaikannya sepenuhnya, atau mendorong perbaikan ke "versi berikutnya". Anda dapat melihat contoh jawaban Microsoft di sini .

Anda dapat mengirim umpan balik Anda sendiri ke Tim Microsoft di sini

Kuzgun
sumber
1
Saya mencari ini dengan jengkel lagi, saya tidak tahu apakah mereka telah mengubah sesuatu, tetapi perbaikan Metroid Hunter berfungsi untuk saya di Razor stackoverflow.com/a/28053865/62829
mattmanser
4
Bagaimana HTML di studio visual masih sangat buruk di tahun 2015?
schmoopy
1
Sebenarnya ini lebih buruk pada tahun 2015 daripada versi 2013 (hal yang sama berlaku untuk C # di mana itu akan membuat indentasi hal-hal yang tidak terkait setiap kali Anda membuka brace). Saya dulu suka studio visual tetapi ini perlahan membunuhnya.
youen
1
Catatan: tautan penghubung semuanya mati sekarang
jrh
64

Di bawah Alat -> Opsi -> Editor Teks -> HTML -> Lanjutan

ada Tempel item nilai kunci yang mengatakan "Format saat menempel" dan memiliki nilai boolean di sebelahnya. Mengubah ini menjadi salah telah menonaktifkan pemformatan pada tempel untuk saya dalam sintaks pisau cukur.

Saya menggunakan VS Professional 2013, Version 12.0.30110.00 Update 1

Droydn
sumber
Terima kasih! Pemformatan otomatis (mal) pada tempel membuat saya gila. Ini sepertinya telah menghilangkannya.
Torrents
Luar biasa, inilah yang dibutuhkan untuk menyingkirkan ini! Terima kasih!
Martin S Ek
Saya akan memilih Anda lebih dari satu kali, Ini adalah respons yang benar untuk versi vs 2013 up1 dan yang lebih baru.
Erik Simonic
2
Tidak berfungsi dalam visual 2015? Saya telah menghapus centang "format saat menempel" di HTML / lanjutan, tetapi masih mendapatkan unformatting funky / indentasi gila saat menempel. Saya sedang mempertimbangkan untuk menggunakan editor lain untuk file cshtml tetapi kemudian saya kehilangan pelengkapan otomatis C #. Situasi ini gila.
youen
5
Bekerja untuk saya di VS2017.
Dave
36

Tempat untuk dicari:

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

(Memerlukan penginstalan ekstensi Web Essentials)

Setel ke False

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

Setel ke False

Dengan pengaturan ini saya tidak mengalami masalah dalam Visual Studio 2013.

Saya dulu harus menekan Ctrl-Z terlalu sering, dan jika Anda lupa mengurai kekacauan setelah kode Anda ditulis dan diuji, sangat merepotkan. Saya merasa Microsoft dapat melakukan banyak hal untuk membantu pengguna mengkonfigurasi ini serta membuatnya lebih mudah diakses.

dazbradbury
sumber
3
Tidak ada area 'web penting'.
Paul
Jawaban yang bagus! Ini telah mengganggu saya selama bertahun-tahun, tetapi tidak lebih!
David Kirkland
2
@Paul Web Essentials adalah ekstensi VS yang meningkatkan banyak hal yang berkaitan dengan editor HTML, CSS, JS. Memasangnya dan menonaktifkan format otomatis sangat membantu .
SandRock
3
Ini harus ditandai sebagai jawabannya. Terutama baris tentang Web Essentials. Terima kasih @dazbradbury!
Aggromonster
1
Opsi kedua tidak memperbaikinya di VS2017 dan yang pertama bahkan tidak ada.
ygoe
24

Apa triknya bagi saya adalah menekan CTRL + Z setelah menempelkan, lalu pemformatan dihapus.

pengguna2920118
sumber
3
bekerja di sini ... saya menempelkan sepotong termasuk <select> dengan serangkaian atribut knockout data-bind yang tersebar di ~ 8 baris dan itu membunuh selubung unta dan menghapus titik dua ... hendak menyepak dan mengetik ulang itu ... kemudian saya melakukan Ctrl + Z ini dan tentang menjerit bahwa itu berhasil ... @ Miros
beauXjames
Suara positif. Ini berfungsi di VS 2015 :) Tidak ada solusi lain (berbagai pengaturan di Alat> Opsi) yang berhasil untuk saya, setidaknya tidak saat menempelkan konten yang seharusnya berubah antara kode / html dengan cara tertentu, yaitu menempelkan baris yang berisi kode C # diikuti oleh html tag atau menempelkan markup html langsung setelah baris dengan kode C #.
savehansson
Ini selalu berhasil, di mana pun di VS. Ini adalah satu - satunya cara untuk memperbaiki kekacauan yang dilakukan oleh pemformatan. (Atau apakah Anda benar-benar membersihkannya secara manual ??) Saya sudah terbiasa, tapi sangat menjengkelkan.
ygoe
10

Dalam kasus saya R # menjadi pelakunya, dapat dinonaktifkan di sini:

ReSharper> Opsi> Pengeditan Kode> Razor> Editor & Pemformatan

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

hcoverlambda
sumber
Ini tidak disertakan dengan Visual Studio jadi Anda perlu menginstal ini secara terpisah.
Paul
2
Alasan saya menyebutkannya di sini adalah seseorang mungkin berpikir bahwa Visual Studio melakukan pemformatan ulang (seperti yang saya lakukan) padahal sebenarnya bisa menjadi R # (Yang banyak digunakan pengembang). Jadi jika seseorang tidak dapat menonaktifkannya dan mereka menginstal R #, mereka ingin memastikan itu dinonaktifkan di keduanya.
hcoverlambda
5
Di R # 2017.3 pengaturan ini ada di ReSharper | Pilihan | Lingkungan | Editor | Perilaku Editor
Dark Daskin
1
Di R # 2018.3 Saya juga harus menyetel Perilaku Editor, Format otomatis saat ditempelkan ke "Tidak Ada"
EM0
7

Sayangnya, satu-satunya cara untuk mencegah pemformatan otomatis saat menempelkan adalah dengan mengomentari lokasi tempat Anda akan menempelkan beberapa kode baru dan setelah operasi menempelkan untuk menghapus instruksi komentar.

Telusuri & Ganti tampaknya tidak memicu pemformatan otomatis. Tetapi menempelkan memformat ulang seluruh blok kode.

Ini mengerikan di luar kata-kata. Itu membuat Visual Studio IDE hampir tidak dapat digunakan untuk mengedit Razor. Seseorang harus menggunakan editor eksternal untuk file Razor.

Yang lebih buruk lagi, bahkan Visual Studio 2013 Pembaruan 1 terbaru lumpuh saat mengedit tampilan Razor sepanjang waktu.

tamu
sumber
6

Bagian yang menyenangkan adalah, Anda dapat menonaktifkan pemformatan C # dan pemformatan HTML tetapi tidak pemformatan Razor.

Saya telah menghapus centang "Tools> Options> Text Editor> C #> Formatting> Automatically format on paste" dan hal yang sama untuk HTML.

Yang menghasilkan pengalaman menyenangkan berikut dalam file cshtml:

  • Tempel kode HTML: tanpa format
  • Tempel kode C #: tanpa format
  • Tempel kode Razor: format semuanya salah

Dan karena tidak ada opsi untuk mengubah opsi Razor, Anda harus hidup dengan ini, saya kira.

"Solusi" saya: tempel dan ctrl-z untuk membatalkan format otomatis

Christiaan Maks
sumber
1
Aku juga .. tapi itu membuatku gila!
Matt Kocaj
Solusi Anda adalah penyelesaian, dan membutuhkan beberapa menit saat mengedit file besar.
Arturo Torres Sánchez
0

Saya menemukan pengaturan ini di Resharper 2019, yang telah meningkatkan pengalaman saya: masukkan deskripsi gambar di sini

Stephen Oberauer
sumber