UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

85 lines 2.58 kB
import { Declaracao } from '../declaracoes/declaracao'; import { Construto } from '../construtos'; /** * Define uma regra de transformação/estilização de código. */ export interface RegraEstilizacao { /** * Nome da regra para identificação e logs. */ nome: string; /** * Descrição do que a regra faz. */ descricao: string; /** * Aplica a regra em uma declaração. * @param declaracao A declaração a ser verificada/transformada. * @returns A declaração (modificada ou não). */ aplicarEmDeclaracao?(declaracao: Declaracao): Declaracao; /** * Aplica a regra em um construto. * @param construto O construto a ser verificado/transformado. * @returns O construto (modificado ou não). */ aplicarEmConstruto?(construto: Construto): Construto; } /** * Interface base para estilizadores de código. * Um estilizador aplica transformações no AST para enforcar convenções e melhorar a qualidade do código. */ export interface EstilizadorComumInterface { /** * Regras de estilização ativas. */ regras: RegraEstilizacao[]; /** * Adiciona uma regra de estilização. * @param regra A regra a ser adicionada. */ adicionarRegra(regra: RegraEstilizacao): void; /** * Remove uma regra de estilização pelo nome. * @param nomeRegra O nome da regra a ser removida. */ removerRegra(nomeRegra: string): void; /** * Aplica as regras de estilização em um conjunto de declarações. * @param declaracoes As declarações a serem estilizadas. * @returns As declarações estilizadas (modificadas ou não). */ estilizar(declaracoes: Declaracao[]): Declaracao[]; /** * Valida se o código atende todas as regras sem aplicar transformações. * @param declaracoes As declarações a serem validadas. * @returns Array de violações encontradas. */ validar(declaracoes: Declaracao[]): ViolacaoEstilo[]; } /** * Representa uma violação de estilo encontrada. */ export interface ViolacaoEstilo { /** * Nome da regra violada. */ regra: string; /** * Mensagem descritiva da violação. */ mensagem: string; /** * Linha onde a violação ocorreu. */ linha: number; /** * Hash do arquivo onde a violação ocorreu. */ hashArquivo: number; /** * Severidade da violação. */ severidade: 'erro' | 'aviso' | 'informacao'; } //# sourceMappingURL=estilizador-comum-interface.d.ts.map