Strumenti di testo e di uso quotidiano · Text Toolkit
Come i convertitori di maiuscole e minuscole dividono camelCase e acronimi come parseHTTPResponse
· Come funziona
conversione del testo flusso di lavoro dello sviluppatore unicode
Spiega le tre regole limite applicate da un buon convertitore di casi (esecuzioni di separatori, transizioni dal basso verso l'alto e bordi degli acronimi) e perché parseHTTPResponse2Json è il test che espone quelli deboli.
parse_h_t_t_p_response e altri errori: perché convertire gli identificatori è più difficile che convertire "hello world"
Trasformare "hello world" in hello_world è facile; trasformare parseHTTPResponse in parse_h_t_t_p_response è un segno che un algoritmo ha trattato ogni capitale come una parola. Uno sviluppatore che rinomina gli identificatori JavaScript per un Python API ha bisogno del contrario: identificare prima i token, quindi applicare la convenzione di unione della destinazione. Lo stesso primo passo dovrebbe alimentare l'output di serpente, kebab, cammello e Pascal, altrimenti quattro pulsanti non sono d'accordo su dove iniziano le parole.
Regola uno: tratti di separatore: spazi, trattini, trattini bassi e punteggiatura segnano tutti un confine, non importa quanti di seguito
Le sequenze di spazi, trattini, trattini bassi e altri caratteri non lettera/non-number segnano già i confini. Tratta un'esecuzione come un separatore: button--primary dovrebbe diventare due token, non un token vuoto tra i trattini. Il convertitore maiuscole e minuscole di ToolAcre si divide con un'espressione compatibile con Unicode per lettere e numeri, quindi le lettere comuni non ASCII non vengono eliminate semplicemente perché sono esterne alla A–Z. La normalizzazione degli spazi bianchi riguarda le convenzioni di denominazione, non la modifica automatica del file sorgente originale.
Regola due: transizioni dal minuscolo al maiuscolo: una lettera minuscola o una cifra seguita da una maiuscola inizia una nuova parola
Il modello per una lettera minuscola o una cifra seguita da una lettera maiuscola inserisce un limite prima della lettera maiuscola. Ciò trasforma parseResponse in parse + Response e consente a 2Json di diventare 2 + Json. Questa regola non separa di per sé la parola precedente dalla sua cifra finale: ToolAcre tratta Response2 come un token prima di dividere la J maiuscola. Se vuoi Response + 2 è una decisione di guida di stile, quindi controlla gli identificatori numerici invece di dare per scontato che ogni convertitore faccia la stessa scelta.
Regola tre: bordi dell'acronimo: una sequenza di maiuscole seguita da una coppia maiuscola-minuscola termina l'acronimo prima dell'ultima capitale
Un acronimo ha bisogno di uno sguardo in più. In HTTPResponse, la sequenza maiuscola HTTP termina prima di R perché R è seguita da una risposta minuscola. Una regola che corrisponde alla coppia run e maiuscola-minuscola inserisce un limite qui: HTTP + Risposta, non H + T + T + P + Risposta. Quando un nome termina tutto maiuscolo, non c'è il suffisso minuscolo per contrassegnare una nuova parola e l'acronimo rimane insieme. Questa è la differenza tra tokenizzare gli identificatori e inserire un separatore prima di ogni capitale.
Cifre e casi limite: dove "2Json" si divide e perché nessun insieme di regole soddisfa ogni guida di stile
Le convenzioni sulle cifre rimangono ambigue: version2Parser, HTTP2Json e IP6Address non implicano tutti lo stesso raggruppamento di parole. ToolAcre raggruppa le cifre con il token precedente finché una capitale successiva non attiva il confine successivo. Allo stesso modo, una lettera con lettere maiuscole sensibili alla lingua può espandersi o comportarsi diversamente da ASCII: il turco punteggiato/dotless i e il tedesco ß meritano una revisione manuale. Lo strumento effettua una trasformazione deterministica, non una pretesa di comprendere la denominazione semantica di una variabile.
Esempio funzionante: esecuzione di parseHTTPResponse2Json e una classe CSS con trattino tramite serpente, kebab, cammello e Pascal case
Esegui parseHTTPResponse2Json tramite il convertitore di casi effettivo. Produce parse_http_response2_json nel caso del serpente, parse-http-response2-json nel caso del kebab, parseHttpResponse2Json nel caso del cammello e ParseHttpResponse2Json nel caso del Pascal. Per button--primary, i separatori consecutivi si riducono a button_primary e button-primary. Questi output espongono sia la regola dell'acronimo corretta che la scelta del raggruppamento delle cifre. Testalo rispetto alla tua destinazione API prima di utilizzare la ricerca e sostituzione in una codebase.
Ciò che questo non copre è l'involucro specifico della lingua locale, come la i puntata turca, che ha un proprio post
Questo meccanismo non implementa il ripiegamento delle maiuscole in ogni lingua, né deduce che un acronimo stia per un particolare termine di dominio, né rinomina i riferimenti in un programma. La conversione di stringhe e identificatori è diversa dal refactoring del codice sorgente con riconoscimento dei simboli. Lo strumento non può promettere che un servizio Python accetti un campo JSON rinominato; i chiamanti potrebbero ancora dipendere dalla vecchia ortografia. Esegui i test dello schema dopo aver modificato i nomi dei campi pubblici.
Conclusione: il convertitore di casi di Text Toolkit applica queste tre regole e mostra immediatamente il risultato in modo da poterlo controllare prima di incollarlo nel codice
Innanzitutto identificare i token utilizzando separatori, transizioni e bordi dell'acronimo; solo allora unisciti e assemblali. Text Toolkit rende tali regole visibili con output immediato e ti consente di annullare una conversione. Per un nome di campo ricco di acronimi, confronta i risultati reali di snake/kebab anziché applicare ciecamente una semplice espressione regolare con lettere maiuscole a un intero repository.