Snippets:嵌套占位符不工作

问题描述 投票:0回答:1

我试图让嵌套的占位符在snippets中工作,这就意味着 工作 根据文件. 但是在使用的时候,基本上都是作为一个单一的tab停止处理。

测试片段

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

结果视频

有什么想法吗?先谢谢你。

visual-studio-code nested placeholder code-snippets vscode-snippets
1个回答
2
投票

我想说这是预期的行为。 下面是发生了什么。 在这种形式下。

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

在这种形式下: ${2:Second placeholder} 是第一个占位符的一部分! 所以它应该出现在第一个tabstop上,当你在第一个占位符上输入默认文本时,你也会删除第二个tabstop占位符。 如果顺序是这样,效果会更好。

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

现在接受或键入第一个占位符不会删除第二个占位符。 但第一个占位符的默认文本(first placeholder 在我的例子中)仍然是第二个占位符文本的一部分,所以如果您在它上面键入,它将被消除。 如果您在第二个占位符文本上输入了 标签.

显然,如果你想让两个占位符独立运行,不要嵌套它们。

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

所以我认为文档中嵌套占位符的例子可能在很多情况下都没有用,因为如果你想要第二个占位符的默认文本,而不是第一个 - 你会失去第二个文本,所以有什么意义。 但我确实认为它实际上是按照它应该的方式来操作的--只是这种形式不是很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.