【问题标题】:Emmet abbreviation for Pug "input" is inserting an unneeded #帕格“输入”的 Emmet 缩写是插入一个不需要的 #
【发布时间】:2020-06-11 00:24:55
【问题描述】:

我正在 VS Code 中处理 Pug 模板,每当我尝试使用 emmet 缩写 input:text(或任何与此相关的输入)时,它都会解析为 input#(type="text", name="")

这不是世界末日,但它让我发疯,我不知道为什么会这样或如何改变它。

我想我的问题是:有什么方法可以改变这种行为或我可以在任何地方引起注意吗?

【问题讨论】:

    标签: visual-studio-code pug emmet


    【解决方案1】:

    问题在于对基于缩进的语法(Slim、Pug 等)的属性 idclass 的处理。

    由于某种原因,它从当前位置删除了属性并将字符串 # 推到前面,用于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 系统,您必须找到这些文件的位置。

    【讨论】:

      【解决方案2】:

      我终于明白为什么会这样了,我的困惑基本上是对正确创建表单的误解。

      所有文本输入都应该有一个与之关联的 id,因此 Emmet 需要一个简写形式的 ID。所以这个:

      input:text#user
      

      解决

      input#user(type="text", name="")
      

      效果很好!太糟糕了,我花了几个月的困惑才意识到我是多么愚蠢!

      【讨论】:

        猜你喜欢
        • 2015-11-23
        • 2012-01-22
        • 2015-07-13
        • 2017-02-17
        • 1970-01-01
        • 2021-07-13
        • 2021-06-28
        • 1970-01-01
        • 2019-10-14
        相关资源
        最近更新 更多