Skip to main content

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 .ivy files
  • Go-to-Definition -- jump to symbol definitions across include boundaries
  • 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 #lang directive, 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)

Source distribution for ivy-lsp 0.11.1
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)

Table of built distributions (wheels) for ivy-lsp 0.11.1
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page