Как сделать 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, но он ближе к тому, что мы хотим.