2

我写了我的第一个片段,它将选定的文本包装在if() { selected text }块中。

"if block - snippet": {
        "prefix": "if block - snippet",
        "body": [
            "if( $1 ) {",
            "$TM_SELECTED_TEXT",
            "}",
            "$0"
        ],
        "description": "if block - snippet"
    }

当我选择文本并按 CTRL+SPACE 时,它会显示智能感知,但是,当我开始搜索我的片段“if block - snippet”而不是搜索它时,它会清除所选文本并开始编写“if blo .... “:P


一种解决方法是使用专用的键绑定来触发片段,但我希望它更隐含,就像智能​​感知建议本身一样。可能吗?

4

3 回答 3

1

更新:vscode 现在“记住$TM_SELECTED_TEXT即使在您编写代码段前缀时它似乎消失了。所以您的原始代码段可以按预期工作。无需使用$CLIPBOARD.


上一个答案:

如果您首先将选择复制到剪贴板,那么您可以使用:

    "if block - snippet": {
        "prefix": "if block - snippet",
        "body": [
                "if( $1 ) {",
                "$CLIPBOARD",
                "}",
                "$0"
        ],
        "description": "if block - snippet"
}
于 2018-08-06T06:41:29.683 回答
0

一旦按下 CTRL+SPACE 和智能感知显示,而不是通过键入其名称来搜索片段,使用向上/向下按钮来搜索它。

于 2019-07-24T10:55:40.197 回答
0

editor.action.showSnippets键绑定上,您还可以做一个when子句editorHasSelection,然后您可以同时使用Ctrl+Space这两个功能。这不是漂亮的内联代码片段 Intellisense,但它更接近我们想要的。

于 2020-01-08T20:03:32.733 回答