如何在代码片段中实现带子选项的扩展制表位?
VS Code代码片段实现条件子选项方案
你需要的是基于父选项选择结果动态触发子选项的代码片段,普通嵌套选项无法实现,可通过VS Code支持的正则替换插值语法达成需求,以下是可行代码:
"Basic Furniture": { "prefix": "!bfurniture", "description": "Basic Furniture Template", "scope": "json", "body": [ "{", " \"id\": $1,", " \"props\": [", " \"${2|nothing,chair,all|}\"${2/(chair)/, \"${3|wooden,plastic|}\"/}", " ],", " \"description\": [", " \"${0:...}\"", " ]", "}" ] }
实现逻辑说明
- 选择
$2的父选项时,正则${2/(chair)/, "${3|wooden,plastic|}"/}会做判断:- 若选
chair,自动插入, "${3|wooden,plastic|}",同时光标跳转到$3选择子选项 - 若选
nothing或all,替换部分为空,光标直接跳转至$0的描述输入位
- 若选
- 光标跳转顺序:
$1(填写id)→$2(选父选项)→ 选chair则到$3(选子选项)→ 最终到$0
验证效果
- 输入
!bfurniture触发片段,先填写id - 选
nothing:直接进入description输入框 - 选
chair:立刻弹出wooden/plastic选项,选完后进入description输入框
内容的提问来源于stack exchange,提问作者ZombieAce
相关产品推荐
相关产品推荐

