В Visual Studio 2010, под Инструментами-> Опции-> Текстовый редактор-> HTML-> Форматирующий-> Тег Определенные Опции, существуют опции для конфигурирования, как редактор автоматические форматы другой HTML и ASP.NET отмечает. Это включает вещи как то, если это должно автоматически поместить новую строку прежде и после тега и т.д.
Есть ли место для конфигурирования правил форматирования для <% %> <% = %> и <%: %> блоки подобным способом?
В частности, я хотел бы не вызвать новую строку прежде <% = и <%: блоки.
Например, я уже настроил опции для тега h1 для не добавления новых строк вокруг его содержания, и это работает отлично со статическим содержанием, но это не работает, когда существует <%: или <% = блок в теге h1. Я в настоящее время получаю это:
<h1>
<%: Model.Name %></h1>
но я хотел бы это:
<h1><%: Model.Name %></h1>
В идеальном мире я также хотел бы к автоматическому формату, чтобы содержание <% %> блоки удостоверилось, что всегда существует пространство между <% и его содержание.
Например, хороший:
<% if (something) { %>
плохо:
<%if (something) {%>
Так, есть ли какие-либо настройки, проложенные под землей где-нибудь для управления любым из этих поведений форматирования?
Спасибо @schellack за то, что подтолкнул меня в правильном направлении. Вот настройки, которые мне нужны, чтобы получить желаемое поведение (все в диалоговом окне параметров конкретного тега):
Хитрость в том, что редактор, кажется, распознает блоки <%%> как клиентский тег с именем '%', у которого нет закрывающего тега. То же самое для <%:%> и <% =%>.
С этими настройками (в сочетании с остальными настройками по умолчанию в Visual Studio) я получаю отформатированную разметку, которая выглядит следующим образом (это компактная форма, которую я искал):
<h1><%: Model.Name %></h1>
<ul>
<% foreach (var item in Model.Items) { %>
<li><%: item %></li>
<% } %>
</ul>
Пока она не отображается что вторая часть моего вопроса возможна.
Вы искали в нужной области:
Инструменты -> Параметры -> Текстовый редактор -> HTML -> Форматирование -> Специфичные для тегов Параметры.
Тем не менее, вам необходимо установить параметр «Тег клиента поддерживает содержимое» в разделе «Настройки по умолчанию» для разрывов строк на «Нет». Visual Studio смотрит на этот параметр, а не на параметр для тега
.
Я не верю, что это даст вам желаемый интервал внутри тега <%%>
, но он исправит эти опасные лишние разрывы строк.
[РЕДАКТИРОВАТЬ] Сначала я сказал установить параметр «Тег сервера поддерживает содержимое», но я думаю, что на самом деле это «Тег клиента поддерживает содержимое» (я изменил это выше). Вы также можете установить для параметра «Разрывы строк» значение «До и после» вместо «Нет», если это лучше дает вам то, что вы ищете. Вам также может потребоваться установить разрывы строк для «Тег клиента не поддерживает содержимое» на «Нет».
Ну, есть Edit -> Advanced -> Format Document, что, я думаю, тоже испортит ваш код. Я просмотрел множество документации, пытаясь найти что-то еще, но, насколько я могу сказать, ничего не найдено.
Изменить:
Проблема не в параметрах форматирования HTML, а в теге <%%>. Например:
работает достаточно хорошо. Как я уже сказал, я не думаю, что это можно сделать.
На данный момент я рекомендую использовать:
<h2>
<%="Hello World" %>
</h2>
или
<h2>
<%
if(true)
Response.Write("Hello World");
%>
</h2>