all repos

clerk @ a45934c3c506c8bb27d2528b0dd23b74e1852482

missing tooling for ledger/hledger

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

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
linter: add missing transaction status, 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 (MissingStatus) Description() string { return "transaction has no status" }
11
func (m *MissingStatus) CheckEntry(entry ast.Entry) []Find {
12
	tnx, ok := entry.(*ast.Transaction)
13
	if !ok {
14
		return nil
15
	}
16
17
	if tnx.Status.Value == ast.StatusNone {
18
		return []Find{{
19
			Code:     m.ID(),
20
			Severity: m.Severity(),
21
			Message:  m.Description(),
22
			Span:     tnx.Status.Span,
23
		}}
24
	}
25
	return nil
26
}