Language Server Protocol implementation for the Ivy formal specification language
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ivy_lsp-0.11.1.tar.gz.
File metadata
- Download URL: ivy_lsp-0.11.1.tar.gz
- Upload date:
- Size: 320.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74afc62b0a9352ddffe42a28f3b4ec09b20f31da5778a27b97e9b1ef6c55518f
|
|
| MD5 |
c72c7f24f5885c46b5eebe2250368287
|
|
| BLAKE2b-256 |
50aa63cb9c7cb3830c90f79a6f6f14fa352d7c5a3f7593ebe91782ff7438f549
|
File details
Details for the file ivy_lsp-0.11.1-py3-none-any.whl.
File metadata
- Download URL: ivy_lsp-0.11.1-py3-none-any.whl
- Upload date:
- Size: 183.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bac4a95a691f36f63fb1c8db64d17e043f975559e308f67fffba0470ae6fe4ca
|
|
| MD5 |
c3e3d6b6a43267ebf1d63590c191413a
|
|
| BLAKE2b-256 |
840aae9614049a0cc1bef2e94edf477ff78bd3fccb462a0a50335a85f54c22a6
|