Форматирование HTML в Visual Studio 2010

Всякий раз, когда я переформатирую исходный код html в Visual Studio с помощью Ctrl-K, Ctrl-D форматирует мой исходный код следующим образом:

<p>
    text</p>
<p>
    more text</p>

Как я могу заставить использовать следующий формат?

<p>
    text
</p>
<p>
    more text
</p>

Я знаю, что есть параметры в Options- > Text Editor → Html → Formatting, но я не нашел подходящего там.

Спасибо,

Адриан

Изменить: Я проверил тег-специфические настройки, а разрыв страницы для p-тегов установлен на "Перед открытием, внутри и после закрытия". Кроме того, небольшой предварительный просмотр показывает точно формат, который я хочу иметь. Но Visual Studio все еще делает это неправильно. Может ли это иметь какое-либо отношение к установке Resharper в моей системе?

Ответы

Ответ 1

Проблема не имеет ничего общего с ReSharper. Это особенность по дизайну Visual Studio Source Formatter, где он попытается не изменять семантику элемента из-за указанных вами опций форматирования.

Итак, вы указали, что хотите, чтобы p-теги имели разрывы в содержимом, но разрыв после тега ap изменил семантику содержимого в теге, таким образом, форматирование заканчивается тем, что положить закрывающий тег p сразу после содержание. Чтобы иметь закрывающий тег на отдельной строке, вам нужно явно добавить пробел непосредственно перед концом содержимого и закрывающим тегом.

Таким образом:

<p>content</p>

будет производить:

<p>
   content</p>

Пока (обратите внимание на явное включение пробела между содержимым и закрывающим тегом p):

<p>content </p>

будет производить:

<p>
   content
</p>

Об этом говорится в сообщении в блоге Скотта Гатри в третьем абзаце снизу. Начните считать из абзаца прямо над дополнительной ссылкой.

Ответ 2

Нажмите "Инструменты", "Параметры", "Текстовый редактор", "HTML", "Форматирование", "Тег". Добавьте новый тег на стороне клиента для p (если он еще не существует) и выберите Separate Closing tag и Before, within, and after closing.