Как сделать IntelliSense для фрагментов, когда какой-то текст выделен в VSCode?

Я написал свой первый фрагмент, который обернет выбранный текст в 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....":П


Один из обходных путей - иметь выделенную привязку клавиш для запуска фрагментов, но я хочу, чтобы она была более неявной, как в самих предложениях по intellisense. Является ли это возможным?

1 ответ

Это если вы сначала скопируете выделение в буфер обмена, чтобы вы могли использовать:

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

Как только вы нажмете CTRL+SPACE и покажете intellisense, вместо поиска по фрагменту, набрав его имя, используйте кнопки ВВЕРХ / ВНИЗ для его поиска.

На editor.action.showSnippets привязку клавиш, вы также можете выполнить when пункт editorHasSelection, а затем вы можете использовать Ctrl+Spaceдля обеих функций. Это не хороший встроенный сниппет Intellisense, но он ближе к тому, что мы хотим.

Другие вопросы по тегам