如何定义片段占位符的默认值?

use*_*274 2 code-snippets visual-studio-code vscode-snippets

创建片段时,我想知道如果没有分配值,是否可以为占位符定义默认值。

例如,有这个 php 片段:

{
  "get_list": {
        "prefix": "get_list",
        "body": "$${1:beanList} = $${2:bean}->get_list('${3:order_by}', \"${4:where}\", ${5:row_offset}, ${6:limit}, ${7:max}, ${8:show_deleted});",
        "description": "Get a paginate bean list"
    },
}
Run Code Online (Sandbox Code Playgroud)

其中制表符 5 到 8 的占位符具有以下默认值:

$row_offset = 0
$limit= -1
$max= -1
$show_deleted = 0
Run Code Online (Sandbox Code Playgroud)

我尝试通过以下方式进行选择,但没有成功:

{
  "get_list": {
        "prefix": "get_list",
        "body": "$${1:beanList} = $${2:bean}->get_list('${3:order_by}', \"${4:where}\", ${5:row_offset|0|}, ${6:limit}, ${7:max}, ${8:show_deleted});",
        "description": "Get a paginate bean list"
    },
}
Run Code Online (Sandbox Code Playgroud)

请看一下定义row_offset。当片段呈现时,我得到以下内容

$beanList = $bean->get_list('order_by', "where", row_offset|0|, limit, max, show_deleted);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望发生的情况是我省略了分配的占位符值0

谢谢你的帮助。

Mar*_*ark 5

最接近你想要的就是“选择”。请参阅片段选择

你的术语有点不对劲。例如${6:limit},整个事物都是占位符,并且limit是它的默认值。所以它已经有一个默认值 - limit- 现在你想要另一个。所以尝试这个语法:

${6:|limit,-1|}
Run Code Online (Sandbox Code Playgroud)

占位符可以有选择作为值。语法是逗号分隔的值枚举,用管道字符括起来,例如 ${1|one,two,third|}。插入代码片段并选择占位符后,选项将提示用户选择其中一个值。