-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheckstyle.xml
More file actions
64 lines (57 loc) · 3.59 KB
/
Copy pathcheckstyle.xml
File metadata and controls
64 lines (57 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<!-- Regra geral: exigir codificação UTF-8 -->
<property name="charset" value="UTF-8"/>
<!-- Agrupamento de regras que inspecionam a árvore do código -->
<module name="TreeWalker">
<!-- Capítulo 2 (Nomes Significativos): Variáveis locais devem ter nomes significativos em camelCase, com no mínimo 3 caracteres para garantir clareza -->
<module name="LocalVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]{2,}$"/>
</module>
<!-- Capítulo 2 (Nomes Significativos): Variáveis de instância devem usar camelCase, começando com letra minúscula para facilitar a leitura e manter consistência -->
<module name="MemberName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<!-- Capítulo 2 (Nomes Significativos): Nomes de tipos (classes, interfaces, enumerações) devem usar PascalCase + Bloqueia nomes que começam com I maiúsculo seguido de letra maiúscula -->
<module name="TypeName">
<property name="format" value="^(?!I[A-Z])[A-Z][a-zA-Z0-9]*$"/>
</module>
<!-- Capítulo 2 (Nomes Significativos): Métodos devem começar com verbo seguido de maiúscula (obrigatório) -->
<module name="MethodName">
<property name="format" value="^(get|set|find|map|calculate|process|validate|load|save|update|delete|send|fetch|create|handle|is|can|main|connect|execute|configure|info|servers|buildDescription)([A-Z][a-zA-Z0-9]*)?$"/>
</module>
<!-- Capítulo 2 (Nomes Significativos): Métodos devem começar com letra minúscula (qualquer nome) -->
<module name="MethodName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
</module>
<!-- Capítulo 2 (Nomes Significativos): Constantes (static final) devem ser nomeadas em UPPER_CASE com palavras separadas por underscores, para destacar seu valor imutável e facilitar identificação -->
<module name="ConstantName">
<property name="format" value="^[A-Z][A-Z0-9_]*$"/>
</module>
<!-- Capítulo 3 (Funções): Métodos devem ser pequenos, no máximo 20 linhas. -->
<module name="MethodLength">
<property name="max" value="20"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
<!-- Capítulo 3 (Funções): Métodos devem ter no máximo 3 parâmetros -->
<module name="ParameterNumber">
<property name="max" value="3"/>
<property name="tokens" value="METHOD_DEF"/>
</module>
<!-- Capítulo 3 (Funções): Aninhamento deve ter no máximo 3 níveis -->
<module name="NestedIfDepth">
<property name="max" value="2"/>
</module>
<!-- Capítulo 3 (Funções): Métodos void devem ter no máximo 3 return + Métodos com retorno devem ter no máximo 3 return -->
<module name="ReturnCount">
<property name="max" value="4"/>
<property name="maxForVoid" value="2"/>
</module>
<!-- Capítulo 3 (Funções): Expressão booleana muito complexa. Limite a 2 termos -->
<module name="BooleanExpressionComplexity">
<property name="max" value="1"/>
</module>
</module>
</module>