Разрыв строки в каждом атрибуте тега и их выравнивание в редакторе HTML-кода Visual Studio.

Если вы хотите, чтобы это было реализовано в следующей версии VS, проголосуйте за него здесь.


Предположим, следующее длинное по горизонтали объявление <button> HTML:

<button type="submit" class="btn btn-primary" id="save" name="action:@ViewContext.RouteData.Values["action"]"><i class="icon-save icon-large"></i> @Localization.Save</button>

Как вы видите, все атрибуты тегов являются встроенными, поэтому они простираются далеко вправо в редакторе кода...

Знаете ли вы какой-либо параметр или расширение Visual Studio, которое позволяет форматировать его с помощью Ctrl + K, а затем Ctrl + F вот так:

<button type="submit"
        class="btn btn-primary"
        id="save"
        name="action:@ViewContext.RouteData.Values["action"]">
<i class="icon-save icon-large"></i>@Localization.Save
</button>

Я думаю, что приведенный выше формат позволяет легко определить данный атрибут, хотя он явно сделает вертикальную полосу прокрутки немного длиннее. :)

Я пробовал возиться с параметрами Visual Studio в TOOLS => Options... => Text Editor => HTML, но не нашел возможности управлять этим поведением.

Конечно, я могу выровнять его вручную, но тогда, если я по ошибке нажму Ctrl + K, затем Ctrl + F, я потерять все пользовательское форматирование.

Если такой вещи нет, я думаю, это отличная идея для расширения Visual Studio. В качестве плюса он может даже расположить атрибуты в алфавитном порядке. :)


Погуглив еще немного, я обнаружил, что редактор XAML в Visual Studio имеет то, что мне хотелось бы иметь в редакторе HTML:

Располагайте каждый атрибут на отдельной строке

введите здесь описание изображения


Я задал этот же вопрос на форуме Visual Studio Extensibility:

http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/0d97c205-9f29-4ba7-9d0b-253413077dce/


Если вы хотите, чтобы это было реализовано в следующей версии VS, проголосуйте за него здесь.


person Leniel Maccaferri    schedule 09.02.2013    source источник
comment
Найдите/замените ‹ на /n‹ + не забудьте нажать Использовать регулярные выражения   -  person m4ngl3r    schedule 22.08.2018


Ответы (5)


Если вы чувствуете себя смелым, вы можете написать расширение для редактора, которое сделает это за вас. Взгляните на расширение align, которое Ной написал некоторое время назад для идей: https://github.com/NoahRic/AlignAssignments

person Ameen    schedule 14.02.2013
comment
Да... Я сейчас читаю это: social.msdn.microsoft.com/Forums/en-US/vsx/thread/, где парень хочет удалить пустые строки из файлов HTML. - person Leniel Maccaferri; 14.02.2013
comment
Эй, Амин... когда у меня будет больше свободного времени, я углублюсь в это. А пока, пожалуйста, проголосуйте за него, чтобы он появился в следующей версии VS: здесь - person Leniel Maccaferri; 16.02.2013

Ну, я нашел трюк на форумах ASP.NET:

Размещение каждого атрибута на отдельной строке

Это не похоже на функцию XAML, описанную в моем вопросе, но она работает.

В «Параметры/Текстовый редактор/HTML/Формат» вы можете установить флажок «Переносить теги при превышении определенной длины» и установить длину на 1. Это приведет к тому, что форматировщик будет переносить как сумасшедший.


Другой вариант:

  1. Перейдите к TOOLS => Options... => Text Editor => XML => Formatting => Выровняйте атрибуты каждый на отдельной строке.

  2. Закройте файл .cshtml. Щелкните его правой кнопкой мыши в обозревателе решений и выберите «Открыть с помощью...», затем выберите «XML (текстовый) редактор». Выберите все содержимое и нажмите Ctrl + K, затем Ctrl + F.

    * Второй вариант утомителен! :(

person Leniel Maccaferri    schedule 14.02.2013

Это было реализовано в новом редакторе HTML в Visual Studio 2013 Preview, который был выпущен. Это функция только нового редактора, которая работает с файлами html и cshtml, но не с файлами aspx/ascx. Если вы нажмете [return] после каждого значения, атрибуты будут складываться в соответствии с первым определением атрибута. Формат документа больше не отменяет эти изменения.

person Van Kichline    schedule 28.06.2013
comment
Приятно узнать об этом... это действительно прогресс. Я скачал и установил предварительную версию VS 2013, но пока не успел с ней поиграться. Посмотрю ... Было бы здорово, если бы в VS Tools => Options... была возможность сделать это (аккуратно сложенные атрибуты) поведением по умолчанию при нажатии Ctrl+K, а затем Ctrl+F точно так же, как интервал форматирования XAML, как показано на скриншоте вопроса. Таким образом, не нужно было бы форматировать вручную. - person Leniel Maccaferri; 28.06.2013

Скопируйте html в редактор xml, пусть он отформатирует его для вас, затем сохраните его обратно в html-файл.

person user3453552    schedule 14.03.2019

вы можете найти/заменить < на /n< + не забудьте нажать настройку Использовать регулярные выражения

person m4ngl3r    schedule 22.08.2018
comment
Это приведет к хаосу, если у вас есть встроенный javascript, когда ‹ используется для оператора «меньше». также встроенный С# может использовать ‹ для сравнения и дженериков... Боюсь, что нет простого способа сделать это. Примечание. ASPX на самом деле не является XML, и большинство парсеров xml не будут анализировать его на 100%. Может быть, можно было бы использовать некоторую логику, включающую регулярные выражения, для обнаружения и временного перекодирования этих причудливых специфических синтаксисов, таким образом перенося aspx во временный чистый XML, затем интерпретируя файл как XML и повторно выгружая его так, как нам нравится, прежде чем, наконец, преобразовать его в aspx. Но не быстро и не грязно... - person Leo128; 23.04.2020