Отключить форматирование кода Visual Studio в Razor

Об этом уже спрашивали: Почему не Форматирование кода Visual Studio правильно работает с разметкой Razor?

Но этому вопросу уже пару лет. А форматирование Razor по-прежнему совершенно неприемлемо. Я отказался от этого.

Могу ли я отключить ВСЕ форматирование Visual Studio для файлов CSHTML? Если нет, могу ли я полностью отключить все форматирование Visual Studio? Какие сторонние хаки я могу использовать? Что-то должно быть!

Я обновился до 2013 года, и форматирование такое же плохое.

[РЕДАКТИРОВАТЬ]: 2015 год тоже ужасен. Я ДЕЙСТВИТЕЛЬНО хочу, чтобы они это исправили.

[РЕДАКТИРОВАТЬ]: 2017 год тоже ужасен. Я ДЕЙСТВИТЕЛЬНО хочу, чтобы они это исправили.

[РЕДАКТИРОВАТЬ]: 2019 год тоже ужасен. Я ДЕЙСТВИТЕЛЬНО хочу, чтобы они это исправили. Тем не менее, Microsoft выпустила новый механизм форматирования Только для .Net Core.


person Paul    schedule 20.11.2013    source источник
comment
ХУЖЕ в 2013 году.   -  person TombMedia    schedule 16.01.2014
comment
Шутки в сторону. Должно быть что-то, что можно сделать с этим ...   -  person JustMaier    schedule 19.04.2014
comment
Некоторые люди рекомендовали читателям этого OP возможность отключить форматирование при вставке. Это работает, если вы вставляете одну строку. Это не переформатирует строки вокруг нее. Но вставьте целый блок кода, и вы все равно получите форматирование. Мало того, он изменил регистр для ряда элементов, из-за чего мой код не компилировался. Если бы каждый, читающий это, оставил отзыв по ссылке, упомянутой @Kusgun, мы были бы признательны!   -  person Paul    schedule 19.03.2015
comment
И в 2015 ХУЖЕ!   -  person Paul    schedule 02.09.2015
comment
Это как день сурков. Я продолжаю возвращаться к своим собственным комментариям, как будто я снова и снова живу в одних и тех же болевых точках. Вздох. Возможно, VS15 исправит это.   -  person TombMedia    schedule 28.05.2016
comment
Кажется, исправлено в обновлении 3 по сравнению с 2015 годом.   -  person apr    schedule 27.07.2016
comment
Извини, что ошибся. Использование вкладок для отступов теперь работает (без странных пробелов), но редактор переформатирует (совершенно неправильно) код при вводе / вставке.   -  person apr    schedule 12.09.2016
comment
В более сложных файлах Razor мне приходится переключаться на использование Visual Studio Code для более простого редактирования текста. Нажать Ctrl-z на любую другую клавишу в Visual Studio 2015 IDE просто нелепо.   -  person Gordon Glas    schedule 22.11.2016
comment
Не исправлено в vs 2017 rtm   -  person apr    schedule 17.03.2017
comment
Не зафиксировано в 2018 году.   -  person Dirk Boer    schedule 28.03.2018
comment
Я убежден, что тот, кто создал автоформат в VS для файлов CSHTML, - садист.   -  person Batty McBat    schedule 18.04.2019
comment
Не зафиксировано в 2019 году.   -  person atilkan    schedule 13.09.2019
comment
Связанная открытая проблема # 14271 и для Blazor (который в равной степени поднят) проблема # 14705. Я не могу сказать, что удивлен, форматирование также было довольно ненадежным в старые плохие времена WebForms.   -  person McGuireV10    schedule 23.12.2019
comment
Не зафиксировано в 2020 году   -  person Akın Tekeoğlu    schedule 22.10.2020
comment
Не зафиксировано в 2021 году! ????   -  person Ryan Lundy    schedule 04.01.2021


Ответы (9)


Ты не можешь. Это встроенная функция VS начиная с первой версии .net (Visual Studio 2002/2003).

Существует множество отчетов об ошибках форматирования, но Microsoft их полностью игнорирует или переносит исправление в «следующую версию». Вы можете увидеть пример ответа Microsoft здесь.

Вы можете оставить свой отзыв команде Microsoft здесь

