-
-
Notifications
You must be signed in to change notification settings - Fork 154
/
defintions.go
107 lines (94 loc) · 2.12 KB
/
defintions.go
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package check
import "github.com/ValeLint/vale/core"
// A Check implements a single rule.
type Check struct {
Extends string
Level int
Rule ruleFn
Scope core.Selector
}
// AllChecks holds all of our individual checks. The keys are in the form
// "styleName.checkName".
var AllChecks = map[string]Check{}
// Definition holds the common attributes of rule definitions.
type Definition struct {
Description string
Extends string
Level string
Link string
Message string
Name string
Scope string
}
// Existence checks for the present of Tokens.
type Existence struct {
Definition `mapstructure:",squash"`
Ignorecase bool
Nonword bool
Raw []string
Tokens []string
}
// Substitution switches the values of Swap for its keys.
type Substitution struct {
Definition `mapstructure:",squash"`
Ignorecase bool
Nonword bool
Swap map[string]string
}
// Occurrence counts the number of times Token appears.
type Occurrence struct {
Definition `mapstructure:",squash"`
Max int
Token string
}
// Repetition looks for repeated uses of Tokens.
type Repetition struct {
Definition `mapstructure:",squash"`
Max int
Ignorecase bool
Tokens []string
}
// Consistency ensures that the keys and values of Either don't both exist.
type Consistency struct {
Definition `mapstructure:",squash"`
Nonword bool
Ignorecase bool
Either map[string]string
}
// Conditional ensures that the present of First ensures the present of Second.
type Conditional struct {
Definition `mapstructure:",squash"`
Ignorecase bool
First string
Second string
Exceptions []string
}
// Script runs Exe with Runtime.
type Script struct {
Definition `mapstructure:",squash"`
Exe string
Runtime string
}
var defaultChecks = []string{
"Annotations",
"ComplexWords",
"Editorializing",
"GenderBias",
"Hedging",
"Litotes",
"PassiveVoice",
"Redundancy",
"Repetition",
"Uncomparables",
"Wordiness",
}
var extensionPoints = []string{
"capitalization",
"conditional",
"consistency",
"existence",
"occurrence",
"repetition",
"script",
"substitution",
}