Lint
dataforge lint: as 13 regras de estilo e higiene.
O que ele faz#
O lint encontra o que compila mas provavelmente não é o que você quis dizer. Não repete o que o `check` já reporta: aqui moram questões de higiene e estilo.
bash
dataforge lint src/
dataforge lint . --strict # avisos derrubam o buildAs regras#
| Código | Encontra |
|---|---|
unused-variable | variável atribuída e nunca lida |
unused-import | módulo importado com adopt e nunca usado |
unused-parameter | parâmetro de ação nunca lido no corpo |
shadowed-name | nome local que esconde um de fora sem shadow |
empty-block | bloco cujo corpo não faz nada |
magic-number | número solto repetido 5 vezes ou mais |
long-action | ação com mais de 60 linhas |
deep-nesting | aninhamento de 5 níveis ou mais |
naming-convention | blueprint fora de PascalCase, ação fora de snake_case |
redundant-else | otherwise depois de um ramo que sempre retorna |
double-negation | not not x |
comparison-to-bool | x is yes / x is no |
todo-comment | comentário TODO/FIXME (informativo) |
A saída#
text
app.df:2:1: aviso: Module 'Arcane.Text' is imported but never used
sugestão: Remove the 'adopt' line
app.df:4:1: aviso: Action 'CalcularTotal' does not follow snake_case
sugestão: Rename it to 'calcular_total'
app.df:7:5: aviso: Variable 'naoUsada' is assigned but never read
sugestão: Remove it, or rename it to '_naoUsada' to say it is on purposeCalibragem#
As regras foram ajustadas contra os 225 arquivos do repositório até restarem apenas avisos legítimos. Duas exceções foram codificadas explicitamente:
- Métodos especiais (
toString,setup,add,mul…) não seguem snake_case porque o runtime os chama pelo nome — a grafia é parte do contrato. - Assinaturas de trait (ações sem corpo) não disparam
empty-blocknemunused-parameter.
Silenciar de propósito#
Um _ no início do nome diz "não usar isto é intencional":
dataforge
cycle _ in range(0, 3): # o valor não interessa
fazer_algo()
action f(dados, _contexto): # parâmetro exigido pela interface
yield processar(dados)Configurar no projeto#
forge.toml
[lint]
strict = false
ignore = ["magic-number", "todo-comment"]