VSCode 代码段 - 根据用户输入的长度动态生成字符

VSCode Snippet - Dynamically generating characters based on user input length

我有这个 vue-html

的基本片段
{
    "BANNER1": {
        "prefix": "banner",
        "body": ["<!-- ----------------", "/// ", "--------------------- -->"]
    }
}

它渲染这个

<!-- ----------------
/// ADD VALUES 
--------------------- -->

现在,我硬编码了 16 个破折号 -

我可以根据我的 1 美元动态生成 - 的金额吗?

比方说,我输入包含 5 个字符的“你好”

我希望得到这个

<!-- -----
/// Hello
----- -->

试试这个片段:

"BANNER1": {
  "prefix": "banner",
  "body": [
    "<!-- ${1/./-/g}",
      "/// ", 
      "${1/./-/g} -->"
  ]
}

{1/./-/g} 会将 </code> 中的每个字符替换为 <code>-。这样你就可以有效地计算 </code>.</p> 中的字符数 <p><a href="https://i.stack.imgur.com/8y497.gif" rel="nofollow noreferrer"><WBIMG:17845548-1.gif></a></p> <hr /> <p>如果你想加一个小于<code>的长度怎么办,那么用这个:

"<!-- ${1/^.|(.)/${1:+-}/g}"

第一个字符 . 未在正则表达式组中捕获。所以如果你想使用 length-2 你会改变第一部分 ^.. 所以 ${1/^..|(.)/${1:+-}/g} 或一般

${1/^.{n}|(.)/${1:+-}/g}

并将 n 替换为您要从 </code> 中减去的任何数字。</p> <p>tabstop $1 的其余部分一一匹配(感谢全局标志)。然后是条件</p> <p><code>${1:+-}表示如果有捕获组1,则加一个-。捕获组 1 本身永远不会添加到替换中。