all repos

clerk @ a7ca45c45f1c26525fb20f33ea16ae41bc4db348

missing tooling for ledger/hledger

clerk/internal/linter/rule_parse_error.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
implement basic linter, 1 month ago
1
package linter
2
3
import "olexsmir.xyz/clerk/journal/ast"
4
5
// ParseError wraps parser errors into lint findings.
6
type ParseError struct{}
7
8
func (ParseError) ID() RuleID          { return "parse-error" }
9
func (ParseError) Severity() Severity  { return SeverityError }
10
func (ParseError) Description() string { return "parse error" }
11
func (e *ParseError) CheckJournal(j *ast.Journal) []Find {
12
	var finds []Find
13
	for _, err := range j.Errors {
14
		finds = append(finds, Find{
15
			Code:     e.ID(),
16
			Severity: e.Severity(),
17
			Message:  err.Message,
18
			Span:     err.Span,
19
		})
20
	}
21
	return finds
22
}