En Intellij, ¿cómo puedo alternar entre mayúsculas y minúsculas y guiones bajos espaciados?


109

En mi empresa tenemos dos guías de estilo diferentes para java vs sql. En java tengo un campo nombrado historyOfPresentIllnessy cuando escribo el sql, quiero nombrarlo history_of_present_illness. ¿Existe un método abreviado de teclado para cambiar de uno a otro cuando tengo la frase resaltada? ¿O quizás un complemento que pueda hacer esto?

Mientras que estoy pidiendo, puedo también preguntar si hay una manera de convertir historyOfPresentIllnessa history-of-present-illness. Eso es del estilo java al clojure.

Respuestas:


186

Utilizo un complemento llamado String Manipulation que tiene las capacidades que está buscando (y más).

Seleccione historyOfPresentIllnessy presione Alt+ Mpara abrir el menú de complementos, luego presione:

  • 5- A snake_case (o a camelCase) que se convierte enhistory_of_present_illness
  • 6 - A caso de guiones (o a caso_serpiente) que se convierte enhistory-of-present-illness

Para facilitar esto, puede configurar un atajo en File | Settings | Keymap .


Una búsqueda rápida en el repositorio de complementos para "camel" mostró un complemento llamado CamelCase que hace exactamente lo que estás buscando con SHIFT+ ALT+ Ual alternar entre varios formatos:

historyOfPresentIllness-> history_of_present_illness-> HISTORY_OF_PRESENT_ILLNESS-> HistoryOfPresentIllness->historyOfPresentIllness

Sin embargo, después de probarlo, parece haber un error con este complemento que le impide deshacer cualquier cambio. Actualización: parece que este error se ha solucionado por un tiempo, por lo que el complemento CamelCase es probablemente el camino a seguir.


1
@tieTYT Sí, es bastante molesto porque aparece un mensaje emergente que le dice que el archivo tiene cambios que no se pueden deshacer ... si no fuera por eso, hubiera sido la opción más conveniente.
DannyMo

2
@tieTYT Se me acaba de ocurrir que para simplificar el primer enfoque, puede grabar una macro Edit > Macros > Start recording macroy luego agregar una asignación de teclas simple para su macroSettings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
DannyMo

String Manipulation ahora también contiene acciones para alternar entre todo tipo de casos ... Puede configurar un acceso directo a cualquier acción (hay demasiados de ellos para tener algunos predeterminados).
Meo

@DannyMo - Para mí, es 5de SCREAMING_SNAKE_CASEy Jes para Trim all spaces. Con Mac OS X 10.10.5, PhpStorm 10.0.1, Manipulación de cadenas 4.1.135.445.1.
Pang

Puedo confirmar que el complemento CamelCase funciona bien con IntelliJ 2016.2.3
Wim Deblauwe

45

Presione muy simple Clr + Fpara abrir el panel Buscar / Reemplazar y verificar [✓] Regex copy pasado regex

Encontrar: [_]{1,1}([a-z])

Reemplazar: \U$1

Presione el botón [Reemplazar todo], disfrute


Gracias a @piotrek _some_awe_vara_someAweVar

Usar Buscar: (\w)[_]{1,1}([a-z])
Reemplazar:$1\U$2


2
En aras de la integridad, desde camelCase hasta snake_case: busque ([A-Z]{1,1})y reemplace por _\l$1, con las opciones de caso Regex y Match activadas.
dic19

Esto es genial, pero en TypeScript, a menudo los miembros privados comienzan con un _y esto los hará comenzar en mayúsculas.
Stack Underflow

1
@StackUnderflow uso Buscar: (\w)[_]{1,1}([a-z]) Reemplazar: $1\U$2
Qamar

7

De snake_case a CamelCase

  • Encontrar: (\w)[_]{1,1}([a-z])
  • Reemplazar: $1\U$2
  • Configuraciones:
    • Match Case
    • Regex

De CamelCase a snake_case:

  • Encontrar: ([A-Z])
  • Reemplazar: \_\L$1
  • Configuraciones:
    • Match Case
    • Regex

3

La respuesta anterior es casi perfecta, pero tenga en cuenta que cambiará variables como _somethingo this._somethingen Somethingy this.Something. No quería eso en mi caso, ya que el _ principal se usaba para denotar variables "privadas" (antiguo proyecto JS). Modifiqué ligeramente este enfoque:

Encontrar: (\ w) [_] {1,1} ([az])

Reemplazar: $ 1 \ U $ 2

Esto asegurará que solo las variables con _está en el medio se verán afectadas.


1
"arriba" no tiene sentido porque las respuestas se pueden ordenar; su "arriba" no es el "arriba" de todos, así que evite usar "arriba" o "abajo" para describir el contenido de este sitio; en su lugar, proporcione el nombre del autor, gracias
Eric Aya

La respuesta "anterior" a la que se hace referencia es @Qamar
Stack

0

Si está de acuerdo con que PyCharm también refactorice los usos, inicie la herramienta "Cambiar nombre" (Refactorizar> Cambiar nombre). La ventana aparece con una lista desplegable y debería ver la versión snake_case del texto en la lista (puede abrir la ventana y cambiar a snake_case con pulsaciones de teclas para que pueda ser bastante rápido).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.