VSCode用换行符打破Django模板标签

问题描述

问题:

{% extends 'base.html' %} {% block title %} Dashboard {% endblock %} {% block pagetitle %}

成为

{% extends 'base.html' %} {% block title %} Dashboard {% endblock %} {% block
pagetitle %}

请注意,{% tag %}被换行了。 django模板会导致语法错误

我已经尝试了大多数顶级django模板扩展,但这不能解决问题。

我也尝试了以下设置:

    "[html]": {
        "editor.formatOnSave": false,},"html.format.wrapLineLength": 0,"html.format.enable": false,"prettier.disableLanguages": ["html"] 

期望的行为:

  1. 自动格式化* .html文件,同时保留django模板标签,而不用换行符将它们分开。
  2. 次佳(但可以接受)的行为:根本不格式化* .html文件

解决方法

我遇到了同样的问题,我发现解决它的唯一方法是禁用默认的 HTML 格式化程序。不幸的是,我没有找到一种方法让它正确地格式化 Django 模板标签。如果您转到 VS Code 首选项 > 设置 > 用户 > 扩展 > HTML 并取消选中“启用/禁用默认 HTML 格式化程序”,您可以执行相同的操作。

enter image description here

,

我只需在损坏的 {{""}} 之间添加 {% tag %} 即可使其工作。

示例:

{% extends 'main/base.html' %} {% block title_block %}Homepage{% endblock%}
{{""}} {%block style_ref_block%}{%endblock%} {{""}} {% block body_block %}