片段:嵌套占位符不起作用
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"
}
}
有什么想法吗?提前致谢。
我会说这是预期的行为。这是正在发生的事情。这种形式:
${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} />",
所以我认为文档中的嵌套占位符示例在很多情况下可能没有帮助,因为如果您想要第二个占位符默认文本而不是第一个 - 您会丢失第二个文本,那有什么意义呢。但我确实认为它实际上正在按应有的方式运行 - 它只是在那种形式下不是很有帮助。
我正在尝试让嵌套占位符在片段中工作,应该工作according to the documentation。但是当使用它时,它基本上被视为一个单一的制表位。
测试片段
{
"nestedPlaceholders": {
"prefix": "nestedPlaceholders",
"body": ["<test ${1:first placeholder ${2:Second placeholder}} />"],
"description": "Test for nested placeholders"
}
}
有什么想法吗?提前致谢。
我会说这是预期的行为。这是正在发生的事情。这种形式:
${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} />",
所以我认为文档中的嵌套占位符示例在很多情况下可能没有帮助,因为如果您想要第二个占位符默认文本而不是第一个 - 您会丢失第二个文本,那有什么意义呢。但我确实认为它实际上正在按应有的方式运行 - 它只是在那种形式下不是很有帮助。