Converter tabs em espaços
Editores de código, colagens de terminal e fontes markdown costumam misturar caracteres de tabulação invisíveis com espaços, de modo que a indentação parece correta em uma ferramenta e se desloca em outra.
Executar grátis
Esta utilidade para converter tabs em espaços expande cada tab U+0009 para uma largura fixa de espaços ASCII—quatro por padrão, ou qualquer inteiro de um a dezesseis—sem alterar quebras de linha, letras nem espaços já existentes. Você recebe um JSON estável com o texto expandido, quantos tabs foram substituídos e comprimentos antes e depois para auditorias e fixtures. Cadeias vazias ou só com espaços em branco falham com entrada inválida para que pipelines não armazenem conversões em branco. Use ao padronizar repositórios com guias só de espaços, ao preparar trechos para navegadores que renderizam tabs de forma inconsistente ou ao limpar exportações antes de publicar. O widget gratuito do navegador roda inteiramente no seu dispositivo; a API pré-paga cobra US$ 0,002 por item bem-sucedido quando servidores e SDKs precisam do mesmo passo de expansão determinística em massa.
Como usar
Insira os dados no formulário acima. A ferramenta os verifica antes de calcular e mostra o resultado na mesma página.
Confira os dados
Use os rótulos e as unidades indicados em cada campo. Se algo estiver ausente ou fora do intervalo permitido, a página mostra o que corrigir.
Repita o cálculo ou automatize
Use a ferramenta web para verificações individuais e a API quando precisar da mesma capacidade em um fluxo automatizado.
Casos de uso
Obtenha uma resposta agora
Insira um conjunto de valores e veja o resultado sem montar uma planilha ou um script.
Compare cenários
Altere um valor por vez e repita o cálculo para entender o que muda o resultado.
Automatize tarefas repetidas
Use a API quando precisar executar o mesmo cálculo dentro do seu produto ou fluxo.
Perguntas frequentes
Como usar esta capacidade?
Preencha os campos acima e execute nesta página. O formulário destaca qualquer dado que precise de correção.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/tabs-to-spaces \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"function hi() {\n\treturn true;\n}"}'const res = await fetch("https://api.kit.forhosting.com/str/tabs-to-spaces", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "function hi() {\n\treturn true;\n}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/tabs-to-spaces",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "function hi() {\n\treturn true;\n}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/tabs-to-spaces", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"function hi() {\\n\\treturn true;\\n}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"function hi() {\n\treturn true;\n}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/tabs-to-spaces", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "function hi() {\n\treturn true;\n}"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.tabs_to_spaces",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |