Text- und Alltagswerkzeuge · Text-Toolkit
Wie Groß-/Kleinschreibungskonverter „camelCase“ und Akronyme wie „parseHTTPResponse“ aufteilen
· Wie es funktioniert
Textkonvertierung Entwickler-Workflow Unicode
Erklärt die drei Grenzregeln, die ein guter Fallkonverter anwendet – Trennlinien, Übergänge von unten nach oben und Akronymkanten – und warum parseHTTPResponse2Json der Test ist, der schwache Regeln aufdeckt.
parse_h_t_t_p_response und andere Fehler – warum das Konvertieren von Bezeichnern schwieriger ist als das Konvertieren von „Hallo Welt“
„Hallo Welt“ in hello_welt umzuwandeln ist einfach; Das Umwandeln von parseHTTPResponse in parse_h_t_t_p_response ist ein Zeichen dafür, dass ein Algorithmus jedes Großbuchstaben als Wort behandelt hat. Ein Entwickler, der JavaScript-Bezeichner für eine Python-API umbenennt, benötigt das Gegenteil: Identifizieren Sie zuerst die Token und wenden Sie dann die Verknüpfungskonvention des Ziels an. Der gleiche erste Schritt sollte für die Ausgabe von Snake, Kebab, Camel und Pascal gelten, andernfalls sind sich vier Tasten nicht einig, wo die Wörter beginnen.
Regel eins: Trennzeichen – Leerzeichen, Bindestriche, Unterstriche und Satzzeichen markieren alle eine Grenze, egal wie viele hintereinander sie auch sein mögen
Leerzeichen, Bindestriche, Unterstriche und andere Zeichen, die keine Buchstaben/Zahlen sind, markieren bereits Grenzen. Behandeln Sie einen Lauf als ein Trennzeichen: button--primary sollte zu zwei Tokens werden, nicht zu einem leeren Token zwischen den Bindestrichen. Der Fallkonverter von ToolAcre teilt sich mit einem Unicode-fähigen Ausdruck für Buchstaben und Zahlen auf, sodass gängige Nicht-ASCII-Buchstaben nicht weggeworfen werden, nur weil sie außerhalb von A–Z liegen. Bei der Leerraumnormalisierung geht es um Namenskonventionen und nicht darum, die ursprüngliche Quelldatei automatisch zu ändern.
Regel zwei: Übergänge von unten nach oben – ein Kleinbuchstabe oder eine Ziffer gefolgt von einem Großbuchstaben beginnt ein neues Wort
Das Muster für einen Kleinbuchstaben oder eine Ziffer gefolgt von einem Großbuchstaben fügt vor dem Großbuchstaben eine Grenze ein. Das verwandelt parseResponse in parse + Response und ermöglicht, dass 2Json zu 2 + Json wird. Diese Regel trennt das vorangehende Wort nicht von seiner letzten Ziffer: ToolAcre behandelt Response2 als ein Token, bevor es das Großbuchstabe J aufteilt. Ob Sie Response + 2 wünschen, ist eine Styleguide-Entscheidung. Überprüfen Sie daher numerische Bezeichner, anstatt davon auszugehen, dass jeder Konverter die gleiche Wahl trifft.
Regel drei: Akronymkanten – eine Reihe von Großbuchstaben, gefolgt von einem Groß- und Kleinbuchstabenpaar, beendet das Akronym vor dem letzten Großbuchstaben
Ein Akronym braucht noch einen weiteren Ausblick. In HTTPResponse endet der Großbuchstabe „HTTP“ vor R, da auf R „esponse“ in Kleinbuchstaben folgt. Eine Regel, die mit dem Lauf und dem Groß-/Kleinschreibungspaar übereinstimmt, fügt dort eine Grenze ein: HTTP + Antwort, nicht H + T + T + P + Antwort. Wenn ein Name mit Großbuchstaben endet, gibt es kein Kleinbuchstabensuffix zur Kennzeichnung eines neuen Wortes und das Akronym bleibt zusammen. Das ist der Unterschied zwischen der Tokenisierung von Bezeichnern und dem Einfügen eines Trennzeichens vor jedem Großbuchstaben.
Ziffern und Randfälle – wo „2Json“ spaltet und warum kein Regelsatz jeden Styleguide erfüllt
Ziffernkonventionen bleiben unklar: version2Parser, HTTP2Json und IP6Address implizieren nicht alle die gleiche Wortgruppierung. ToolAcre gruppiert Ziffern mit dem vorhergehenden Token, bis ein nachfolgender Großbuchstabe die nächste Grenze auslöst. Ebenso kann ein Buchstabe mit gebietsschemaabhängiger Großschreibung erweitert werden oder sich anders verhalten als ASCII: Türkisches i mit Punkt/ohne Punkt und deutsches ß verdienen eine manuelle Überprüfung. Das Tool führt eine deterministische Transformation durch und erhebt nicht den Anspruch, die semantische Benennung einer Variablen zu verstehen.
Bearbeitetes Beispiel – Ausführen von parseHTTPResponse2Json und einer CSS-Klasse mit Bindestrich durch Schlangen-, Kebab-, Kamel- und Pascal-Schreibweise
Führen Sie parseHTTPResponse2Json über den tatsächlichen Fallkonverter aus. Es erzeugt parse_http_response2_json im Snake-Fall, parse-http-response2-json im Kebab-Fall, parseHttpResponse2Json im Camel-Fall und ParseHttpResponse2Json im Pascal-Fall. Für button--primary werden aufeinanderfolgende Trennzeichen in button_primary und button-primary zusammengefasst. Diese Ausgaben legen sowohl die erfolgreiche Akronymregel als auch die Wahl der Zifferngruppierung offen. Testen Sie Ihre Ziel-API, bevor Sie Suchen und Ersetzen in einer Codebasis verwenden.
Was dies nicht abdeckt – gebietsschemaspezifische Schreibweise wie das türkische gepunktete i, das einen eigenen Beitrag hat
Dieser Mechanismus implementiert nicht die Fallfaltung jeder Sprache, leitet nicht ab, dass ein Akronym für einen bestimmten Domänenbegriff steht, oder benennt Referenzen im gesamten Programm um. Die Konvertierung von Zeichenfolgen und Bezeichnern unterscheidet sich vom Refactoring von Quellcode mit Symbolerkennung. Das Tool kann nicht versprechen, dass ein Python-Dienst ein umbenanntes JSON-Feld akzeptiert. Anrufer sind möglicherweise immer noch auf die alte Schreibweise angewiesen. Führen Sie Ihre Schematests aus, nachdem Sie die Namen öffentlicher Felder geändert haben.
Das Fazit: Der Groß-/Kleinschreibungskonverter des Text Toolkits wendet diese drei Regeln an und zeigt das Ergebnis sofort an, sodass Sie es überprüfen können, bevor Sie es in den Code einfügen
Identifizieren Sie zunächst Token mithilfe von Trennzeichen, Übergängen und Akronymkanten. erst dann beitreten und ihnen beitreten. Das Text Toolkit macht diese Regeln mit sofortiger Ausgabe sichtbar und ermöglicht das Rückgängigmachen einer Konvertierung. Vergleichen Sie für einen Feldnamen mit vielen Akronymen die tatsächlichen Snake/Kebab-Ergebnisse, anstatt blind einen einfachen regulären Ausdruck mit Großbuchstaben auf ein gesamtes Repository anzuwenden.