person Kuzgun    schedule 05.02.2014
comment
Я снова с раздражением искал это, не знаю, изменили ли они что-то, но исправление Metroid Hunter у меня работает в stackoverflow .com / a / 28053865/62829 - person mattmanser; 16.02.2015
comment
Как HTML в Visual Studio может по-прежнему так плохо работать в 2015 году? - person schmoopy; 26.03.2015
comment
На самом деле в 2015 году это хуже, чем в версии 2013 года (то же самое относится и к C #, где каждый раз, когда вы открываете фигурную скобку, будут отступы несвязанные вещи). Раньше я любил визуальную студию, но это постепенно убивает ее. - person youen; 28.04.2016
comment
Примечание: все ссылки подключения теперь мертвы - person jrh; 30.05.2018

В разделе Инструменты -> Параметры -> Текстовый редактор -> HTML -> Дополнительно.

есть элемент ключевого значения «Вставить», который говорит «Форматировать при вставке» и имеет рядом с ним логическое значение. Изменение этого параметра на false отключило форматирование при вставке для меня в синтаксисе бритвы.

Я использую VS Professional 2013, версия 12.0.30110.00, обновление 1

person Droydn    schedule 20.01.2015
comment
Спасибо! Автоматическое (неправильное) форматирование при вставке сводило меня с ума. Кажется, это устранило его. - person Torrents; 24.02.2015
comment
Круто, это именно то, что нужно, чтобы прогнать это! Спасибо! - person Martin S Ek; 20.08.2015
comment
Я бы проголосовал за вас более одного раза, это правильный ответ для версии 2013 up1 и новее. - person Erik Simonic; 24.01.2016
comment
Не работает в visual 2015? Я отключил формат при вставке в HTML / расширенный, но все еще получаю фанковое неформатирование / сумасшедшие отступы при вставке. Я собираюсь использовать другой редактор для файлов cshtml, но тогда я потеряю автозаполнение C #. Это безумная ситуация. - person youen; 28.04.2016
comment
Работал у меня в VS2017. - person Dave; 28.12.2017
comment
Спас мой день. Это работает для меня VS 2019. Я использовал Ctrl + Z каждый раз при вставке в файл Razor, но иногда забывал об этом, из-за чего файл выглядел как много изменений в SVN / git. - person Jiping; 18.06.2020

Где посмотреть:

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

(Требуется установка расширения Web Essentials)

Установите значение Ложь.

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

Установите значение Ложь.

С этими настройками у меня нет проблем в Visual Studio 2013.

Раньше мне приходилось слишком часто нажимать Ctrl-Z, и если вы забыли распутать беспорядок после того, как ваш код был написан и протестирован, было огромной болью. Я считаю, что Microsoft может сделать многое, чтобы помочь пользователям настроить это, а также сделать его более доступным.

person dazbradbury    schedule 05.06.2015
comment
Здесь нет области «Основы Интернета». - person Paul; 05.06.2015
comment
Отличный ответ! Это беспокоит меня годами, но не более того! - person David Kirkland; 15.06.2015
comment
@Paul Web Essentials - это расширение VS, которое улучшает многие вещи, связанные с редакторами HTML, CSS, JS. Установка и отключение автоформатирования очень помогает. - person SandRock; 01.03.2016
comment
Это должно быть отмечено как ответ. Особенно строчка о Web Essentials. Спасибо @dazbradbury! - person Aggromonster; 04.05.2016
comment
Функция форматирования при входе стоила мне много времени на рефакторинг кода. Спасибо за помощь! - person ihimv; 28.11.2016
comment
Второй вариант не исправляет это в VS2017, а первого даже не существует. - person ygoe; 05.01.2018

Уловка для меня заключалась в нажатии CTRL + Z после вставки, затем форматирование удаляется.

person user2920118    schedule 16.07.2014
comment
работал здесь ... я вставлял кусок, включая ‹select› с рядом атрибутов нокаута привязки данных, разбросанных по ~ 8 строкам, и он убивал оболочку верблюда и удалял двоеточия ... собирался набрать и перепечатать это ... потом я сделал этот Ctrl + Z и про визжал, что это сработало ... @ Miros - person beauXjames; 29.10.2014
comment
Проголосовали. Это работает в VS 2015 :) Никакое другое решение (различные настройки в Инструменты ›Параметры) у меня не сработало, по крайней мере, при вставке контента, который должен каким-то образом меняться между кодом / html, т.е. вставкой строк, содержащих код C #, за которым следует html теги или вставка html-разметки сразу после строк с кодом C #. - person savehansson; 18.11.2015
comment
Это всегда работает, везде в VS. Это единственный способ исправить беспорядок, вызванный форматированием. (Или вы действительно вручную убирали ??) Я уже привык, но сильно раздражает. - person ygoe; 06.01.2018
comment
Поразительно, но в VS 2019 в файле .razor нажатие Control-Z после форматирования больше не работает. Плохое форматирование остается. - person Ryan Lundy; 02.01.2021

