【问题标题】:How to do IntelliSense for snippets when some text is selected in VSCode?在 VSCode 中选择某些文本时如何对代码片段执行 IntelliSense?
【发布时间】:2018-08-06 06:20:47
【问题描述】:

我编写了我的第一个 sn-p,它将所选文本包装在 if() { selected text } 块中。

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

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


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

【问题讨论】:

    标签: visual-studio-code intellisense vscode-snippets


    【解决方案1】:

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


    上一个答案:

    如果您先将所选内容复制到剪贴板以便您可以使用:

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

    【讨论】:

    • @quetzalcoatl 是对的。我不是在寻找基于剪贴板的粘贴。
    • 大家都说得对,我完全误会了VS VCode,抱歉!!
    • 选择文本后复制文本是一个额外的步骤,然后 sn-p 将完全按照您的意愿工作。让我们看看是否有另一种非键绑定的方式来做到这一点。
    【解决方案2】:

    点击 CTRL+SPACE 并显示智能感知后,不要通过键入名称来搜索 sn-p,而是使用向上/向下按钮来搜索它。

    【讨论】:

      【解决方案3】:

      editor.action.showSnippets 键绑定上,您还可以执行editorHasSelectionwhen 子句,然后您可以将Ctrl+Space 用于这两个功能。这不是漂亮的内联 sn-p Intellisense,但它更接近我们想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-20
        • 1970-01-01
        • 2018-10-08
        • 2013-09-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多