Skip to content

Protheus plugin v2.14.0 — regras da EngPro no hook de lint (kit 2.6.0)

Choose a tag to compare

@tbc-joaovitor tbc-joaovitor released this 14 Jul 13:18
· 20 commits to main since this release
779e31e

O que muda

As 49 regras oficiais do SonarQube EngPro TOTVS eram referência de leitura do /protheus:reviewer. Agora a parte mecânica delas vira gate na hora da gravação.

Novo hook sonar-lint.cjs (PostToolUse)

~30 das 49 regras aplicadas a cada Write/Edit:

  • BUG e VULNERABILIDADE bloqueiam (exit 2) — com o código da regra e como corrigir.
  • CODE SMELL avisa sem travar o dev no meio da escrita.
  • Cobre CA2022 (StaticCall), CA2023 (PTInternal), CA2000–CA2013 (dicionário por workarea), CA1000 (driver ISAM), CA1002 (interface em transação), CA1003 (GetMV em loop), CA2050 (SQL injection), CA4000 (IIF), CA3001 (include maiúsculo) e mais.

Roda em qualquer máquina

Não depende do advpls/TDS-LS: é análise de texto, em milissegundos, sem AppServer e sem includes.

Supressão exige justificativa

// sonar:ignore CA1000 <motivo>. Sem motivo, não vale — e o reviewer continua reportando.

Qualidade

  • 40 testes do motor (incluindo casos de falso positivo: regra citada em comentário ou string não pode acusar) + 8 do contrato do hook.
  • CI criado: o repo tinha testes que nada executava. Agora a suíte roda em todo push e PR — e foi ela que expôs que o sync-sonar-rules.cjs nunca havia sido versionado (o .gitignore engolia /scripts/).