片段:嵌套占位符不起作用

Snippets: nested placeholders not working

我正在尝试让嵌套占位符在片段中工作,应该工作according to the documentation。但是当使用它时,它基本上被视为一个单一的制表位。

测试片段

{
    "nestedPlaceholders": {
        "prefix": "nestedPlaceholders",
        "body": ["<test ${1:first placeholder ${2:Second placeholder}} />"],
        "description": "Test for nested placeholders"
    }
}

Result video

有什么想法吗?提前致谢。

我会说这是预期的行为。这是正在发生的事情。这种形式:

${1:first placeholder ${2:Second placeholder}}

${2:Second placeholder}是第一个占位符的一部分!所以它应该在第一个制表位上显示为选中状态,当您键入第一个占位符默认文本时,您还删除了第二个 tabstop/placeholder。如果顺序是:

,效果会更好
${2:second placeholder ${1:first placeholder}}

现在接受或覆盖第一个占位符不会删除第二个占位符。但第一个占位符默认文本(在我的示例中为 first placeholder)仍然是第二个占位符文本的一部分,因此如果您在其上键入,则会被删除。如果您接受带有 Tab.

的第二个占位符文本,它将保留

很明显,如果你想让两个占位符独立运行,就不要嵌套它们:

"<test ${1:first placeholder} ${2:Second placeholder} />",

所以我认为文档中的嵌套占位符示例在很多情况下可能没有帮助,因为如果您想要第二个占位符默认文本而不是第一个 - 您会丢失第二个文本,那有什么意义呢。但我确实认为它实际上正在按应有的方式运行 - 它只是在那种形式下不是很有帮助。