0

我试图让嵌套占位符在片段中工作,这应该根据文档工作。但是在使用它时,它基本上被视为单个制表位。

测试片段

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

结果视频

有任何想法吗?提前致谢。

4

1 回答 1

2

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

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

${2:Second placeholder}是第一个占位符的一部分!所以这一切都应该出现在第一个制表位上,当您在第一个占位符默认文本上键入时,您还会删除第二个制表位/占位符。如果订单是这样的,效果会更好:

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

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

显然,如果你想让两个占位符独立操作,不要嵌套它们:

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

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

于 2020-05-17T17:28:25.143 回答