重现步骤
- 点击 禁用所有已安装的扩展名 在扩展选项卡中。
- 重新加载窗口
- 将
"emmet.preferences": {"profile.allowCompactBoolean": true}
添加到 settings.json 中。 - Cmd+N (新建未命名文件)
- 更改语言模式 -
javascriptreact
- 输入
div[a. b.]<tab>
预期行为
<div a b></div>
实际行为
<div a="" b=""></div>
附加上下文
如果语言模式是 html,vscode 显示预期行为。
我尝试了以下设置,但没有任何变化。
"emmet.syntaxProfiles": {
"javascript": {
"compact_bool": true,
"profile.allowCompactBoolean": true,
"allowCompactBoolean": true,
},
"javascriptreact": {
"compact_bool": true,
"profile.allowCompactBoolean": true,
"allowCompactBoolean": true,
}
}
当所有扩展都被禁用时,是否会出现此问题?:是
4条答案
按热度按时间o4tp2gmn1#
实验重复检测
感谢提交这个问题。请同时检查它是否已经被现有的一个问题涵盖,例如:
dxxyhpgq2#
这是一个非常奇怪的问题;在上游仓库中,这里的测试通过,位于microsoft/vscode-emmet-helper@8b570ef#diff-e881c68f57b15b76cd656faeee04cc2f68f27b5fd1da92a4afdf8b89d2dc3735R151,但我仍然可以在VS Code OSS(从源代码构建)中重现这个问题。
vsmadaxz3#
已找到根本原因:
'output.selfClosingStyle'
被设置为xml
时,syntax === "jsx"
:https://github.com/microsoft/vscode/blob/main/extensions/emmet/src/util.ts#L582。
我认为保持
"output.selfClosingStyle" === "xml"
是有意义的,因为jsx需要自闭合标签。我会向emmetio/emmet提交一个问题。
x6h2sr284#
仍然没有解决:/