ivy-lsp
Language Server Protocol (LSP) implementation for the Ivy formal specification language.
Features
- Document Symbols -- outline view of types, objects, actions, modules, properties
- Workspace Symbols -- search symbols across all
.ivyfiles - Go-to-Definition -- jump to symbol definitions across
includeboundaries - Find References -- locate all usages of a symbol in the workspace
- Completion -- context-aware suggestions (after
.,include, keywords, symbols in scope) - Hover -- type signatures and symbol details on mouse hover
- Diagnostics -- parse errors, missing
#langdirective, unresolved includes, unmatched braces
Installation
pip install ivy-lsp
Or as an optional extra of panther_ms_ivy:
pip install panther_ms_ivy[lsp]
Usage
Start the language server over stdio:
python -m ivy_lsp
Or via the installed console script:
ivy_lsp
With VS Code
Install the Ivy Language extension, which automatically starts ivy-lsp for .ivy files.
With Serena
Add ivy to the languages list in .serena/project.yml:
languages:
- python
- ivy
Configuration
When running standalone (outside VS Code), configure via environment variables:
Workspace indexing:
| Variable | Description |
|---|---|
IVY_LSP_INCLUDE_PATHS |
Comma-separated directories to include (whitelist). When set, only these directories are scanned. |
IVY_LSP_EXCLUDE_PATHS |
Comma-separated directories to exclude, additive to the hardcoded exclusion list. |
Tool timeouts:
| Variable | Default | Description |
|---|---|---|
IVY_LSP_VERIFY_TIMEOUT |
120 | Timeout in seconds for ivy_check verification |
IVY_LSP_TOOL_COMPILE_TIMEOUT |
300 | Timeout in seconds for ivyc compilation |
IVY_LSP_SHOW_MODEL_TIMEOUT |
30 | Timeout in seconds for ivy_show model inspection |
When using the VS Code extension, indexing paths are set automatically from the ivy.lsp.includePaths and ivy.lsp.excludePaths settings.
Standalone example:
IVY_LSP_EXCLUDE_PATHS=submodules,test python -m ivy_lsp
Requirements
- Python 3.10+
panther_ms_ivy(Ivy parser and compiler)pygls(Python LSP framework)
Development
git clone https://github.com/ElNiak/ivy-lsp.git
cd ivy-lsp
pip install -e ".[dev]"
pytest tests/ -v
License
MIT
Metadata
Release files for ivy-lsp 0.11.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ivy_lsp-0.11.1.tar.gz | 320.6 kB | Without provenance | Details for ivy_lsp-0.11.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ivy_lsp-0.11.1-py3-none-any.whl | Python 3 | none | any | Details for ivy_lsp-0.11.1-py3-none-any.whl |
Total release size: 503.7 kB
Release files / ivy_lsp-0.11.1.tar.gz
| Download URL | ivy_lsp-0.11.1.tar.gz |
|---|---|
| Size | 320.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
74afc62b0a9352ddffe42a28f3b4ec09b20f31da5778a27b97e9b1ef6c55518f
|
|
BLAKE2b-256 checksum How to use checksums |
50aa63cb9c7cb3830c90f79a6f6f14fa352d7c5a3f7593ebe91782ff7438f549
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / ivy_lsp-0.11.1-py3-none-any.whl
| Download URL | ivy_lsp-0.11.1-py3-none-any.whl |
|---|---|
| Size | 183.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bac4a95a691f36f63fb1c8db64d17e043f975559e308f67fffba0470ae6fe4ca
|
|
BLAKE2b-256 checksum How to use checksums |
840aae9614049a0cc1bef2e94edf477ff78bd3fccb462a0a50335a85f54c22a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for ivy-lsp 0.11.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.