Получить строки строк в "массив" - PullRequest
1 голос
/ 24 февраля 2020

У меня часто есть строки строк в VSCode, но мне нужен массив для PowerShell или SQL.

У меня есть в VSCode

line1
line2
line3

Мне нужно что-то подобное в Vscode

('line1','line2','line3')

В результате

Select * from Table where Column in ('line1','line2','line3')

или

$a = 'line1','line2','line3'

Есть ли для этого функция / расширение?

Ответы [ 2 ]

3 голосов
/ 24 февраля 2020

array build demo Вы можете сделать фрагмент, который сделает это легко. Добавьте привязку клавиш, чтобы вызвать этот фрагмент в привязках клавиш. 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 из этого:

empty lines 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})"
0 голосов
/ 24 февраля 2020

Вы можете сделать это, используя regex replace:

  • Выберите строки кода, к которым вы присоединитесь sh, чтобы присоединиться
  • ctrl + h, измените режим на Регулярные выражения
  • в типе поиска \ n
  • в типе «Заменить»), ('
  • Заменить все

Нет необходимости добавлять \r в функцию «Найти или выйти» скобки в Заменить.

screen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...