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: расширение все еще в режиме предварительного просмотра, надеюсь, со временем оно станет лучше.