saq*_*iel 6 python jinja2 visual-studio-code
一段时间以来,我使用 VS 代码和一些扩展。当我使用 Flask 时,一切都很完美。
Prettier 将所有烧瓶代码粘在一起,而智能对烧瓶代码不起作用:
{% extends "layout.html" %} {% block style %} body {color: red; } {% endblock %}
{% block body %} you must provide a name {% endblock %}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使它与烧瓶(特里烧瓶片段)一起使用?
我在美德环境中运行它(在 lauch vscode 之前运行)。
提前致谢,
Mob*_*y J 21
我也遇到了类似的问题,这就是我为解决它所做的:
安装 Better Jinja 插件。( https://marketplace.visualstudio.com/items?itemName=samuelcolvin.jinjahtml )
转到首选项>>设置>>在搜索设置栏中输入“文件关联”,点击“编辑settings.json”
最后将以下行添加到 settings.json 文件中:
"emmet.includeLanguages": {"jinja-html": "html"},
Run Code Online (Sandbox Code Playgroud)重新启动你的 vscode。每次打开带有 jinja 模板代码的 html 文件时,只要选择了 jinja-html(不是 HTML!),prettify 就不会搞砸,并且您的智能感知应该可以正常工作。:)
Eld*_*obi 18
像下面的屏幕截图一样添加它
"files.associations": {
"*.html": "jinja-html"
},
Run Code Online (Sandbox Code Playgroud)
[截屏]
小智 13
我已经尝试了一切,但最后,它对我有用。
安装 Better Jinja 插件。
安装 django 插件
然后转到 settings by pressing ctrl+,,搜索文件关联并转到 settings.json 并编辑以下内容:
"files.associations": { "*.html": "jinja-html" },
"emmet.includeLanguages": {"jinja-html": "html"},
Sco*_*art 12
好的,所以我尝试了 Ataua 和 Moby J 的解决方案,但无法让它们发挥作用。也许是因为我在全球范围内使用 Prettier。
这对我有用:
有一个名为Unibeautify的项目,它看起来有点像“一环统治一切”,用于将不同格式化程序和文件类型的个性化设置联系在一起。
它有一个 VS Code 扩展VSCode-Unibeautify。
安装扩展后,您需要创建一个配置文件并告诉 VS Code 在哪里可以找到它。如果您想将其用于多种语言,您可以创建和自定义自己的配置,但以下是对我来说对 Jinja 有用的配置:
# unibeautifyrc.yaml
HTML:
beautifiers:
- JS-Beautify
- Pretty Diff
Run Code Online (Sandbox Code Playgroud)
然后,在你的 vscode 设置中:
// settings.json
"unibeautify.defaultConfig": "/PATH/TO/unibeautifyrc.yaml",
"unibeautify.enabled": true,
"[jinja-html]": {
"editor.defaultFormatter": "Glavin001.unibeautify-vscode",
"editor.formatOnSave": true
},
Run Code Online (Sandbox Code Playgroud)
我还所做的是将 html 文件与我项目的settings.json. 如果您只想将 Unibeautify 的使用限制为逐个项目的 Jinja 文件,这会有所帮助。*.html如果您愿意,我认为您还可以使下面的内容更具体到您的模板目录。
// MYPROJECT/.vscode/settings.json
{
"files.associations": {
"*.html": "jinja-html"
}
}
Run Code Online (Sandbox Code Playgroud)
该解决方案由JS-Beautify提供支持,它似乎与 Jinja 配合良好,并支持 Atoms原子美化扩展,该扩展也是由 Unibeautify 的同一作者Glavin001提供的,一个美丽的个体。
小智 12
上述解决方案对我来说不太有效。我要么失去了突出显示、自动完成或自动格式化功能。
我终于找到了一个解决方案,给了我所有这些:
CTRL + Shift + P并输入open settings json+Enter这是我的配置,它非常适合我的 jinja 模板。djLint 提供更多特定于文件类型的选项(请参阅 VS Code 中的扩展描述)。
// settings.json
"emmet.includeLanguages": {
"jinja2": "html",
"jinja-html": "html",
"django-html": "html",
},
"[jinja]": {
"editor.defaultFormatter": "monosans.djlint",
"editor.detectIndentation": false,
"editor.tabSize": 2,
"editor.formatOnSave": true,
},
"[jinja-html]": {
"editor.defaultFormatter": "monosans.djlint",
"editor.detectIndentation": false,
"editor.tabSize": 2,
"editor.formatOnSave": true,
},
"[django-html]": {
"editor.defaultFormatter": "monosans.djlint",
"editor.detectIndentation": false,
"editor.tabSize": 2,
"editor.formatOnPaste": true,
},
Run Code Online (Sandbox Code Playgroud)
我的 jinja 模板使用扩展名.jinja2. 为了使其与“Django”插件一起使用,我将其添加到我的设置中:
// settings.json
"files.associations": {
"*.jinja2": "django-html"
},
Run Code Online (Sandbox Code Playgroud)
我现在唯一的抱怨是我无法让标签的链接编辑工作:-D
小智 8
Mobi J的答案对我有帮助,但我认为它是不完整的。解决我遇到的同样问题的方法是在 settings.json 的最后添加这两行(在最后一个右括号之前):
"emmet.includeLanguages": { "jinja-html": "html" },
"editor.defaultFormatter": "vscode.emmet"
Run Code Online (Sandbox Code Playgroud)
实际上,我是通过导航“设置”(在 Linux 上为 Ctrl + )来完成此操作的,但结果只是对 settings.json 文件进行了添加。
更改后,intellisense 和 emmet 在 .html 和 .jinja 文件中都可以正常工作。