Rules CI enforces
Two conventions keep an application’s UI honest, and both would erode one
convenient shortcut at a time if they were only written down. So each is a
go/analysis analyzer,
run through go vet, with a reusable workflow an application marks as a
required check.
| Refuses | |
|---|---|
mvvmlint | assigning a widget’s state field by hand, and a package with widgets but no view-model |
bricolint | painter primitives in application code, and a widget built anew on every frame |
Both are conservative by construction: a rule fires only when the static
type of the receiver resolves, through go/types, to a toolkit or painter
type. A same-named field or method on an unrelated type is never flagged. The
intended exceptions are explicit directives in the code, so each one is
written down where it is made.
Created on by tannevaled
Modified on by tannevaled