MCPcopy Create free account
hub / github.com/vale-cli/vale / NewConditional

Function NewConditional

internal/check/conditional.go:41–78  ·  view source on GitHub ↗

NewConditional creates a new `conditional`-based rule.

(cfg *core.Config, generic baseCheck, path string)

Source from the content-addressed store, hash-verified

39
40// NewConditional creates a new `conditional`-based rule.
41func NewConditional(cfg *core.Config, generic baseCheck, path string) (Conditional, error) {
42 var expression []*regexp2.Regexp
43 rule := Conditional{Vocab: true}
44
45 err := decodeRule(generic, &rule)
46 if err != nil {
47 return rule, readStructureError(err, path)
48 }
49
50 err = checkScopes(rule.Scope, path)
51 if err != nil {
52 return rule, err
53 }
54
55 re, err := updateExceptions(rule.Exceptions, cfg.AcceptedTokens, rule.Vocab)
56 if err != nil {
57 return rule, core.NewE201FromPosition(err.Error(), path, 1)
58 }
59 rule.exceptRe = re
60 rule.phraseRe = buildPhraseRe(rule.Exceptions, cfg.AcceptedTokens, rule.Vocab)
61
62 re, err = regexp2.CompileStd(rule.Second)
63 if err != nil {
64 return rule, core.NewE201FromPosition(err.Error(), path, 1)
65 }
66 expression = append(expression, re)
67 rule.secondHasGroup = hasCaptureGroup(rule.Second)
68
69 re, err = regexp2.CompileStd(rule.First)
70 if err != nil {
71 return rule, core.NewE201FromPosition(err.Error(), path, 1)
72 }
73 expression = append(expression, re)
74
75 // TODO: How do we support multiple patterns?
76 rule.patterns = expression
77 return rule, nil
78}
79
80// Run evaluates the given conditional statement.
81func (c Conditional) Run(blk nlp.Block, f *core.File, cfg *core.Config) ([]core.Alert, error) {

Callers 1

buildRuleFunction · 0.85

Calls 7

NewE201FromPositionFunction · 0.92
decodeRuleFunction · 0.85
readStructureErrorFunction · 0.85
checkScopesFunction · 0.85
updateExceptionsFunction · 0.85
buildPhraseReFunction · 0.85
hasCaptureGroupFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…