Vscode html автоформат на шаблоне django
Мне нравится VSCode при сохранении autoformat, пока он не перепутался с моим кодом шаблона.
Он неправильно форматирует мой синтаксис шаблона django в один код строки (иногда очень длинная строка). Поэтому вместо этого кода
{% for row in 'ABCDEFGH' %}
<tr>
{% for col in '123456789012345' %}
<td>
{% with forloop.counter|stringformat:"s" as counter %}
{% with row|add:counter as seat_num %}
{% if seat_num not in oc_seats %}
<input type="checkbox" value="{{ row }}{{ forloop.counter }}" name="seats">
{% endif %}
<br> {{ seat_num }}
{% endwith %}
{% endwith %}
</td>
{% endfor %}
</tr>
{% endfor %}
У меня есть этот код
{% for row in 'ABCDEFGH' %}
<tr>
{% for col in '123456789012345' %}
<td style="text-align: center; border: 1px solid #aaa;">
{% with forloop.counter|stringformat:"s" as counter %} {% with row|add:counter as seat_num %} {% if seat_num not in oc_seats %}
<input type="checkbox" value="{{ row }}{{ forloop.counter }}" name="seats"> {% endif %} {{ seat_num }} {% endwith %} {% endwith %}
</td>
{% endfor %}
</tr>
{% endfor %}
Я попытался отключить формат при сохранении, изменив пользовательские настройки на {"editor.formatOnSave": false}
, но до сих пор не получил никакой удачи.
Есть ли какой-либо плагин или конфигурация, которые я могу использовать, чтобы улучшить работу?
PS:
Я использую VSCode версии 1.9 на Sierra MacOSx
Ответы
Ответ 1
вы можете отключить форматировщик html по умолчанию, goto File > Preferences > User или Workspace Settings, в настройках HTML вы найдете:
// Enable/disable default HTML formatter (requires restart)
"html.format.enable": true,
Я думаю, что VSCode использует js-beautify в качестве форматирования по умолчанию, вы можете использовать украсить расширение, чтобы переопределить его с помощью .jsbeautifyrc в каталоге проекта
Ответ 2
Имел ту же проблему, нашел сообщение, в котором человек отключил расширение JS-CSS-HTML Formatter (fooobar.com/questions/1014890/...), и он исправил проблему. Протестировано на моем, и, похоже, он тоже работал. Надеюсь, что поможет
Ответ 3
Изменение языкового режима файла на "Django/HTML" также не позволит VSCode автоматически его отформатировать.
Ответ 4
Алекса имеет хороший смысл в своем ответе. Режим файла должен быть изменен в "Django/HTML", чтобы VS CODE не форматировал его.
Как изменить режим файла?
Быстрое решение состоит в том, чтобы использовать это расширение, называемое vscode-Django, и изменить настройки, как указано в его документации.
"files.associations": {
"**/templates/*.html": "django-html",
"**/templates/*": "django-txt"
}
При такой настройке любой файл, расположенный в папке шаблона, будет рассматриваться как файл шаблона Django и не будет зависеть от автоформатирования HTML.
PS: расширение все еще в режиме предварительного просмотра, надеюсь, со временем оно станет лучше.