Skip to main content

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 .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 workspace indexing via environment variables:

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.

When using the VS Code extension, these 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ivy_lsp-0.10.1.tar.gz (224.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ivy_lsp-0.10.1-py3-none-any.whl (125.0 kB view details)

Uploaded Python 3

File details

Details for the file ivy_lsp-0.10.1.tar.gz.

File metadata

  • Download URL: ivy_lsp-0.10.1.tar.gz
  • Upload date:
  • Size: 224.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ivy_lsp-0.10.1.tar.gz
Algorithm Hash digest
SHA256 b575f6a38adeacffa7b89e12c839f31aa448a27f50c5c8e127dcdff9b03941e0
MD5 88e0d932181454277f05a1b7e89972da
BLAKE2b-256 eca4c0c1ba16c0658f5870dae2a52d15ade8c66db620b42ffd6d9ad537d98eca

See more details on using hashes here.

File details

Details for the file ivy_lsp-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: ivy_lsp-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 125.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ivy_lsp-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78f715f3cfc5d1d1096093783fd4e0f405f86ecb7542a474e7940b7b09f35ac9
MD5 232c048c21116a28ffd6b5de6f22073e
BLAKE2b-256 45ea8f2ea180dd0acb83b2e5e9e6bccba7b38c67e50db02f8a539b88ee90649f

See more details on using hashes here.

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