Как изменить нижний регистр на верхний, используя регулярные выражения в коде Visual Studio

Я использую Visual Studio Code 1.14.2, и я пытаюсь изменить имя переменных на camelCase, например. set_nominal_wavelength для setNominalWavelength.

Регулярное выражение: _([az])

Заменить: \U$1\E

не работает. Любая идея, как его достичь?

Ответ 1

Существует обходной путь:

  1. Откройте диалог замены и введите регулярное выражение: _([az])
  2. Затем переместите фокус в область редактора и нажмите Ctrl + F2 ("Изменить все вхождения")
  3. Затем измените регистр выделения (Ctrl + P> верхний)
  4. Затем нажмите клавишу со стрелкой влево и нажмите клавишу удаления

Ответ 2

Вы можете использовать другие инструменты, поддерживающие операторы case case, такие как Notepad++, sed, R (gsub с perl=TRUE), но VS Code не поддерживает эти операторы в шаблоне замены.

См. Этот запрос функции GitHub:

Это здорово. Это выходит за рамки того, что в настоящее время поддерживается javascript.

Нам нужно придумать наш собственный усовершенствованный двигатель замены для поддержки этих случаев.

Ответ 3

В октябре 2017 года в vscode были добавлены преобразования переменных фрагмента, см . Примечания к выпуску за сентябрь 2017 года, преобразования фрагментов.

На тот момент вы могли сделать это довольно легко, но вы должны установить простую привязку клавиш:

{
  "key": "alt+-",
  "command": "editor.action.insertSnippet",
  "args": {
    "snippet": "${TM_SELECTED_TEXT/_([a-z])/${1:/capitalize}/g}"
  }
}
  1. Введите _([az]) в панель поиска,
  2. Ctrl - Shift - L, чтобы выбрать все совпадения, и
  3. Запустите выбранную комбинацию клавиш из приведенного выше примера.

Нет необходимости изменения фокуса.

demo of camelCase snippet transform


К сожалению, по состоянию на июнь 2019 года никаких изменений по этому вопросу, приведенных в разделе " Преобразования дела Виктора", не было заменено.