В моем случае R # оказался виновником, его можно отключить здесь:

ReSharper> Параметры> Редактирование кода> Razor> Редактор и форматирование

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

person hcoverlambda    schedule 24.08.2016
comment
Это не входит в состав Visual Studio, поэтому вам придется устанавливать его отдельно. - person Paul; 24.08.2016
comment
Причина, по которой я упоминаю это здесь, заключается в том, что кто-то может подумать, что Visual Studio выполняла переформатирование (как я), хотя на самом деле это может быть R # (который используют многие разработчики). Поэтому, если кто-то не может отключить его и у них установлен R #, они захотят убедиться, что он отключен в обоих. - person hcoverlambda; 25.08.2016
comment
В R # 2017.3 эти настройки находятся в ReSharper | Опции | Окружающая среда | Редактор | Поведение редактора - person Dark Daskin; 27.12.2017
comment
В R # 2018.3 мне также пришлось установить для Editor Behavior, Auto-format on paste значение None - person EM0; 21.03.2019

К сожалению, единственный способ предотвратить автоформатирование при вставке - это закомментировать место, куда вы собираетесь вставить новый код, и после операции вставки удалить инструкции по добавлению комментариев.

Поиск и замена не запускают автоматическое форматирование. Но вставка переформатирует весь блок кода.

Это ужасно, не передать словами. Это делает Visual Studio IDE практически непригодным для редактирования Razor. Для файлов Razor необходимо использовать внешний редактор.

Что еще хуже, даже последнее обновление Visual Studio 2013 Update 1 дает сбой при постоянном редактировании представлений Razor.

person guest    schedule 28.03.2014

Самое интересное, что вы можете отключить форматирование C # и HTML, но не форматирование Razor.

Я снял отметку «Инструменты> Параметры> Текстовый редактор> C #> Форматирование> Автоматически форматировать при вставке» и то же самое для HTML.

Это приводит к следующему забавному опыту работы с файлами cshtml:

  • Вставить HTML-код: без формата
  • Вставить код C #: без формата
  • Вставить код Razor: все неправильно отформатировать

И поскольку нет возможности изменить параметры Razor, я думаю, вам придется смириться с этим.

Мое «решение»: вставить и ctrl-z, чтобы отменить автоформат

person Christiaan Maks    schedule 27.08.2014
comment
Я тоже .. но это сводит меня с ума! - person Matt Kocaj; 11.09.2014
comment
Ваше решение - это обходной путь, который занимает минуты при редактировании больших файлов. - person Arturo Torres Sánchez; 01.06.2016

У меня нет ни проекта .Net Core, ни Blazor. К сожалению, я не могу это проверить. Но для этих языков Microsoft выпустила новый механизм форматирования.

https://devblogs.microsoft.com/aspnet/new-experimental-razor-editor-for-visual-studio/

Требуется последняя версия Visual Studio 2019.

person Paul    schedule 02.09.2020
comment
Спасибо, я включил это, и, похоже, он работает намного лучше, чем предыдущий движок форматирования. Он больше не изменяет мое форматирование при сохранении, и он форматирует почти все правильно, когда я использую сочетания клавиш (Ctrl-K, Ctrl-D в моем случае) для форматирования файла .razor. - person Ryan Lundy; 02.01.2021
comment
Увы, при дальнейшем использовании оказалось, что Intellisense очень легко ломается с этим новым редактором. - person Ryan Lundy; 03.01.2021
comment
Это очень плохо. Надеюсь, этот новый редактор, по крайней мере, означает, что они наконец-то работают над ним после 10 лет без прогресса! - person Paul; 04.01.2021

Я нашел эти настройки в Resharper 2019, которые улучшили мой опыт:  введите описание изображения здесь

person Stephen Oberauer    schedule 13.06.2019