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

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.2.0.tar.gz (55.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.2.0-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ivy_lsp-0.2.0.tar.gz
  • Upload date:
  • Size: 55.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.2.0.tar.gz
Algorithm Hash digest
SHA256 48eb5c6227545d997077c20260434d539d7178ac3923983c5a2786a3959f6c85
MD5 5db28943bd90601a81c7f61e4785bd99
BLAKE2b-256 a8beadb23f325aa362a93b13e05accd731f3e68d2138644c2cf409e2e96b553a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ivy_lsp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.8 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2220595cc9fe3a26fcfd4fc695d678c4730d640de889e251dea6f3845e1c4d0
MD5 0c1e4ead7a2368090723f4b87f50b046
BLAKE2b-256 16c3d52b3c71e6c6e42d28516b5e5066c0c258aead37f9600ce77ff7a0ba6dc0

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