@designliquido/delegua 0.66.0 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/package.json +1 -1
- package/estilizador/estilizador-delegua.d.ts +55 -0
- package/estilizador/estilizador-delegua.d.ts.map +1 -0
- package/estilizador/estilizador-delegua.js +228 -0
- package/estilizador/estilizador-delegua.js.map +1 -0
- package/estilizador/index.d.ts +3 -0
- package/estilizador/index.d.ts.map +1 -0
- package/estilizador/index.js +19 -0
- package/estilizador/index.js.map +1 -0
- package/estilizador/regras/convencao-nomenclatura.d.ts +79 -0
- package/estilizador/regras/convencao-nomenclatura.d.ts.map +1 -0
- package/estilizador/regras/convencao-nomenclatura.js +148 -0
- package/estilizador/regras/convencao-nomenclatura.js.map +1 -0
- package/estilizador/regras/fortalecer-tipos.d.ts +28 -0
- package/estilizador/regras/fortalecer-tipos.d.ts.map +1 -0
- package/estilizador/regras/fortalecer-tipos.js +84 -0
- package/estilizador/regras/fortalecer-tipos.js.map +1 -0
- package/estilizador/regras/index.d.ts +3 -0
- package/estilizador/regras/index.d.ts.map +1 -0
- package/estilizador/regras/index.js +19 -0
- package/estilizador/regras/index.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/interfaces/estilizador-comum-interface.d.ts +85 -0
- package/interfaces/estilizador-comum-interface.d.ts.map +1 -0
- package/interfaces/estilizador-comum-interface.js +3 -0
- package/interfaces/estilizador-comum-interface.js.map +1 -0
- package/interfaces/index.d.ts +1 -0
- package/interfaces/index.d.ts.map +1 -1
- package/interfaces/index.js +1 -0
- package/interfaces/index.js.map +1 -1
- package/interpretador/depuracao/comum.d.ts.map +1 -1
- package/interpretador/depuracao/comum.js +13 -9
- package/interpretador/depuracao/comum.js.map +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +860 -351
package/bin/package.json
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Declaracao } from '../declaracoes';
|
|
2
|
+
import { EstilizadorComumInterface, RegraEstilizacao, ViolacaoEstilo } from '../interfaces/estilizador-comum-interface';
|
|
3
|
+
/**
|
|
4
|
+
* Estilizador de código para Delégua.
|
|
5
|
+
* Aplica transformações no AST para enforcar convenções e melhorar qualidade do código.
|
|
6
|
+
*/
|
|
7
|
+
export declare class EstilizadorDelegua implements EstilizadorComumInterface {
|
|
8
|
+
regras: RegraEstilizacao[];
|
|
9
|
+
private violacoes;
|
|
10
|
+
private modoValidacao;
|
|
11
|
+
constructor(regras?: RegraEstilizacao[]);
|
|
12
|
+
adicionarRegra(regra: RegraEstilizacao): void;
|
|
13
|
+
removerRegra(nomeRegra: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Aplica as regras de estilização recursivamente em uma declaração.
|
|
16
|
+
* @param declaracao A declaração a ser estilizada.
|
|
17
|
+
* @returns A declaração estilizada.
|
|
18
|
+
*/
|
|
19
|
+
private estilizarDeclaracao;
|
|
20
|
+
/**
|
|
21
|
+
* Verifica se uma declaração foi modificada comparando propriedades relevantes.
|
|
22
|
+
*/
|
|
23
|
+
private declaracaoFoiModificada;
|
|
24
|
+
/**
|
|
25
|
+
* Clona uma declaração de forma superficial.
|
|
26
|
+
*/
|
|
27
|
+
private clonarDeclaracao;
|
|
28
|
+
/**
|
|
29
|
+
* Estiliza construtos dentro de uma declaração.
|
|
30
|
+
* @param declaracao A declaração cujos campos serão estilizados.
|
|
31
|
+
*/
|
|
32
|
+
private estilizarCamposDeclaracao;
|
|
33
|
+
/**
|
|
34
|
+
* Aplica as regras de estilização em um construto.
|
|
35
|
+
* @param construto O construto a ser estilizado.
|
|
36
|
+
* @returns O construto estilizado.
|
|
37
|
+
*/
|
|
38
|
+
private estilizarConstruto;
|
|
39
|
+
/**
|
|
40
|
+
* Estiliza campos dentro de um construto.
|
|
41
|
+
* @param construto O construto cujos campos serão estilizados.
|
|
42
|
+
*/
|
|
43
|
+
private estilizarCamposConstruto;
|
|
44
|
+
/**
|
|
45
|
+
* Verifica se um objeto é uma Declaração.
|
|
46
|
+
*/
|
|
47
|
+
private ehDeclaracao;
|
|
48
|
+
/**
|
|
49
|
+
* Verifica se um objeto é um Construto.
|
|
50
|
+
*/
|
|
51
|
+
private ehConstruto;
|
|
52
|
+
estilizar(declaracoes: Declaracao[]): Declaracao[];
|
|
53
|
+
validar(declaracoes: Declaracao[]): ViolacaoEstilo[];
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=estilizador-delegua.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estilizador-delegua.d.ts","sourceRoot":"","sources":["../../fontes/estilizador/estilizador-delegua.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EACH,yBAAyB,EACzB,gBAAgB,EAChB,cAAc,EACjB,MAAM,2CAA2C,CAAC;AAEnD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,yBAAyB;IAChE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAU;gBAEnB,MAAM,GAAE,gBAAgB,EAAO;IAM3C,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAI7C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA2BjC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA0BhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IAalD,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;CAevD"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EstilizadorDelegua = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Estilizador de código para Delégua.
|
|
6
|
+
* Aplica transformações no AST para enforcar convenções e melhorar qualidade do código.
|
|
7
|
+
*/
|
|
8
|
+
class EstilizadorDelegua {
|
|
9
|
+
constructor(regras = []) {
|
|
10
|
+
this.regras = regras;
|
|
11
|
+
this.violacoes = [];
|
|
12
|
+
this.modoValidacao = false;
|
|
13
|
+
}
|
|
14
|
+
adicionarRegra(regra) {
|
|
15
|
+
this.regras.push(regra);
|
|
16
|
+
}
|
|
17
|
+
removerRegra(nomeRegra) {
|
|
18
|
+
this.regras = this.regras.filter((r) => r.nome !== nomeRegra);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Aplica as regras de estilização recursivamente em uma declaração.
|
|
22
|
+
* @param declaracao A declaração a ser estilizada.
|
|
23
|
+
* @returns A declaração estilizada.
|
|
24
|
+
*/
|
|
25
|
+
estilizarDeclaracao(declaracao) {
|
|
26
|
+
let declaracaoAtual = declaracao;
|
|
27
|
+
// Aplica regras de declaração
|
|
28
|
+
for (const regra of this.regras) {
|
|
29
|
+
if (regra.aplicarEmDeclaracao) {
|
|
30
|
+
if (this.modoValidacao) {
|
|
31
|
+
// Em modo validação, clona a declaração antes de aplicar
|
|
32
|
+
const declaracaoClonada = this.clonarDeclaracao(declaracaoAtual);
|
|
33
|
+
const declaracaoModificada = regra.aplicarEmDeclaracao(declaracaoClonada);
|
|
34
|
+
// Verifica se houve mudança
|
|
35
|
+
if (this.declaracaoFoiModificada(declaracaoAtual, declaracaoModificada)) {
|
|
36
|
+
this.violacoes.push({
|
|
37
|
+
regra: regra.nome,
|
|
38
|
+
mensagem: `${regra.descricao}`,
|
|
39
|
+
linha: declaracao.linha,
|
|
40
|
+
hashArquivo: declaracao.hashArquivo,
|
|
41
|
+
severidade: 'aviso',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// Em modo normal, aplica a transformação
|
|
47
|
+
declaracaoAtual = regra.aplicarEmDeclaracao(declaracaoAtual);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Recursivamente estiliza construtos dentro da declaração
|
|
52
|
+
if (!this.modoValidacao) {
|
|
53
|
+
this.estilizarCamposDeclaracao(declaracaoAtual);
|
|
54
|
+
}
|
|
55
|
+
return declaracaoAtual;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Verifica se uma declaração foi modificada comparando propriedades relevantes.
|
|
59
|
+
*/
|
|
60
|
+
declaracaoFoiModificada(original, modificada) {
|
|
61
|
+
// Compara lexema do símbolo (para nomes)
|
|
62
|
+
if (original.simbolo && modificada.simbolo) {
|
|
63
|
+
if (original.simbolo.lexema !== modificada.simbolo.lexema) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Compara tipo
|
|
68
|
+
if (original.tipo !== modificada.tipo) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
// Compara tipoExplicito
|
|
72
|
+
if (original.tipoExplicito !== modificada.tipoExplicito) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Clona uma declaração de forma superficial.
|
|
79
|
+
*/
|
|
80
|
+
clonarDeclaracao(declaracao) {
|
|
81
|
+
// Cria um novo objeto com o mesmo protótipo
|
|
82
|
+
const clone = Object.create(Object.getPrototypeOf(declaracao));
|
|
83
|
+
// Copia todas as propriedades
|
|
84
|
+
for (const chave in declaracao) {
|
|
85
|
+
if (declaracao.hasOwnProperty(chave)) {
|
|
86
|
+
// Para objetos aninhados, clona também
|
|
87
|
+
if (typeof declaracao[chave] === 'object' && declaracao[chave] !== null) {
|
|
88
|
+
if (Array.isArray(declaracao[chave])) {
|
|
89
|
+
clone[chave] = [...declaracao[chave]];
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
clone[chave] = Object.assign({}, declaracao[chave]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
clone[chave] = declaracao[chave];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return clone;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Estiliza construtos dentro de uma declaração.
|
|
104
|
+
* @param declaracao A declaração cujos campos serão estilizados.
|
|
105
|
+
*/
|
|
106
|
+
estilizarCamposDeclaracao(declaracao) {
|
|
107
|
+
// Itera sobre as propriedades da declaração
|
|
108
|
+
for (const chave in declaracao) {
|
|
109
|
+
if (!declaracao.hasOwnProperty(chave))
|
|
110
|
+
continue;
|
|
111
|
+
const valor = declaracao[chave];
|
|
112
|
+
// Se é um construto, estiliza
|
|
113
|
+
if (valor && typeof valor === 'object' && 'aceitar' in valor) {
|
|
114
|
+
if (this.ehConstruto(valor)) {
|
|
115
|
+
declaracao[chave] = this.estilizarConstruto(valor);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Se é um array, estiliza cada elemento
|
|
119
|
+
if (Array.isArray(valor)) {
|
|
120
|
+
for (let i = 0; i < valor.length; i++) {
|
|
121
|
+
if (this.ehDeclaracao(valor[i])) {
|
|
122
|
+
valor[i] = this.estilizarDeclaracao(valor[i]);
|
|
123
|
+
}
|
|
124
|
+
else if (this.ehConstruto(valor[i])) {
|
|
125
|
+
valor[i] = this.estilizarConstruto(valor[i]);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Aplica as regras de estilização em um construto.
|
|
133
|
+
* @param construto O construto a ser estilizado.
|
|
134
|
+
* @returns O construto estilizado.
|
|
135
|
+
*/
|
|
136
|
+
estilizarConstruto(construto) {
|
|
137
|
+
let construtoAtual = construto;
|
|
138
|
+
// Aplica regras de construto
|
|
139
|
+
for (const regra of this.regras) {
|
|
140
|
+
if (regra.aplicarEmConstruto) {
|
|
141
|
+
if (this.modoValidacao) {
|
|
142
|
+
// Em modo validação, não modifica, apenas verifica
|
|
143
|
+
const construtoOriginal = JSON.stringify(construtoAtual);
|
|
144
|
+
const construtoModificado = regra.aplicarEmConstruto(construtoAtual);
|
|
145
|
+
if (JSON.stringify(construtoModificado) !== construtoOriginal) {
|
|
146
|
+
this.violacoes.push({
|
|
147
|
+
regra: regra.nome,
|
|
148
|
+
mensagem: `${regra.descricao} não foi aplicada`,
|
|
149
|
+
linha: construto.linha || 0,
|
|
150
|
+
hashArquivo: -1,
|
|
151
|
+
severidade: 'aviso',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
construtoAtual = regra.aplicarEmConstruto(construtoAtual);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Recursivamente estiliza campos do construto
|
|
161
|
+
this.estilizarCamposConstruto(construtoAtual);
|
|
162
|
+
return construtoAtual;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Estiliza campos dentro de um construto.
|
|
166
|
+
* @param construto O construto cujos campos serão estilizados.
|
|
167
|
+
*/
|
|
168
|
+
estilizarCamposConstruto(construto) {
|
|
169
|
+
for (const chave in construto) {
|
|
170
|
+
if (!construto.hasOwnProperty(chave))
|
|
171
|
+
continue;
|
|
172
|
+
const valor = construto[chave];
|
|
173
|
+
if (valor && typeof valor === 'object' && 'aceitar' in valor) {
|
|
174
|
+
if (this.ehConstruto(valor)) {
|
|
175
|
+
construto[chave] = this.estilizarConstruto(valor);
|
|
176
|
+
}
|
|
177
|
+
else if (this.ehDeclaracao(valor)) {
|
|
178
|
+
construto[chave] = this.estilizarDeclaracao(valor);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (Array.isArray(valor)) {
|
|
182
|
+
for (let i = 0; i < valor.length; i++) {
|
|
183
|
+
if (this.ehDeclaracao(valor[i])) {
|
|
184
|
+
valor[i] = this.estilizarDeclaracao(valor[i]);
|
|
185
|
+
}
|
|
186
|
+
else if (this.ehConstruto(valor[i])) {
|
|
187
|
+
valor[i] = this.estilizarConstruto(valor[i]);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Verifica se um objeto é uma Declaração.
|
|
195
|
+
*/
|
|
196
|
+
ehDeclaracao(obj) {
|
|
197
|
+
return obj && typeof obj === 'object' && 'paraTexto' in obj && 'linha' in obj && 'hashArquivo' in obj;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Verifica se um objeto é um Construto.
|
|
201
|
+
*/
|
|
202
|
+
ehConstruto(obj) {
|
|
203
|
+
return obj && typeof obj === 'object' && 'aceitar' in obj && !('paraTexto' in obj);
|
|
204
|
+
}
|
|
205
|
+
estilizar(declaracoes) {
|
|
206
|
+
this.modoValidacao = false;
|
|
207
|
+
this.violacoes = [];
|
|
208
|
+
const declaracoesEstilizadas = [];
|
|
209
|
+
for (const declaracao of declaracoes) {
|
|
210
|
+
declaracoesEstilizadas.push(this.estilizarDeclaracao(declaracao));
|
|
211
|
+
}
|
|
212
|
+
return declaracoesEstilizadas;
|
|
213
|
+
}
|
|
214
|
+
validar(declaracoes) {
|
|
215
|
+
this.modoValidacao = true;
|
|
216
|
+
this.violacoes = [];
|
|
217
|
+
// Aplica estilização em modo validação (não modifica, apenas detecta violações)
|
|
218
|
+
for (const declaracao of declaracoes) {
|
|
219
|
+
this.estilizarDeclaracao(declaracao);
|
|
220
|
+
}
|
|
221
|
+
const violacoesEncontradas = [...this.violacoes];
|
|
222
|
+
this.violacoes = [];
|
|
223
|
+
this.modoValidacao = false;
|
|
224
|
+
return violacoesEncontradas;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.EstilizadorDelegua = EstilizadorDelegua;
|
|
228
|
+
//# sourceMappingURL=estilizador-delegua.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estilizador-delegua.js","sourceRoot":"","sources":["../../fontes/estilizador/estilizador-delegua.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/estilizador/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./estilizador-delegua"), exports);
|
|
18
|
+
__exportStar(require("./regras"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/estilizador/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2CAAyB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Declaracao } from '../../declaracoes';
|
|
2
|
+
import { RegraEstilizacao } from '../../interfaces/estilizador-comum-interface';
|
|
3
|
+
/**
|
|
4
|
+
* Opções de convenção de nomenclatura.
|
|
5
|
+
*/
|
|
6
|
+
export interface OpcoesConvencaoNomenclatura {
|
|
7
|
+
/**
|
|
8
|
+
* Convenção para variáveis.
|
|
9
|
+
* - 'caixaCamelo': primeiraPalavraMinuscula
|
|
10
|
+
* - 'caixa_cobra': primeira_palavra_minuscula
|
|
11
|
+
* - 'CaixaPascal': PrimeiraPalavraMaiuscula
|
|
12
|
+
*/
|
|
13
|
+
variavel?: 'caixaCamelo' | 'caixa_cobra' | 'CaixaPascal';
|
|
14
|
+
/**
|
|
15
|
+
* Convenção para constantes.
|
|
16
|
+
* - 'CAIXA_ALTA': TODAS_MAIUSCULAS
|
|
17
|
+
* - 'caixaCamelo': primeiraPalavraMinuscula
|
|
18
|
+
*/
|
|
19
|
+
constante?: 'CAIXA_ALTA' | 'caixaCamelo';
|
|
20
|
+
/**
|
|
21
|
+
* Convenção para funções.
|
|
22
|
+
* - 'caixaCamelo': primeiraPalavraMinuscula
|
|
23
|
+
* - 'caixa_cobra': primeira_palavra_minuscula
|
|
24
|
+
* - 'CaixaPascal': PrimeiraPalavraMaiuscula
|
|
25
|
+
*/
|
|
26
|
+
funcao?: 'caixaCamelo' | 'caixa_cobra' | 'CaixaPascal';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Regra que enforça convenções de nomenclatura.
|
|
30
|
+
*
|
|
31
|
+
* Exemplos:
|
|
32
|
+
* - Variáveis em caixaCamelo: `var meuNome` (não `var MeuNome` ou `var meu_nome`)
|
|
33
|
+
* - Constantes em CAIXA_ALTA: `constante PI_VALOR` (não `constante piValor`)
|
|
34
|
+
* - Funções em caixaCamelo: `função calcularTotal()` (não `função CalcularTotal()`)
|
|
35
|
+
*/
|
|
36
|
+
export declare class RegraConvencaoNomenclatura implements RegraEstilizacao {
|
|
37
|
+
nome: string;
|
|
38
|
+
descricao: string;
|
|
39
|
+
private opcoes;
|
|
40
|
+
constructor(opcoes?: OpcoesConvencaoNomenclatura);
|
|
41
|
+
aplicarEmDeclaracao(declaracao: Declaracao): Declaracao;
|
|
42
|
+
/**
|
|
43
|
+
* Aplica convenção em declaração Var.
|
|
44
|
+
*/
|
|
45
|
+
private aplicarConvencaoVar;
|
|
46
|
+
/**
|
|
47
|
+
* Aplica convenção em declaração Const.
|
|
48
|
+
*/
|
|
49
|
+
private aplicarConvencaoConst;
|
|
50
|
+
/**
|
|
51
|
+
* Aplica convenção em declaração de Função.
|
|
52
|
+
*/
|
|
53
|
+
private aplicarConvencaoFuncao;
|
|
54
|
+
/**
|
|
55
|
+
* Converte um nome para a convenção especificada.
|
|
56
|
+
*/
|
|
57
|
+
private converterNome;
|
|
58
|
+
/**
|
|
59
|
+
* Converte nome para camelCase.
|
|
60
|
+
*/
|
|
61
|
+
private paraCamelCase;
|
|
62
|
+
/**
|
|
63
|
+
* Converte nome para snake_case.
|
|
64
|
+
*/
|
|
65
|
+
private paraSnakeCase;
|
|
66
|
+
/**
|
|
67
|
+
* Converte nome para PascalCase.
|
|
68
|
+
*/
|
|
69
|
+
private paraPascalCase;
|
|
70
|
+
/**
|
|
71
|
+
* Converte nome para UPPER_CASE.
|
|
72
|
+
*/
|
|
73
|
+
private paraUpperCase;
|
|
74
|
+
/**
|
|
75
|
+
* Valida se um nome está na convenção especificada.
|
|
76
|
+
*/
|
|
77
|
+
validarNome(nome: string, convencao: string): boolean;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=convencao-nomenclatura.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convencao-nomenclatura.d.ts","sourceRoot":"","sources":["../../../fontes/estilizador/regras/convencao-nomenclatura.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;IAEzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;CAC1D;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAC/D,IAAI,SAA4B;IAChC,SAAS,SAA6E;IAEtF,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,GAAE,2BAAgC;IAQpD,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAmBvD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAGxD"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RegraConvencaoNomenclatura = void 0;
|
|
4
|
+
const declaracoes_1 = require("../../declaracoes");
|
|
5
|
+
/**
|
|
6
|
+
* Regra que enforça convenções de nomenclatura.
|
|
7
|
+
*
|
|
8
|
+
* Exemplos:
|
|
9
|
+
* - Variáveis em caixaCamelo: `var meuNome` (não `var MeuNome` ou `var meu_nome`)
|
|
10
|
+
* - Constantes em CAIXA_ALTA: `constante PI_VALOR` (não `constante piValor`)
|
|
11
|
+
* - Funções em caixaCamelo: `função calcularTotal()` (não `função CalcularTotal()`)
|
|
12
|
+
*/
|
|
13
|
+
class RegraConvencaoNomenclatura {
|
|
14
|
+
constructor(opcoes = {}) {
|
|
15
|
+
this.nome = 'convencao-nomenclatura';
|
|
16
|
+
this.descricao = 'Enforça convenções de nomenclatura para variáveis, constantes e funções';
|
|
17
|
+
this.opcoes = {
|
|
18
|
+
variavel: opcoes.variavel || 'caixaCamelo',
|
|
19
|
+
constante: opcoes.constante || 'CAIXA_ALTA',
|
|
20
|
+
funcao: opcoes.funcao || 'caixaCamelo',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
aplicarEmDeclaracao(declaracao) {
|
|
24
|
+
// Valida/transforma nomes de variáveis
|
|
25
|
+
if (declaracao instanceof declaracoes_1.Var) {
|
|
26
|
+
return this.aplicarConvencaoVar(declaracao);
|
|
27
|
+
}
|
|
28
|
+
// Valida/transforma nomes de constantes
|
|
29
|
+
if (declaracao instanceof declaracoes_1.Const) {
|
|
30
|
+
return this.aplicarConvencaoConst(declaracao);
|
|
31
|
+
}
|
|
32
|
+
// Valida/transforma nomes de funções
|
|
33
|
+
if (declaracao instanceof declaracoes_1.FuncaoDeclaracao) {
|
|
34
|
+
return this.aplicarConvencaoFuncao(declaracao);
|
|
35
|
+
}
|
|
36
|
+
return declaracao;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Aplica convenção em declaração Var.
|
|
40
|
+
*/
|
|
41
|
+
aplicarConvencaoVar(declaracao) {
|
|
42
|
+
if (!this.opcoes.variavel)
|
|
43
|
+
return declaracao;
|
|
44
|
+
const nomeAtual = declaracao.simbolo.lexema;
|
|
45
|
+
const nomeConvertido = this.converterNome(nomeAtual, this.opcoes.variavel);
|
|
46
|
+
if (nomeAtual !== nomeConvertido) {
|
|
47
|
+
declaracao.simbolo.lexema = nomeConvertido;
|
|
48
|
+
}
|
|
49
|
+
return declaracao;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Aplica convenção em declaração Const.
|
|
53
|
+
*/
|
|
54
|
+
aplicarConvencaoConst(declaracao) {
|
|
55
|
+
if (!this.opcoes.constante)
|
|
56
|
+
return declaracao;
|
|
57
|
+
const nomeAtual = declaracao.simbolo.lexema;
|
|
58
|
+
const nomeConvertido = this.converterNome(nomeAtual, this.opcoes.constante);
|
|
59
|
+
if (nomeAtual !== nomeConvertido) {
|
|
60
|
+
declaracao.simbolo.lexema = nomeConvertido;
|
|
61
|
+
}
|
|
62
|
+
return declaracao;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Aplica convenção em declaração de Função.
|
|
66
|
+
*/
|
|
67
|
+
aplicarConvencaoFuncao(declaracao) {
|
|
68
|
+
if (!this.opcoes.funcao)
|
|
69
|
+
return declaracao;
|
|
70
|
+
const nomeAtual = declaracao.simbolo.lexema;
|
|
71
|
+
const nomeConvertido = this.converterNome(nomeAtual, this.opcoes.funcao);
|
|
72
|
+
if (nomeAtual !== nomeConvertido) {
|
|
73
|
+
declaracao.simbolo.lexema = nomeConvertido;
|
|
74
|
+
}
|
|
75
|
+
return declaracao;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Converte um nome para a convenção especificada.
|
|
79
|
+
*/
|
|
80
|
+
converterNome(nome, convencao) {
|
|
81
|
+
switch (convencao) {
|
|
82
|
+
case 'caixaCamelo':
|
|
83
|
+
return this.paraCamelCase(nome);
|
|
84
|
+
case 'caixa_cobra':
|
|
85
|
+
return this.paraSnakeCase(nome);
|
|
86
|
+
case 'CaixaPascal':
|
|
87
|
+
return this.paraPascalCase(nome);
|
|
88
|
+
case 'CAIXA_ALTA':
|
|
89
|
+
return this.paraUpperCase(nome);
|
|
90
|
+
default:
|
|
91
|
+
return nome;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Converte nome para camelCase.
|
|
96
|
+
*/
|
|
97
|
+
paraCamelCase(nome) {
|
|
98
|
+
// Se tem underscores, divide por eles
|
|
99
|
+
if (nome.includes('_')) {
|
|
100
|
+
const palavras = nome.split(/[_\s]+/);
|
|
101
|
+
return (palavras[0].toLowerCase() +
|
|
102
|
+
palavras
|
|
103
|
+
.slice(1)
|
|
104
|
+
.map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())
|
|
105
|
+
.join(''));
|
|
106
|
+
}
|
|
107
|
+
// Se está em PascalCase, converte para camelCase
|
|
108
|
+
if (nome.charAt(0) === nome.charAt(0).toUpperCase()) {
|
|
109
|
+
return nome.charAt(0).toLowerCase() + nome.slice(1);
|
|
110
|
+
}
|
|
111
|
+
// Já está em camelCase
|
|
112
|
+
return nome;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Converte nome para snake_case.
|
|
116
|
+
*/
|
|
117
|
+
paraSnakeCase(nome) {
|
|
118
|
+
return (nome
|
|
119
|
+
// Adiciona underscore antes de letras maiúsculas
|
|
120
|
+
.replace(/([A-Z])/g, '_$1')
|
|
121
|
+
.toLowerCase()
|
|
122
|
+
// Remove underscores duplicados
|
|
123
|
+
.replace(/__+/g, '_')
|
|
124
|
+
// Remove underscore inicial se houver
|
|
125
|
+
.replace(/^_/, ''));
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Converte nome para PascalCase.
|
|
129
|
+
*/
|
|
130
|
+
paraPascalCase(nome) {
|
|
131
|
+
const palavras = nome.split(/[_\s]+/);
|
|
132
|
+
return palavras.map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase()).join('');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Converte nome para UPPER_CASE.
|
|
136
|
+
*/
|
|
137
|
+
paraUpperCase(nome) {
|
|
138
|
+
return this.paraSnakeCase(nome).toUpperCase();
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Valida se um nome está na convenção especificada.
|
|
142
|
+
*/
|
|
143
|
+
validarNome(nome, convencao) {
|
|
144
|
+
return nome === this.converterNome(nome, convencao);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.RegraConvencaoNomenclatura = RegraConvencaoNomenclatura;
|
|
148
|
+
//# sourceMappingURL=convencao-nomenclatura.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convencao-nomenclatura.js","sourceRoot":"","sources":["../../../fontes/estilizador/regras/convencao-nomenclatura.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Declaracao } from '../../declaracoes';
|
|
2
|
+
import { RegraEstilizacao } from '../../interfaces/estilizador-comum-interface';
|
|
3
|
+
/**
|
|
4
|
+
* Regra que fortalece tipos, convertendo `qualquer` para tipos inferidos.
|
|
5
|
+
*
|
|
6
|
+
* Exemplos:
|
|
7
|
+
* - `var x = 5` com tipo `qualquer` → `var x: número = 5`
|
|
8
|
+
* - `var nomes = []` com tipo `qualquer` → `var nomes: vetor = []`
|
|
9
|
+
* - `constante PI = 3.14` com tipo `qualquer` → `constante PI: número = 3.14`
|
|
10
|
+
*/
|
|
11
|
+
export declare class RegraFortalecerTipos implements RegraEstilizacao {
|
|
12
|
+
nome: string;
|
|
13
|
+
descricao: string;
|
|
14
|
+
aplicarEmDeclaracao(declaracao: Declaracao): Declaracao;
|
|
15
|
+
/**
|
|
16
|
+
* Fortalece o tipo de uma declaração Var.
|
|
17
|
+
*/
|
|
18
|
+
private fortalecerTipoVar;
|
|
19
|
+
/**
|
|
20
|
+
* Fortalece o tipo de uma declaração Const.
|
|
21
|
+
*/
|
|
22
|
+
private fortalecerTipoConst;
|
|
23
|
+
/**
|
|
24
|
+
* Infere o tipo de um construto.
|
|
25
|
+
*/
|
|
26
|
+
private inferirTipoDeConstruto;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=fortalecer-tipos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fortalecer-tipos.d.ts","sourceRoot":"","sources":["../../../fontes/estilizador/regras/fortalecer-tipos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAGhF;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IACzD,IAAI,SAAsB;IAC1B,SAAS,SAAoE;IAE7E,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAcvD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAcjC"}
|