我正在构建一个Visual Studio代码片段。我想把我选择的文本赋给一个变量或其他东西:${TM_SELECTED_TEXT=${TM_SELECTED_TEXT/(.*)/${1:/upcase}/}}
如果这是不可能的,我想否则大写我所选择的文本在一个条件:SQL:FREE(RECH${${TM_SELECTED_TEXT/(.*)/${1:/upcase}/}:${1}})
例如,我选择的文本是house
。
对于第一个问题,结果给予我:${TM_SELECTED_TEXT=HOUSE}
对于第二个问题,结果是:SQL:FREE(RECH${HOUSE:})
我想要SQL:FREE(RECHHOUSE)
或SQL:FREE(RECH)
,如果没有任何选定的文本,则将光标放在RECH
之后。SQL:FREE(RECH${TM_SELECTED_TEXT:${1}})
工作,但我想把它大写。
1条答案
按热度按时间mwyxok5s1#
更新答案
这是一个黑客的解决方案,不是很干净,但我想不出一个更好的。
由于some issues,条件分支不能为空,即使EBNF说它可以:
这意味着如果
TM_SELECTED_TEXT
存在,我们需要添加一个尾随空格,并最终得到以下结果:| 之前|后|光标|
| --|--|--|
|
house
|SQL:FREE(RECHHOUSE)
|HOUSE)
| ``||
<empty>
|SQL:FREE(RECH)
|RECH
|)
|原创
你们关系很好只需将升级后的
TM_SELECTED_TEXT
Package 在${0:
}
中,以便将其视为占位符:| 之前|后|光标|
| --|--|--|
|
house
|SQL:FREE(RECHHOUSE)
| [HOUSE
]||
<empty>
|SQL:FREE(RECH)
|RECH
||如果您希望光标始终位于
TM_SELECTED_TEXT
之后,请将$0
放在它的正后方:| 之前|后|光标|
| --|--|--|
|
house
|SQL:FREE(RECHHOUSE)
|HOUSE
|||
<empty>
|SQL:FREE(RECH)
|RECH
||