В Intellij, как мне переключаться между верблюжьим футляром и подчеркиванием?

В моей компании у нас есть два разных руководства по стилю для java vs sql. В java у меня есть поле с именем historyOfPresentIllness, и когда я пишу sql, я хочу назвать его history_of_present_illness. Есть ли сочетание клавиш для переключения с одного на другое, когда у меня выделена фраза? Или возможно плагин, который может это сделать?

Пока я спрашиваю, я могу спросить, есть ли способ превратить historyOfPresentIllness в history-of-present-illness. Это от java до clojure.

Ответ 1

Я использую плагин под названием String Manipulation, который обладает возможностями, которые вы ищете (и не только).

Выберите historyOfPresentIllness и нажмите Alt + M, чтобы вызвать меню плагина, затем нажмите:

  • 5 - в snake_case (или в camelCase), который преобразуется в history_of_present_illness
  • 6 - в дефисе (или в snake_case), который преобразуется в history-of-present-illness

Чтобы сделать это проще, вы можете настроить ярлык на File | Settings | Keymap File | Settings | Keymap File | Settings | Keymap.


Быстрый поиск в хранилище плагинов для "верблюда" показал, что плагин CamelCase делает именно то, что вы ищете с SHIFT + ALT + U, переключаясь между различными форматами:

historyOfPresentIllnesshistory_of_present_illnessHISTORY_OF_PRESENT_ILLNESSHistoryOfPresentIllnesshistoryOfPresentIllness

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

Ответ 2

Очень просто нажать Clr + F, чтобы открыть панель Найти/заменить и проверить [✓] Регулярное выражение копировать заново

Найти: [_]{1,1}([a-z])

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

Нажмите кнопку [Заменить все], наслаждайтесь

Ответ 3

Ответ выше почти идеален, но учтите, что он изменит переменные типа _something или this._something на Something и this.Something. Я не хотел этого в моем случае, так как ведущий _ использовался для обозначения "закрытых" переменных (старый проект JS). Я немного изменил этот подход:

Найти: (\ w) [_] {1,1} ([az])

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

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

Ответ 4

Если у вас все в порядке с PyCharm и рефакторинг использования, запустите инструмент "Переименовать" (Refactor> Rename). Появляется окно с выпадающим списком, и вы должны увидеть версию текста snake_case в списке (вы можете открыть окно и переключиться на snake_case с помощью нажатий клавиш, чтобы он мог быть довольно быстрым).

Ответ 5

От snake_case до CamelCase

  • Найти: (\w)[_]{1,1}([az])
  • Заменить: $1\U$2
  • Настройки:
    • Учитывать регистр
    • Regex

От CamelCase до snake_case:

  • Найти: ([AZ])
  • Заменить: \_\L$1
  • Настройки:
    • Учитывать регистр
    • Regex