160 votes

Dans Intellij, comment basculer entre le camel case et l'espacement underscore ?

À mon entreprise, nous avons deux guides de style différents pour java par rapport à sql. En java, j'ai un champ nommé historyOfPresentIllness et quand j'écris le sql, je veux le nommer history_of_present_illness. Y a-t-il un raccourci clavier pour passer de l'un à l'autre lorsque j'ai la phrase surlignée? Ou peut-être un plugin qui peut le faire?

Tant que j'y suis, je pourrais aussi demander s'il y a un moyen de transformer historyOfPresentIllness en history-of-present-illness. C'est du style java au style clojure.

270voto

DannyMo Points 3198

Deux plugins offrent cette fonctionnalité :

J'utilise un plugin appelé String Manipulation qui fait ce dont vous avez besoin (et plus encore).

Sélectionnez historyOfPresentIllness et appuyez sur Alt / option+M pour ouvrir le menu du plugin, puis appuyez sur :

  • 5 - En snake_case (ou en camelCase) ce qui convertit en history_of_present_illness
  • 6 - En hyphen-case (ou en snake_case) ce qui convertit en history-of-present-illness

Pour faciliter cela, vous pouvez configurer un raccourci dans Fichier | Paramètres | Raccourci clavier.


Il y a aussi le plugin CamelCase.

SHIFT+Alt / option+U bascule la sélection entre les formats :

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

Vous pouvez également annuler vos modifications (maintenant qu'un bug dans le plugin a été corrigé).

82voto

Qamar Points 2182

Appuyez simplement sur Clr + F pour ouvrir le panneau Rechercher/Remplacer et cochez [✓] Regex copiez-collez le regex

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

Remplacer : \U$1

Appuyez sur le bouton [Remplacer tout], Profitez


Merci @piotrek pour _some_awe_var to _someAweVar

Utilisez Recherche : (\w)[_]{1,1}([a-z])
Remplacez par : $1\U$2

17voto

Theodore R. Smith Points 4410

De snake_case à CamelCase

  • Trouver: (\w)[_]{1,1}([a-z])
  • Remplacer: $1\U$2
  • Paramètres:
    • Respecter la casse
    • Regex

De CamelCase à snake_case:

  • Trouver: ([A-Z])
  • Remplacer: \_\L$1
  • Paramètres:
    • Respecter la casse
    • Regex

5voto

Rafe Points 313

Si vous êtes d'accord avec PyCharm pour également refactoriser les utilisations, lancez l'outil "Renommer" (Refactoriser > Renommer). La fenêtre apparaît avec une liste déroulante et vous devriez voir la version snake_case du texte dans la liste (vous pouvez ouvrir la fenêtre et passer au snake_case avec des raccourcis clavier pour que cela puisse être assez rapide).

4voto

piotrek Points 147

La réponse ci-dessus est presque parfaite, mais notez qu'elle changera les variables comme _something ou this._something en Something et this.Something. Je ne voulais pas cela dans mon cas, car le _ en tête était utilisé pour indiquer les variables "privées" (ancien projet JS). J'ai légèrement modifié cette approche :

Rechercher : (\w)[_]{1,1}([a-z])

Remplacer : $1\U$2

Cela garantira que seules les variables avec _ au milieu seront affectées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X