我写了第一个代码片段,它将把所选文本包装在if() { selected text }
块中。
"if block - snippet": {
"prefix": "if block - snippet",
"body": [
"if( $1 ) {",
"$TM_SELECTED_TEXT",
"}",
"$0"
],
"description": "if block - snippet"
}
当我选择文本并点击CTRL+SPACE时,它会显示intellisense,但当我开始搜索我的代码段"if block-snippet"而不是搜索时,它将清除所选文本并开始编写"if blo…":p
一种解决方法是使用专用的键绑定来触发代码片段,但我希望它像intellisense建议本身一样更隐式。有可能吗?
立即更新:vscode"记住$TM_SELECTED_TEXT
,即使它在编写代码段前缀时似乎消失了。因此,您的原始片段如您所期望的那样工作。无需使用$CLIPBOARD
。
上一个答案:
如果您先将所选内容复制到剪贴板,则可以使用:
"if block - snippet": {
"prefix": "if block - snippet",
"body": [
"if( $1 ) {",
"$CLIPBOARD",
"}",
"$0"
],
"description": "if block - snippet"
}
点击CTRL+SPACE和intellisense显示后,不要通过键入名称来搜索代码段,而是使用UP/DOWN按钮来搜索它。
在editor.action.showSnippets
密钥绑定上,您还可以执行editorHasSelection
的when
子句,然后您可以将Ctrl+Space
用于这两个功能。这不是一个很好的内联片段Intellisense,但它更接近我们想要的。