Español

Texto y herramientas cotidianas · Text Toolkit

Cómo los convertidores de casos dividen camelCase y acrónimos como parseHTTPResponse

· Cómo funciona

conversión de texto flujo de trabajo del desarrollador Unicode

Identificador parseHTTPResponse dividido en tokens de análisis, HTTP y respuesta
Ilustración original del vector ToolAcre

Explica las tres reglas de límites que aplica un buen convertidor de casos (ejecuciones de separador, transiciones de inferior a superior y bordes de acrónimos) y por qué parseHTTPResponse2Json es la prueba que expone los débiles.

parse_h_t_t_p_response y otros fallos: por qué convertir identificadores es más difícil que convertir 'hola mundo'

Convertir "hola mundo" en hola_mundo es fácil; convertir parseHTTPResponse en parse_h_t_t_p_response es una señal de que un algoritmo trató cada mayúscula como una palabra. Un desarrollador que cambia el nombre de los identificadores de JavaScript para una API de Python necesita lo contrario: identificar los tokens primero y luego aplicar la convención de unión del destino. El mismo primer paso debería alimentar la salida de serpiente, kebab, camello y Pascal; de lo contrario, cuatro botones no están de acuerdo sobre dónde comienzan las palabras.

Regla uno: líneas de separación: los espacios, los guiones, los guiones bajos y la puntuación marcan un límite, por muchos que haya en una fila.

Los espacios, guiones, guiones bajos y otros caracteres que no son letras ni números ya marcan los límites. Trate una ejecución como un separador: botón: primario debe convertirse en dos tokens, no en un token vacío entre guiones. El convertidor de mayúsculas y minúsculas de ToolAcre se divide con una expresión compatible con Unicode para letras y números, por lo que las letras comunes que no son ASCII no se desechan simplemente por estar fuera de la A a la Z. La normalización de espacios en blanco se trata de convenciones de nomenclatura, no de cambiar el archivo fuente original automáticamente.

Regla dos: transiciones de inferior a superior: una letra minúscula o un dígito seguido de una mayúscula inicia una nueva palabra

El patrón para una letra minúscula o un dígito seguido de una letra mayúscula inserta un límite antes de la mayúscula. Eso convierte parseResponse en parse + Response y permite que 2Json se convierta en 2 + Json. Esta regla por sí sola no separa la palabra anterior de su dígito final: ToolAcre trata la Respuesta2 como un token antes de dividir la J mayúscula. Si desea Respuesta + 2 es una decisión de la guía de estilo, así que inspeccione los identificadores numéricos en lugar de asumir que todos los convertidores toman la misma decisión.

Regla tres: bordes de acrónimo: una secuencia de mayúsculas seguida de un par de mayúsculas y luego minúsculas finaliza el acrónimo antes de la última mayúscula.

Un acrónimo necesita una mirada más hacia el futuro. En HTTPResponse, el HTTP en mayúscula termina antes de R porque a R le sigue una respuesta en minúscula. Una regla que coincide con la ejecución y el par de mayúsculas y minúsculas inserta un límite allí: HTTP + Respuesta, no H + T + T + P + Respuesta. Cuando un nombre termina en mayúsculas, no hay sufijo en minúscula para marcar una nueva palabra y el acrónimo permanece unido. Esa es la diferencia entre tokenizar identificadores e insertar un separador antes de cada mayúscula.

Dígitos y casos extremos: dónde se divide '2Json' y por qué ningún conjunto de reglas satisface todas las guías de estilo

Las convenciones de dígitos siguen siendo ambiguas: version2Parser, HTTP2Json y IP6Address no implican todos la misma agrupación de palabras. ToolAcre agrupa dígitos con el token anterior hasta que una capital posterior activa el siguiente límite. Del mismo modo, una letra con mayúsculas sensibles a la configuración regional puede expandirse o comportarse de manera diferente que ASCII: la i turca con puntos o sin puntos y la ß alemana merecen una revisión manual. La herramienta realiza una transformación determinista, no pretende comprender la denominación semántica de una variable.

Ejemplo resuelto: ejecutar parseHTTPResponse2Json y una clase CSS con guiones en el caso de serpiente, kebab, camello y Pascal

Ejecute parseHTTPResponse2Json a través del convertidor de casos real. Produce parse_http_response2_json en caso de serpiente, parse-http-response2-json en caso de kebab, parseHttpResponse2Json en caso de camello y ParseHttpResponse2Json en caso de Pascal. Para botón--primario, los separadores consecutivos se colapsan en botón_primario y botón-primario. Estos resultados exponen tanto la regla de acrónimo exitosa como la elección de agrupación de dígitos. Pruebe con su API de destino antes de utilizar la función de búsqueda y reemplazo en una base de código.

Lo que esto no cubre: mayúsculas específicas de la localidad, como la i punteada turca, que tiene su propia publicación.

Este mecanismo no implementa la combinación de mayúsculas y minúsculas de todos los idiomas, ni infiere que un acrónimo representa un término de dominio particular, ni cambia el nombre de las referencias en todo un programa. La conversión de cadenas e identificadores es diferente de la refactorización del código fuente con reconocimiento de símbolos. La herramienta no puede prometer que un servicio Python acepte un campo JSON renombrado; Es posible que las personas que llaman aún dependan de la ortografía anterior. Ejecute sus pruebas de esquema después de cambiar los nombres de los campos públicos.

La conclusión: el convertidor de casos de Text Toolkit aplica estas tres reglas y muestra el resultado al instante para que puedas comprobarlo antes de pegarlo en el código.

Primero identifique los tokens utilizando separadores, transiciones y bordes de acrónimos; solo entonces únete y estudialos. Text Toolkit hace que esas reglas sean visibles con resultados inmediatos y le permite deshacer una conversión. Para un nombre de campo con muchas siglas, compare los resultados reales de serpiente/kebab en lugar de aplicar ciegamente una simple expresión regular con letra mayúscula a un repositorio completo.