Português (Brasil)

Ferramentas de texto e do dia a dia · Kit de ferramentas de texto

Como os conversores de caso dividem camelCase e siglas como parseHTTPResponse

· Como funciona

conversão de texto fluxo de trabalho do desenvolvedor Unicode

Identificador parseHTTPResponse dividido em parse, HTTP e tokens de resposta
Ilustração vetorial original ToolAcre

Explica as três regras de limite que um bom conversor de caso aplica — execuções de separadores, transições de baixo para cima e bordas de acrônimos — e por que parseHTTPResponse2Json é o teste que expõe os fracos.

parse_h_t_t_p_response e outras falhas — por que converter identificadores é mais difícil do que converter 'olá mundo'

Transformar “hello world” em hello_world é fácil; transformar parseHTTPResponse em parse_h_t_t_p_response é um sinal de que um algoritmo tratou cada letra maiúscula como uma palavra. Um desenvolvedor que renomeia identificadores JavaScript para um API Python precisa do oposto: primeiro identifique os tokens e depois aplique a convenção de adesão do destino. O mesmo primeiro passo deve alimentar a saída de cobra, kebab, camelo e Pascal, caso contrário, quatro botões discordam sobre onde as palavras começam.

Regra um: separadores – espaços, hífens, sublinhados e pontuação marcam um limite, não importa quantos sejam seguidos

Execuções de espaços, hífens, sublinhados e outros caracteres não alfabéticos/non-number já marcam limites. Trate uma execução como um separador: button--primary deve se tornar dois tokens, não um token vazio entre os hífens. O conversor de maiúsculas e minúsculas de ToolAcre se divide com uma expressão compatível com Unicode para letras e números, de forma que letras comuns não ASCII não sejam descartadas simplesmente por estarem fora de A – Z. A normalização de espaços em branco trata de convenções de nomenclatura, não de alterar automaticamente o arquivo de origem original.

Regra dois: transições de baixo para cima - uma letra minúscula ou dígito seguido por uma maiúscula inicia uma nova palavra

O padrão para uma letra minúscula ou dígito seguido por uma letra maiúscula insere um limite antes da maiúscula. Isso transforma parseResponse em parse + Response e permite que 2Json se torne 2 + Json. Esta regra por si só não separa a palavra anterior de seu dígito final: ToolAcre trata Response2 como um token antes de dividir o J maiúsculo. Se você deseja Response + 2 é uma decisão do guia de estilo, então inspecione os identificadores numéricos em vez de assumir que cada conversor faz a mesma escolha.

Regra três: bordas do acrônimo – uma sequência de letras maiúsculas seguida por um par de letras maiúsculas e minúsculas encerra o acrônimo antes da última letra maiúscula

Uma sigla precisa de mais uma visão antecipada. Em HTTPResponse, a execução maiúscula HTTP termina antes de R porque R é seguido por resposta minúscula. Uma regra que corresponde à execução e ao par maiúsculo-minúsculo insere um limite ali: HTTP + Resposta, não H + T + T + P + Resposta. Quando um nome termina em maiúsculas, não há sufixo minúsculo para marcar uma nova palavra e a sigla permanece junta. Essa é a diferença entre tokenizar identificadores e inserir um separador antes de cada letra maiúscula.

Dígitos e casos extremos - onde '2Json' se divide e por que nenhum conjunto de regras satisfaz todos os guias de estilo

As convenções de dígitos permanecem ambíguas: version2Parser, HTTP2Json e IP6Address nem todos implicam o mesmo agrupamento de palavras. ToolAcre agrupa dígitos com o token anterior até que uma letra maiúscula subsequente acione o próximo limite. Da mesma forma, uma letra com letras maiúsculas sensíveis ao local pode se expandir ou se comportar de maneira diferente de ASCII: turco pontilhado/dotless i e alemão ß merecem revisão manual. A ferramenta faz uma transformação determinística, não uma pretensão de compreender a nomenclatura semântica de uma variável.

Exemplo resolvido - executando parseHTTPResponse2Json e uma classe CSS hifenizada por meio de cobra, kebab, camelo e caso Pascal

Execute parseHTTPResponse2Json por meio do conversor de caso real. Produz parse_http_response2_json no caso da cobra, parse-http-response2-json no caso do kebab, parseHttpResponse2Json no caso do camelo e ParseHttpResponse2Json no caso Pascal. Para button--primary, os separadores consecutivos são reduzidos em button_primary e button-primary. Essas saídas expõem a regra de acrônimo bem-sucedida e a escolha de agrupamento de dígitos. Teste em seu destino API antes de usar a pesquisa e substituição em uma base de código.

O que isso não cobre - maiúsculas e minúsculas específicas de localidade, como o i pontilhado turco, que tem sua própria postagem

Este mecanismo não implementa a dobragem de maiúsculas e minúsculas de cada linguagem, infere que um acrônimo representa um termo de domínio específico ou renomeia referências em um programa. A conversão de strings e identificadores é diferente da refatoração do código-fonte com reconhecimento de símbolos. A ferramenta não pode prometer que um serviço Python aceita um campo JSON renomeado; os chamadores ainda podem depender da ortografia antiga. Execute seus testes de esquema após alterar os nomes dos campos públicos.

Conclusão: o conversor de case do Text Toolkit aplica essas três regras e mostra o resultado instantaneamente para que você possa verificá-lo antes de colar no código

Primeiro identifique os tokens usando separadores, transições e bordas de acrônimos; só então junte-se e case-os. O Text Toolkit torna essas regras visíveis com saída imediata e permite desfazer uma conversão. Para um nome de campo com muitos acrônimos, compare os resultados reais de snake/kebab em vez de aplicar cegamente uma expressão regular simples com letras maiúsculas a um repositório inteiro.