Skip to main content

Basic Usage

Lint Any Directory

Point the linter at any directory and it recursively finds and lints all view.json and .py files:

# Lint everything under a directory
ignition-lint --target /path/to/any/folder

# Lint just Perspective views in a subfolder
ignition-lint -t /path/to/views/ScheduleManagement --checks perspective

# Lint only scripts, output as JSON (for AI agents / MCP)
ignition-lint -t /path/to/scripts --checks scripts --report-format json

This is the recommended mode for AI agents, MCP integrations, and ad-hoc subdirectory linting.

Lint a Full Ignition Project

If your directory follows the standard Ignition layout, --project auto-discovers the conventional paths:

ignition-lint --project /path/to/ignition/project --profile full

This looks for com.inductiveautomation.perspective/views/ and ignition/script-python/ and runs Perspective schema validation, naming convention checks, and script analysis in one pass.

Lint Specific Files

Target individual view.json files with glob patterns:

ignition-lint --files "**/view.json" --component-style PascalCase --parameter-style camelCase

Naming Conventions Only

Skip schema and script analysis to focus on naming:

ignition-lint --project /path/to/project --naming-only

Understanding the Output

Severity Levels

LevelMeaning
ERRORCritical issues that will cause runtime failures
WARNINGCompatibility or best practice issues
INFOInformational insights and suggestions
STYLECode style and documentation improvements

Example Output

📊 LINT RESULTS
============================================================
📁 Files processed: 226
🧩 Components analyzed: 2,660
✅ Valid components: 2,533 (95.2%)
❌ Invalid components: 127

📋 Issues by severity:
❌ Error: 147
⚠️ Warning: 94
ℹ️ Info: 497
💡 Style: 485

📄 views/MainScreen/view.json
❌ SCHEMA_VALIDATION: fontSize should be string not number
Component: ia.display.label at root.children[0]
Suggestion: Path: props.textStyle.fontSize

Exit Codes

CodeMeaning
0Success (no critical errors)
1Failure (critical errors found or execution failed)

Suppressing Noisy Rules

During initial adoption, suppress rules you're not ready to address:

ignition-lint -p ./project --profile full \
--ignore-codes NAMING_PARAMETER,MISSING_DOCSTRING,LONG_LINE

See the Suppression Guide for the full reference.

Common Issues and Fixes

Schema Validation Errors

Bad:

{
"textStyle": {
"fontSize": 14
}
}

Good:

{
"textStyle": {
"fontSize": "14px"
}
}

Jython Indentation

Inline scripts in view.json must be indented (they execute inside an implicit function body):

# ERROR: no indentation
if value == -1:
return False

# OK: properly indented
if value == -1:
return False

Use function-call syntax for Python 3 compatibility:

print 'hello'    # WARNING: statement syntax
print('hello') # OK: function syntax

Next Steps