我喜欢保存autoformat的VSCode,直到它搞砸了我的模板代码。
它错误地将我的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: 我在Sierra MacOSx上使用VSCode 1.9版
答案 0 :(得分:3)
你可以禁用默认的html格式化程序,转到文件&gt;偏好&gt;用户或工作区设置,您将在HTML设置中找到:
// Enable/disable default HTML formatter (requires restart)
"html.format.enable": true,
我认为VSCode使用js-beautify作为默认格式化程序,您可以使用beautify extension覆盖项目目录中的.jsbeautifyrc设置
答案 1 :(得分:3)
我改用了美化扩展程序,该扩展程序在漂亮的程序仍排在一行上时立即起作用。在此堆栈溢出kimanihuon上,功劳归于page。
npm install --save @babel/runtime
"files.associations": { "**/*.html": "html", "**/templates/*/*.html": "django-html", "**/templates/*": "django-txt", "**/requirements{/**,*}.{txt,in}": "pip-requirements" }, "emmet.includeLanguages": { "django-html": "html" },
答案 2 :(得分:2)
有同样的问题,找到了一个帖子,其中该人禁用了JS-CSS-HTML Formatter扩展名(https://stackoverflow.com/a/42100808/4812548)并修复了该问题。在我的测试,它似乎也有效。希望有所帮助
答案 3 :(得分:1)
将文件的语言模式更改为“ Django / HTML”也将阻止VSCode自动格式化。
答案 4 :(得分:0)
Alexa在her answer中有一个优点。需要在“ Django / HTML”中更改文件模式,以防止VS CODE对其进行格式化。
如何更改文件模式?
一种快速的解决方案是使用名为vscode-Django的this extension并按照其文档中所述调整设置。
"files.associations": {
"**/templates/*.html": "django-html",
"**/templates/*": "django-txt"
}
使用这些设置,位于template文件夹中的任何文件都将被视为Django模板文件,并且不受HTML自动格式设置的影响。
PS:扩展程序仍处于预览模式,希望它会随着时间的推移变得更好。
答案 5 :(得分:0)
在VSCode的settings.json中,添加以下内容:emmet.includeLanguages": {"django-html": "html"}
答案 6 :(得分:0)
答案 7 :(得分:0)
VSCode 中的 Prettier 是我遇到这种情况的罪魁祸首。我让它在我的 settings.json
中停止格式化。
"files.associations": {
"**/*.html": "html",
"**/templates/*/*.html": "django-html",
"**/templates/*": "django-txt",
"**/requirements{/**,*}.{txt,in}": "pip-requirements"
},
"[django-html]": {
"editor.defaultFormatter": "batisteo.vscode-django"
},
files.associations
将模板的语言模式设置为 django-html。
[django-html]
设置该语言模式的设置。在撰写本文时,batisteo.vscode-django
中的格式化程序对我没有任何作用(因此它的位置与 null
相同),但我将其留在那里以防 django 扩展曾经这样做。< /p>