Skip to main content

Language Server Protocol implementation for Ignition by Inductive Automation

Project description

Ignition LSP Server

Language Server Protocol implementation for Ignition by Inductive Automation.

Features

  • Autocompletion for system.*, project.*, and shared.* namespaces (239+ functions across 14 modules)
  • Hover documentation with function signatures, parameter details, and scope info
  • Go-to-definition for API functions and project scripts
  • Diagnostics for common scripting issues
  • Workspace symbols for project-wide script navigation
  • Project indexing across Ignition resource files

Installation

From PyPI

pip install ignition-lsp

From Source

cd lsp
pip install -e .

Development Installation

cd lsp
pip install -e ".[dev]"

Usage

The LSP server is automatically started by the ignition.nvim plugin when editing Ignition files.

Manual Start

ignition-lsp

The server communicates via stdio and follows the LSP specification.

Development

Running Tests

pytest

Code Formatting

black ignition_lsp tests

Type Checking

mypy ignition_lsp

Linting

ruff check ignition_lsp tests

Architecture

  • server.py - Main LSP server implementation using pygls 2.0
  • api_loader.py - API database loader and indexer
  • completion.py - Completion provider for Ignition APIs and project scripts
  • hover.py - Hover documentation provider
  • diagnostics.py - Diagnostic provider for code analysis
  • definition.py - Go-to-definition for API functions and project scripts
  • project_scanner.py - Ignition project structure indexer
  • workspace_symbols.py - Workspace symbol provider
  • api_db/ - Ignition API function definitions (14 modules, 239+ functions)

Contributing

See the main project README for contribution guidelines.

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ignition_lsp-1.0.0.tar.gz (194.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ignition_lsp-1.0.0-py3-none-any.whl (197.3 kB view details)

Uploaded Python 3

File details

Details for the file ignition_lsp-1.0.0.tar.gz.

File metadata

  • Download URL: ignition_lsp-1.0.0.tar.gz
  • Upload date:
  • Size: 194.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ignition_lsp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 34d8e3df6857fdeb01d39dd4df2dd077f8beb486020a54ed63d76e3c3f2f53ca
MD5 dc7ef5bd177c652fc87c450a13d381f6
BLAKE2b-256 d028605e0096f8b43925e3a5ffd6d835bfbd48b4c4cf9cf7aa75c0db6cabb4a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignition_lsp-1.0.0.tar.gz:

Publisher: release.yml on TheThoughtagen/ignition-nvim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ignition_lsp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ignition_lsp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 197.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ignition_lsp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6dd17b399997e7b48682903e2e8a664f6c0b07d3284184eb7cf78f6b5d15a58
MD5 de753f6e3e36d103715f873dc296cac4
BLAKE2b-256 2d659a9235d82ab623b283f80020db7c5b74cbb8f36c4f22164c1e5513e889d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignition_lsp-1.0.0-py3-none-any.whl:

Publisher: release.yml on TheThoughtagen/ignition-nvim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page