是否可以有一个考虑我输入长度的片段?

Is it possible to have a snippet that considers the length of my input?

我想为像

这样的评论定义一个片段
//************
//*  foo A1  *
//************

在我输入 foo A1 的地方,它会创建一个带有 (6+ len(${1}) 星号等的行 - 这可行吗?如果可行,怎么做?

您可以使用扩展程序 HyperSnips

snippet comment "Comment" A
``rv = '//' + '*'.repeat(t[0].length + 6)``
//*    *
``rv = '//' + '*'.repeat(t[0].length + 6)``
endsnippet

虽然我是 HyperSnips 的大力支持者(请参阅

[VSCODE]: Is there a way to insert N times the same characters,

VS Code: how to make a python snippet that after string or expression hitting tab will transform it

使用方法),

了解如何仅使用 vscode 中的 built-in 片段功能来执行此操作很有启发意义。这是一个片段,可以做你想做的事:

"Custom Comment": {
    "prefix": ["cc2"],    // whatever trigger you want, then tab, write your info and tab again
    "body": [
        "//***${1/./*/g}***",
        "//*    *",
        "//***${1/./*/g}***"
    ]
},

这只是在您添加的评论的开头添加了 3 个星号,在您添加的评论的结尾添加了 3 个星号,其中的每个字符也被一个星号替换。