目前,当我在EJS文件中时,我无法自动格式化代码,没有自动缩进功能。当我将右下方的文件类型更改为HTML时,它认为标记无效并且中断。有没有人有建议?
答案 0 :(得分:2)
答案 1 :(得分:2)
建议保留HTML格式化程序(或使用.html之类的.ejs)并添加到您的设置中:
"html.format.unformatted": "wbr,%"
之后,缩进功能不完全正常,但更好......
答案 2 :(得分:2)
找到这篇文章,介绍如何为EJS设置自动格式。它远非完美,因为你必须放弃被<% -code %>
着色,而是显示为纯文本。此外,它将这些代码标记视为标准标记,因此它将标记在以下标记上,但它总比没有好。 - &GT; https://www.slightedgecoder.com/2018/01/18/formatting-ejs-file-vs-code-visual-studio-code/
您可以做的一件事是在编辑器中来回切换,以便将文档视为EJS或HTML。因此,如果您需要格式化,只需跳转到HTML和格式,然后跳回到EJS。
答案 3 :(得分:1)
尝试更新VS代码下的设置。
设置>扩展> Emmet:包含语言>在settings.json中编辑
然后添加:
"emmet.includeLanguages": {
"ejs":"html"
}
答案 4 :(得分:0)
答案 5 :(得分:0)
与其他用户一样,我的.ejs文件也使用'html'语言模式:
选择语言模式(您将在vscode窗口的底部栏中看到语言标识符:即HTML,嵌入式JS,Python等)
这将打开一个窗口,用于搜索要用于文件的其他语言设置。 在下面选择一个选项,或选择“配置基于HTML的设置”,然后将文件关联手动添加到html:
{
"git.ignoreMissingGitWarning": true,
"[html]": {},
"[ejs]": {},
"files.associations": {
"*.ejs": "html"
},
}
这是使这种显示javascript格式的诀窍:在EJS文件中,包括带有javascript标记的注释,并且HTML格式化程序现在可以完美显示JS格式!例如:
/*
<script>
*/
write your javascript code here...
var srcElem = "<div>something cool goes here</div>";
var id = "";
function init() {
//do more javascript stuff here
}
/*
</script>
*/
答案 6 :(得分:0)
当您在ejs文件中编写javascript代码时,自动格式化会在“ <%”之后添加一个空格,这会破坏代码
示例:<%- code %>
将被格式化为<% - code%>
并破坏代码
要解决此问题,请将此行添加到settings.json
"javascript.format.insertSpaceBeforeAndAfterBinaryOperators": false
请注意,它还会删除数学运算符和二进制运算符<>|=/*-+%
答案 7 :(得分:0)
您可以尝试在 VS Code 中使用 Beautify 扩展 并将以下代码包含在位于 C:\Users\hp\AppData\Roaming\Code\User
的 settings.json 文件中"[html]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"beautify.language": {
"html": ["ejs", "html"],
"css": [],
"js": [],
}
答案 8 :(得分:0)
我将 EJS tags 添加到 default list VSCode uses 到我的 settings.json
,它不会在不破坏其他 html 代码(如 span
s)的情况下格式化任何 ejs 标签。< /p>
"html.format.unformatted": "%,%_,%=,%-,%#,%%,-%,_%,a,abbr,area,audio,b,bdi,bdo,br,button,canvas,cite,code,data,datalist,del,dfn,em,embed,i,iframe,img,input,ins,kbd,label,link,map,mark,math,meta,meter,noscript,object,output,picture,progress,q,ruby,s,samp,script,select,slot,small,span,strong,sub,sup,svg,template,textarea,time,u,var,video,wbr"