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

119

Этот вопрос уже задавали: почему форматирование кода Visual Studio не работает должным образом для разметки Razor?

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

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

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

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

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

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

Павел
источник
15
Его ХУЖЕ в 2013 году.
TombMedia
3
Шутки в сторону. Должно быть что-то, что можно сделать с этим ...
JustMaier
7
И в 2015 ХУЖЕ!
Пол
4
Не исправлено в vs 2017 rtm
апр
5
Не зафиксировано в 2018 году.
Дирк Бур,

Ответы:

53

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

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

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

Кузгун
источник
1
Я снова искал это в раздражении, я не знаю, изменили ли они что-то, но исправление Metroid Hunter у меня работает в Razor stackoverflow.com/a/28053865/62829
mattmanser
4
Как HTML в Visual Studio может все еще так плохо работать в 2015 году?
schmoopy
1
На самом деле в 2015 году это хуже, чем в версии 2013 года (то же самое относится и к C #, где каждый раз, когда вы открываете фигурную скобку, будет отступ для несвязанных вещей). Раньше я любил визуальную студию, но это постепенно убивает ее.
youen
1
Примечание: все соединительные ссылки сейчас мертвы
2018,
65

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

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

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

Droydn
источник
Спасибо! Автоматическое (неправильное) форматирование при вставке сводило меня с ума. Похоже, это устранило его.
Torrents
Круто, это именно то, что нужно, чтобы это прогнать! Спасибо!
Martin S Ek
Я бы проголосовал за вас более одного раза, это правильный ответ для версии 2013 up1 и новее.
Эрик Симонич
2
Не работает в visual 2015? Я снял флажок «форматировать при вставке» в HTML / расширенном, но все равно получаю неприятное неформатирование / сумасшедшие отступы при вставке. Я собираюсь использовать другой редактор для файлов cshtml, но тогда я потеряю автозаполнение C #. Это безумная ситуация.
youen
5
Работал у меня в VS2017.
Дэйв
37

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

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

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

Установите значение False

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

Установите значение False

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

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

dazbradbury
источник
3
Здесь нет области "основы Интернета".
Пол
Отличный ответ! Это беспокоит меня годами, но не более того!
Дэвид Киркланд
2
@Paul Web Essentials - это расширение VS, которое улучшает многие вещи, связанные с редакторами HTML, CSS, JS. Очень помогает установка и отключение автоформатирования .
SandRock 01
3
Это должно быть отмечено как ответ. Особенно строчка о Web Essentials. Спасибо @dazbradbury!
Aggromonster
1
Второй вариант не исправляет это в VS2017, а первого даже не существует.
ygoe 05
24

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

user2920118
источник
3
работал здесь ... я вставлял фрагмент, включая <select> с серией атрибутов нокаута привязки данных, разбросанных по ~ 8 строкам, и он убивал оболочку верблюда и удалял двоеточия ... собирался набрать и перепечатать это ... потом я сделал это Ctrl + Z и почти взвизгнул, что это сработало ... @ Miros
beauXjames
Upvoted. Это работает в VS 2015 :) Никакое другое решение (различные настройки в Инструменты> Параметры) у меня не сработало, по крайней мере, при вставке содержимого, которое должно каким-то образом меняться между кодом / html, т.е. вставкой строк, содержащих код C #, за которым следует html теги или вставка html-разметки сразу после строк с кодом C #.
savehansson
Это всегда работает, везде в VS. Это единственный способ исправить беспорядок, связанный с форматированием. (Или вы действительно вручную убирали ??) Я уже привык, но сильно раздражает.
ygoe 05
10

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

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

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

hcoverlambda
источник
Это не входит в состав Visual Studio, поэтому вам придется устанавливать его отдельно.
Пол
2
Причина, по которой я упоминаю это здесь, заключается в том, что кто-то может подумать, что Visual Studio выполняла переформатирование (как и я), хотя на самом деле это может быть R # (который используют многие разработчики). Поэтому, если кто-то не может отключить его и у него установлен R #, они захотят убедиться, что он отключен в обоих.
hcoverlambda
5
В R # 2017.3 эти настройки находятся в ReSharper | Опции | Окружающая среда | Редактор | Поведение редактора
Дарк Даскин
1
В R # 2018.3 мне также пришлось установить для параметра « Поведение редактора,
EM0
7

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

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

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

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

гость
источник
6

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

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

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

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

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

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

Кристиан Макс
источник
1
Я тоже .. но это сводит меня с ума!
Мэтт Кодж
Ваше решение - это обходной путь, который занимает минуты при редактировании больших файлов.
Артуро Торрес Санчес
0

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

Стивен Оберауэр
источник