Metadata-Version: 2.4
Name: ignition-lsp
Version: 1.1.0
Summary: Language Server Protocol implementation for Ignition by Inductive Automation
Author-email: Whiskey House E&T <engineering@whiskeyhouse.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/pmannion2/ignition-nvim
Project-URL: Repository, https://github.com/pmannion2/ignition-nvim
Project-URL: Issues, https://github.com/pmannion2/ignition-nvim/issues
Keywords: ignition,lsp,language-server,neovim,inductive-automation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pygls>=1.3.0
Requires-Dist: lsprotocol>=2023.0.0
Requires-Dist: ignition-lint-toolkit>=0.1.0; python_version >= "3.10"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: mypy>=1.5.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"

# 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

```bash
pip install ignition-lsp
```

### From Source

```bash
cd lsp
pip install -e .
```

### Development Installation

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

## Usage

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

### Manual Start

```bash
ignition-lsp
```

The server communicates via stdio and follows the LSP specification.

## Development

### Running Tests

```bash
pytest
```

### Code Formatting

```bash
black ignition_lsp tests
```

### Type Checking

```bash
mypy ignition_lsp
```

### Linting

```bash
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.
