Pug "input" 的 Emmet 缩写正在插入不需要的#
Emmet abbreviation for Pug "input" is inserting an unneeded #
我正在 VS Code 中处理 Pug 模板,每当我尝试使用 emmet 缩写 input:text
(或与此相关的任何输入)时,它都会解析为 input#(type="text", name="")
。
这不是世界末日,但它让我发疯,我不明白为什么会这样或如何改变它。
我想我的问题是:是否有任何方法可以改变这种行为或我可以引起注意的任何地方?
问题在于对基于缩进的语法(Slim、Pug 等)的属性 id
和 class
的处理。
出于某种原因,它将属性从其当前位置删除,并将 id
的字符串 #
和 class
的 .
推到前面。
这是由 3297 行附近的 2 个正则表达式语句控制的
C:\Program Files\Microsoft.VS.Code\resources\app\extensions\emmet\node_modules\vscode-emmet-helper\out\expand\expand-full.js
改变
const reId = /^id$/i;
const reClass = /^class$/i;
至
const reId = /^Xid$/i;
const reClass = /^Xclass$/i;
您还必须删除目录中此文件的缓存版本
C:\Users\__username__\AppData\Roaming\Code\CachedData\__some_hex_value__
重新启动 VSC,它应该可以工作了。
对于 linux 系统,您必须找到这些文件的位置。
我终于明白为什么会这样了,我的困惑基本上是对适当形式创建的误解。
所有文本输入都应该有一个与之相关联的 ID,因此 Emmet 期望 shorthand 中有一个 ID。所以这个:
input:text#user
解析为
input#user(type="text", name="")
效果很好!太糟糕了,我花了几个月的时间才意识到自己有多愚蠢!
我正在 VS Code 中处理 Pug 模板,每当我尝试使用 emmet 缩写 input:text
(或与此相关的任何输入)时,它都会解析为 input#(type="text", name="")
。
这不是世界末日,但它让我发疯,我不明白为什么会这样或如何改变它。
我想我的问题是:是否有任何方法可以改变这种行为或我可以引起注意的任何地方?
问题在于对基于缩进的语法(Slim、Pug 等)的属性 id
和 class
的处理。
出于某种原因,它将属性从其当前位置删除,并将 id
的字符串 #
和 class
的 .
推到前面。
这是由 3297 行附近的 2 个正则表达式语句控制的
C:\Program Files\Microsoft.VS.Code\resources\app\extensions\emmet\node_modules\vscode-emmet-helper\out\expand\expand-full.js
改变
const reId = /^id$/i;
const reClass = /^class$/i;
至
const reId = /^Xid$/i;
const reClass = /^Xclass$/i;
您还必须删除目录中此文件的缓存版本
C:\Users\__username__\AppData\Roaming\Code\CachedData\__some_hex_value__
重新启动 VSC,它应该可以工作了。
对于 linux 系统,您必须找到这些文件的位置。
我终于明白为什么会这样了,我的困惑基本上是对适当形式创建的误解。
所有文本输入都应该有一个与之相关联的 ID,因此 Emmet 期望 shorthand 中有一个 ID。所以这个:
input:text#user
解析为
input#user(type="text", name="")
效果很好!太糟糕了,我花了几个月的时间才意识到自己有多愚蠢!