Как изменить настройки автоматического форматирования .ASPX (Visual Studio)

При вводе кода в файл .aspx (в данном случае это представление MVC) Visual Studio применяет два типа форматирования, один к стандартной структуре тегов html (которой можно управлять из Инструменты-> Параметры-> Текстовые редакторы-> Html) а другой - к содержимому тегов ‹%%>.

Я столкнулся с двумя неприятностями, связанными со вторым типом автоматического форматирования, форматированием содержимого ‹%%>.

Во-первых, как новые строки добавляются в блоки операторов:

Если я напечатаю это:

<% if(condition) { %>
    ...
<% } %>

Это автоматически исправляется на это:

<% if(condition) 
   { %>
    ...
<% } %>

Хотя исправление правильное, если это был файл .cs, для супа тегов, то есть файлов .aspx, я считаю первый гораздо более читаемым. Есть ли способ отключить это поведение, не влияя на форматирование файлов .cs?

Во-вторых, всякий раз, когда я пишу что-то вроде этого:

<%=Html.ActionLink("Report","ListItems") %>

Я не могу найти способ сделать его автоматическим форматированием в это (добавьте интервал, где это необходимо):

<%=Html.ActionLink("Report", "ListItems") %>

В коде обычно требуется; или}, чтобы сигнализировать, что вы закончили строку / раздел кода, чтобы Visual Studio могла его отформатировать. Есть ли способ подать этот сигнал для типа выражения ‹% =?

УТОЧНЕНИЕ

Этот вопрос касается форматирования кода внутри тегов ‹%%> без влияния на форматирование обычных исходных файлов C #. Прямо в первом абзаце сказано, что я полностью осведомлен о меню текстовых редакторов.


person David    schedule 11.03.2009    source источник
comment
Отличные вопросы. Я также считаю, что это очень раздражает.   -  person Micah    schedule 11.03.2009
comment
То же самое, у меня также установлен resharper, который не помогает   -  person Andrew Bullock    schedule 11.03.2009
comment
Чувак, боже. Раньше (возможно, это была первая версия Visual Studio.NET, я не уверен) он переформатировал HTML каждый раз, когда вы открывали файл в режиме конструктора. И когда я говорю «переформатировать», это включало удаление атрибутов, которые были необходимы для того, чтобы сделать HTML действительным и доступным, и добавление атрибутов, которые препятствовали действию HTML. Хорошие времена.   -  person Paul D. Waite    schedule 09.05.2009
comment
Есть новости по этому поводу? Это сводит меня с ума!   -  person Jon Kragh    schedule 11.05.2011


Ответы (5)


Меню текстовых редакторов - это все, что есть, и оно не позволяет вам делать то, что вы хотите. Если щелкнуть правой кнопкой мыши страницу aspx, выбрать «Форматирование и проверка ...», а затем нажать кнопку «Параметры тега ...», вы получите набор настроек для каждого тега клиента или сервера, но не для тега ‹% - теги.

Что касается второй части вашего вопроса, Ctrl-E, D форматирует ваш документ, но не вставляет желаемый интервал.

person Jeroen    schedule 08.05.2009

Вы можете изменить автоформатирование в этом меню:
Инструменты -> Параметры -> Текстовый редактор

Например, вы можете изменить новую строку оператора if в разделе:
C #
- Форматирование
- Новые строки
--- Поместите открывающую скобку в новую строку для блоков управления

Надеюсь это поможет.

person はると    schedule 11.03.2009
comment
Это может повлиять на форматирование всех файлов .cs, чего мы хотим избежать. Мы только хотим изменить способ форматирования кода супа тегов. - person David; 11.03.2009

В настоящее время я знаю только один ответ - писать макросы с использованием регулярных выражений и назначать их простым в использовании аккордам. Ранее я отвечал на вопрос, в котором автоформатирование меняет закрывающие фигурные скобки на:

<%
     }
     %>

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

person Chad Ruppert    schedule 11.05.2009

Согласно Microsoft, это ошибка в Visual Studio, которая только что была исправлена, хотя я еще не видел исправления, поэтому не могу подтвердить, что они действительно есть. Кажется маловероятным, что через 10 лет они вдруг это исправят, но посмотрим. См. http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=514691

person mike nelson    schedule 31.07.2010

Если вы никогда не настраивали свою среду, я предлагаю потратить некоторое время на диалог Инструменты >> Параметры. Есть много полезных вещей, которые вы можете сделать, чтобы настроить свою среду, а также изменить способ работы Visual Studio по умолчанию.

Я не пробовал новые строки в представлении MVC, поэтому я не полностью продан, он работает, но я бы тоже сначала попробовал именно здесь. Он действительно работает в файле C #, коде позади или иным образом.

person Gregory A Beamer    schedule 11.03.2009