Français

Texte et outils du quotidien · Boîte à outils texte

Comment les convertisseurs de cas divisent camelCase et les acronymes comme parseHTTPResponse

· Comment ça marche

conversion de texte workflow de développeur unicode

Identifiant parseHTTPResponse divisé en jetons d'analyse, HTTP et réponse
Illustration vectorielle originale de ToolAcre

Explique les trois règles de délimitation qu'un bon convertisseur de cas applique (séparateurs, transitions inférieures à supérieures et bords d'acronymes) et pourquoi parseHTTPResponse2Json est le test qui expose les plus faibles.

parse_h_t_t_p_response et autres échecs — pourquoi la conversion des identifiants est plus difficile que la conversion de « hello world »

Transformer « hello world » en hello_world est simple ; transformer parseHTTPResponse en parse_h_t_t_p_response est le signe qu'un algorithme a traité chaque majuscule comme un mot. Un développeur renommant des identifiants JavaScript pour une API Python a besoin de l'inverse : identifier d'abord les jetons, puis appliquer la convention d'adhésion de la destination. La même première étape devrait alimenter les sorties serpent, kebab, chameau et Pascal, sinon quatre boutons ne sont pas d'accord sur le début des mots.

Première règle : les séparateurs – les espaces, les traits d'union, les traits de soulignement et les signes de ponctuation marquent tous une limite, quel que soit le nombre d'affilée

Les séries d'espaces, de traits d'union, de traits de soulignement et d'autres caractères autres que des lettres ou des chiffres marquent déjà les limites. Traitez une exécution comme un séparateur : bouton--primaire doit devenir deux jetons, pas un jeton vide entre les traits d'union. Le convertisseur de cas de ToolAcre se divise avec une expression compatible Unicode pour les lettres et les chiffres, de sorte que les lettres non-ASCII courantes ne sont pas jetées simplement parce qu'elles se trouvent en dehors de A à Z. La normalisation des espaces concerne les conventions de dénomination, et non la modification automatique du fichier source d'origine.

Deuxième règle : transitions du bas vers le haut – une lettre minuscule ou un chiffre suivi d'une majuscule commence un nouveau mot

Le modèle pour une lettre minuscule ou un chiffre suivi d'une lettre majuscule insère une limite avant la majuscule. Cela transforme parseResponse en parse + Response et permet à 2Json de devenir 2 + Json. Cette règle ne sépare pas en elle-même le mot précédent de son dernier chiffre : ToolAcre traite Response2 comme un seul jeton avant de diviser le J majuscule. Que vous souhaitiez Réponse + 2 est une décision de guide de style, alors inspectez les identifiants numériques au lieu de supposer que chaque convertisseur fait le même choix.

Troisième règle : bords de l'acronyme – une série de majuscules suivie d'une paire de majuscules puis de minuscules termine l'acronyme avant la dernière majuscule.

Un acronyme nécessite une analyse supplémentaire. Dans HTTPResponse, le HTTP majuscule se termine avant R car R est suivi d'une réponse minuscule. Une règle correspondant à l'exécution et à la paire majuscule-minuscule y insère une limite : HTTP + Réponse, pas H + T + T + P + Réponse. Lorsqu'un nom se termine par des majuscules, il n'y a pas de suffixe minuscule pour marquer un nouveau mot et l'acronyme reste ensemble. C'est la différence entre la tokenisation des identifiants et l'insertion d'un séparateur avant chaque majuscule.

Chiffres et cas extrêmes : où « 2Json » se divise et pourquoi aucun ensemble de règles ne satisfait tous les guides de style

Les conventions numériques restent ambiguës : version2Parser, HTTP2Json et IP6Address n'impliquent pas tous le même regroupement de mots. ToolAcre regroupe les chiffres avec le jeton précédent jusqu'à ce qu'une majuscule suivante déclenche la limite suivante. De même, une lettre avec des majuscules sensibles aux paramètres régionaux peut s'étendre ou se comporter différemment de l'ASCII : le i turc avec points/sans points et le ß allemand méritent une révision manuelle. L'outil effectue une transformation déterministe et ne prétend pas comprendre la dénomination sémantique d'une variable.

Exemple pratique : exécution de parseHTTPResponse2Json et d'une classe CSS avec trait d'union via les cas Snake, Kebab, Camel et Pascal

Exécutez parseHTTPResponse2Json via le convertisseur de cas réel. Il produit parse_http_response2_json dans le cas du serpent, parse-http-response2-json dans le cas du kebab, parseHttpResponse2Json dans le cas du chameau et ParseHttpResponse2Json dans le cas du Pascal. Pour bouton-primaire, les séparateurs consécutifs se transforment en bouton_primaire et bouton-primaire. Ces résultats exposent à la fois la règle d’acronyme réussie et le choix de regroupement de chiffres. Testez votre API de destination avant d'utiliser la recherche et le remplacement dans une base de code.

Ce que cela ne couvre pas : les boîtiers spécifiques aux paramètres régionaux tels que le i pointé turc, qui a son propre message

Ce mécanisme ne met pas en œuvre la casse de chaque langage, ne déduit pas qu'un acronyme représente un terme de domaine particulier ou ne renomme pas les références dans un programme. La conversion de chaînes et d'identifiants est différente de la refactorisation du code source avec prise en compte des symboles. L'outil ne peut pas promettre qu'un service Python accepte un champ JSON renommé ; les appelants peuvent toujours dépendre de l’ancienne orthographe. Exécutez vos tests de schéma après avoir modifié les noms des champs publics.

Ce qu'il faut retenir : le convertisseur de cas de Text Toolkit applique ces trois règles et affiche le résultat instantanément afin que vous puissiez le vérifier avant de le coller dans le code.

Identifiez d’abord les jetons à l’aide de séparateurs, de transitions et de bords d’acronymes ; alors seulement, rejoignez-les et cassez-les. Le Text Toolkit rend ces règles visibles avec une sortie immédiate et vous permet d'annuler une conversion. Pour un nom de champ contenant beaucoup d'acronymes, comparez les résultats réels du serpent/kebab plutôt que d'appliquer aveuglément une simple expression régulière en majuscule à un référentiel entier.