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-0.3.0.tar.gz (93.5 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-0.3.0-py3-none-any.whl (83.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ignition_lsp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d82db2a649c58e53fdfc716a7435f9d1888fa9de2d0ff0b854a062e20bbc63a6
MD5 050a7e45578c70130d829474437a38bc
BLAKE2b-256 68bc4c003a4528c052042940e869d1f5519e1afa0c232ca35aa682befc488286

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignition_lsp-0.3.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-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: ignition_lsp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 83.5 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-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f68bd440bd20de0772e28be69894549c92963760ce6a030678fd5d5699c4e1a7
MD5 366fb7bd5d21f1fdd38697bd819ff39a
BLAKE2b-256 8b747179917b94b7b2e5994abf998077a1a372048f607c2017a571be4630d398

See more details on using hashes here.

Provenance

The following attestation bundles were made for ignition_lsp-0.3.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