Ignition Lint
Static analysis for Ignition Perspective view.json files. Catches naming inconsistencies, performance issues, dead custom properties, broken component references, and Python errors in scripts — before the gateway runs them.
What it does
Ignition Lint parses Perspective view definitions, builds an object model of components, bindings, and scripts, and runs a configurable set of rules over that model. Rules are visitor-pattern classes you can extend; the framework ships with seven built-in rules covering the most common pitfalls in Perspective views.
When to use it
- In a pre-commit hook — block bad views before they hit the repo. See Pre-commit integration.
- In CI — fail the build on regressions. See GitHub Actions.
- From the CLI — audit existing views or analyze new ones. See Command line.
Built-in rules
| Rule | Category | What it catches |
|---|---|---|
| NamePatternRule | Naming | Component, property, and script names that don't match a configured convention |
| BadComponentReferenceRule | Structure | Brittle traversal patterns (.getSibling(), .getParent(), relative paths) |
| ComponentReferenceValidationRule | Structure | Relative references that don't resolve to a real component |
| PollingIntervalRule | Performance | now() polling intervals below a configurable minimum |
| UnusedCustomPropertiesRule | Properties | Custom properties and view parameters defined but never referenced |
| ExcessiveContextDataRule | Properties | Large datasets stored in custom properties (arrays, breadth, depth, total volume) |
| PylintScriptRule | Scripts | Pylint findings across every script in the view |
Where to start
- Just trying it out? → Installation → Quick start
- Setting up a project? → Configuration → Pre-commit integration
- Writing a custom rule? → Architecture → Creating rules
- Debugging a rule or a view? → Debug output → Troubleshooting
Project links
- Source: github.com/bw-design-group/ignition-lint
- Package: pypi.org/project/ign-lint
- Issues: GitHub Issues