vscode 片段:如何link 片段中的位置到制表位?
vscode snippets: How to link a position in the snippet to a tabstop?
我想创建一个片段来打印变量的值以用于调试目的。这是我想出的:
{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\" :\", )"]
}
}
当我使用这个片段时,光标在引号之间(| 是光标位置):
console.log("| :",)
在我输入变量名称后,它将名称复制到第二个参数:
console.log("name :", name)
但我不能在字符串中使用自动完成功能。有时变量是一个对象,自动完成帮助我选择对象的特定键。我希望光标停在第二个参数中,以便我可以使用自动完成:
console.log(" :", |)
无论我输入什么,都应该在双引号内复制:
console.log("name :", name)
和前面的例子一样,但是倒退了。
我该怎么做?
更新:
我创建了一个问题:https://github.com/microsoft/vscode/issues/142327
我试过以下版本:
{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\"${2:} :\", );[=10=]"]
}
}
它从 1 美元开始,但立即也显示 2 美元的文本,使用 TAB 我可以更改双引号之间的文本,但我没有得到 1 美元的 auto-completion。
我认为这应该在 repo 的一个问题中提出。 $2 应该在 TAB 之后复制 $1 的文本,并且 $1 应该像使用
时那样具有 auto-completion
{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\" :\", );[=11=]"]
}
}
我假设您已 Editor > Suggest: Snippets Prevent Quick Suggestions
禁用并且
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true // the important one here
},
在我的测试中,即使使用这些设置它仍然不起作用。这看起来确实像一个错误。它甚至在更简单的情况 "\"\" "
上也失败了。因此,尽管有上述设置,但在字符串中的一些东西会阻止智能感知。
但是有一个解决方法:
"Debug": {
"prefix": ["db"],
"body": [
// select everything you want to surround with quotes
"console.log(${2: :}, )" // you will get intellisense
]
}
${2:...}
将 select tabstop 1 + :
的结果,然后您可以点击 "
将 selection 用引号括起来。你只需要再打一个 tab
然后你可能会期待。
我想创建一个片段来打印变量的值以用于调试目的。这是我想出的:
{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\" :\", )"]
}
}
当我使用这个片段时,光标在引号之间(| 是光标位置):
console.log("| :",)
在我输入变量名称后,它将名称复制到第二个参数:
console.log("name :", name)
但我不能在字符串中使用自动完成功能。有时变量是一个对象,自动完成帮助我选择对象的特定键。我希望光标停在第二个参数中,以便我可以使用自动完成:
console.log(" :", |)
无论我输入什么,都应该在双引号内复制:
console.log("name :", name)
和前面的例子一样,但是倒退了。
我该怎么做?
更新: 我创建了一个问题:https://github.com/microsoft/vscode/issues/142327
我试过以下版本:
{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\"${2:} :\", );[=10=]"]
}
}
它从 1 美元开始,但立即也显示 2 美元的文本,使用 TAB 我可以更改双引号之间的文本,但我没有得到 1 美元的 auto-completion。
我认为这应该在 repo 的一个问题中提出。 $2 应该在 TAB 之后复制 $1 的文本,并且 $1 应该像使用
时那样具有 auto-completion{
"Debug": {
"prefix": ["db"],
"body": ["console.log(\" :\", );[=11=]"]
}
}
我假设您已 Editor > Suggest: Snippets Prevent Quick Suggestions
禁用并且
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true // the important one here
},
在我的测试中,即使使用这些设置它仍然不起作用。这看起来确实像一个错误。它甚至在更简单的情况 "\"\" "
上也失败了。因此,尽管有上述设置,但在字符串中的一些东西会阻止智能感知。
但是有一个解决方法:
"Debug": {
"prefix": ["db"],
"body": [
// select everything you want to surround with quotes
"console.log(${2: :}, )" // you will get intellisense
]
}
${2:...}
将 select tabstop 1 + :
的结果,然后您可以点击 "
将 selection 用引号括起来。你只需要再打一个 tab
然后你可能会期待。