Flint for Ignition
A powerful VS Code extension for working with Ignition SCADA/HMI projects, providing a comprehensive project browser, resource management, and development tools.

Features
Project Browser
- Hierarchical tree view of all Ignition project resources
- Multiple project support with easy switching between projects
- Inherited resource visualization from parent projects
- Resource categorization by type (Scripts, Views, Named Queries, etc.)
- Missing resource.json detection with quick-fix actions
- Tree state persistence across sessions
Resource Management
- Create, rename, delete, and duplicate resources directly from VS Code
- Resource templates for quick creation of common resource types
- Bulk operations for managing multiple resources
- Resource validation to ensure proper structure
- Copy resource paths for easy reference
Gateway Integration
- Multiple gateway support with environment configurations (dev/staging/prod)
- Quick access to gateway webpage and designer
- Project synchronization with gateway
- Status monitoring in the status bar
Search & Navigation
- Fast resource search across all projects
- Content search within resource files
- Search history for quick access to recent searches
- Type-specific search filters
- Quick navigation to any resource
- Advanced Python IntelliSense:
- Full autocompletion for Ignition system.* functions
- Project script module autocompletion with inheritance
- Automatic stub downloading based on gateway version
- Function signatures, parameters, and documentation
- Named query editor with SQL support
- Perspective view JSON editing
- Resource.json validation and auto-generation
- External tool integration (Kindling, Designer Launcher)
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Flint for Ignition"
- Click Install
From VSIX File
- Download the latest
.vsix file from the releases page
- Open VS Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Click the "..." menu → Install from VSIX
- Select the downloaded file
Quick Start
1. Initial Configuration
After installing Flint, you'll need to configure your workspace:
- Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Run
Flint: Get Started with Flint
- Follow the setup wizard to:
- Add your project paths
- Configure gateway connections
- Set up environments
2. Manual Configuration
Alternatively, create a flint.config.json file in your workspace root:
{
"version": "1.0.0",
"project-paths": [
"/path/to/ignition/data/projects"
],
"gateways": {
"local-dev": {
"description": "Local Development Gateway",
"projects": ["MyProject", "TestProject"],
"environments": {
"dev": {
"host": "localhost",
"port": 8088,
"ssl": false
}
}
}
}
}
3. Using the Project Browser
- Open the Flint Project Browser in the Explorer sidebar
- Select a gateway from the dropdown
- Select a project to browse
- Click on any resource to open it
Python Development Features
Ignition System Functions
Flint provides complete IntelliSense support for Ignition's built-in system functions:
- Automatic stub downloading: When you first type
system., Flint will prompt to download the appropriate Python stubs for your gateway version
- Complete module hierarchy: All system modules are available (system.util, system.db, system.tag, etc.)
- Rich documentation: Function signatures, parameter hints, and documentation are displayed
- Offline support: Downloaded stubs are cached locally for offline development
Project Script Modules
Full autocompletion for your custom project script modules:
- Hierarchical module structure: Navigate through nested folder structures
- Inheritance support: Access modules from parent projects
- Cross-module references: Import and use functions from other modules
- Real-time updates: Changes to script modules are immediately reflected in IntelliSense
Gateway Version Support
Configure the Ignition version in your gateway settings to get version-specific autocompletion:
{
"gateways": {
"my-gateway": {
"ignitionVersion": "8.1.33",
// ... other settings
}
}
}
Configuration Options
VS Code Settings
Configure Flint through VS Code settings (File → Preferences → Settings):
flint.showInheritedResources: Show/hide inherited resources (default: true)
flint.groupResourcesByType: Group resources by type (default: true)
flint.autoRefreshProjects: Auto-refresh on file changes (default: true)
flint.showEmptyResourceTypes: Show resource types with no resources (default: false)
flint.has83DesignerLauncher: Enable 8.3+ Designer Launcher support (default: false)
flint.kindlingExecutablePath: Path to Kindling executable for backup viewing
Gateway Configuration
Each gateway in flint.config.json supports:
- Multiple projects
- Multiple environments (dev, staging, prod)
- Custom host, port, and SSL settings per environment
- API token authentication (8.3+)
Keyboard Shortcuts
| Command |
Windows/Linux |
macOS |
| Search Resources |
Ctrl+Shift+R |
Cmd+Shift+R |
| Find in Resources |
Ctrl+Shift+Alt+F |
Cmd+Shift+Alt+F |
Supported Resource Types
- Python Scripts - Project library scripts with full IntelliSense:
- Ignition system function autocompletion (system., system.util., etc.)
- Custom project module autocompletion with inheritance
- Function signatures, parameters, and documentation
- Named Queries - SQL queries with parameter management
- Perspective Views - UI views with component hierarchy
- Perspective Styles - CSS style classes
- Perspective Sessions - Session properties and events
- Page Configurations - Perspective page settings
Kindling
View Ignition backup files (.gwbk, .modl, .idb):
- Install Kindling
- Right-click on backup files → "Open with Kindling"
Designer Launcher
Launch the Ignition Designer directly from VS Code:
- Install Ignition Designer Launcher (8.3+)
- Click on gateway node → "Open Designer"
Troubleshooting
Project Browser is Empty
- Check that
flint.config.json exists and is valid
- Verify project paths are correct and accessible
- Ensure at least one gateway is configured
Resources Not Showing
- Check file permissions on project directories
- Verify project.json exists in project root
- Try refreshing projects (refresh button in toolbar)
Search Not Working
- Ensure projects have been scanned (may take a moment on first load)
- Check that resource files are not corrupted
- Clear search history if experiencing issues
Known Limitations
- Some complex Perspective view structures may not display correctly in the tree
- Large projects (>10,000 resources) may experience slower initial scanning
- Python stub downloads require internet connection on first use per version
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Development Setup
- Clone the repository
- Run
npm install
- Open in VS Code
- Press F5 to launch a development instance
Pre-commit Hooks
This project uses pre-commit hooks to ensure code quality before commits. The hooks are automatically installed when you run npm install.
The pre-commit hooks will:
- Run ESLint to check TypeScript/JavaScript code quality
- Fix auto-fixable linting issues
- Format code with Prettier
- Ensure all files pass linting with zero errors and warnings
To bypass pre-commit hooks in exceptional cases (not recommended):
git commit --no-verify -m "your message"
Manual Code Quality Checks
npm run lint # Check code style
npm run lint:fix # Auto-fix linting issues
npm run prettier # Format code with Prettier
npm test # Run all tests
Running Tests
npm test # Run all tests
npm run test:unit # Run unit tests only
npm run test:integration # Run integration tests only
License
MIT License - see LICENSE for details.
Support
Acknowledgments
- Built for the Ignition SCADA platform by Inductive Automation
- Inspired by the needs of the Ignition developer community
- Special thanks to all contributors and testers
Note: This extension is not officially affiliated with Inductive Automation. Ignition is a trademark of Inductive Automation.