all repos

clerk @ 45890c9deddb940b6a20bad3de4827a0058b8396

missing tooling for ledger/hledger

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

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
linter: remove Description() method, 1 month ago
1
package linter
2
3
import "olexsmir.xyz/clerk/journal/ast"
4
5
// MissingStatus flags transactions with missing status.
6
type MissingStatus struct{}
7
8
func (MissingStatus) ID() RuleID         { return "missing-status" }
9
func (MissingStatus) Severity() Severity { return SeverityWarning }
10
func (m *MissingStatus) CheckEntry(entry ast.Entry) []Find {
11
	tnx, ok := entry.(*ast.Transaction)
12
	if !ok {
13
		return nil
14
	}
15
16
	if tnx.Status.Value == ast.StatusNone {
17
		return []Find{{
18
			Code:     m.ID(),
19
			Severity: m.Severity(),
20
			Message:  "transaction has no status",
21
			Span:     tnx.Status.Span,
22
		}}
23
	}
24
	return nil
25
}