Вы можете сделать фрагмент, который сделает это легко. Добавьте привязку клавиш, чтобы вызвать этот фрагмент в привязках клавиш. json:
{
"key": "alt+b", // or whatever keybinding you want
"command": "editor.action.insertSnippet",
"args": {
"snippet": "(${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g})"
}
}
${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g}
получить выделенный текст. Регулярное выражение получит текст каждой строки в группе захвата 1 и любой символ новой строки в группе захвата 2.
Затем добавляется 'group 1'
, за которым следует ,
, только если есть группа 2. Поскольку флага g
regex это произойдет для всех строк.
Если вы хотите, чтобы пустые строки отображались в виде пустых строк в выходных данных, используйте
"snippet": "(${TM_SELECTED_TEXT/((.+)(\\r\\n))|(.+)|(\\r\\n)/'$2$4'${3:+,}${5:+,}/g})"
Demo из этого:
Если вы хотите этот вывод фрагмента:
Select * from Table where Column in ('line1','line2','line3')
затем используйте:
"snippet": "Select * from Table where Column in (${TM_SELECTED_TEXT/\\s*(.+)(\\s)?/'$1'${2:+,}/g})"