Skip to content

v0.2.0

Choose a tag to compare

@samuelduchesne samuelduchesne released this 11 Sep 18:05

The first release of idfkit-lsp on PyPI. pip install idfkit-lsp now installs the source server, the language server for Python code that uses idfkit. It is the release the editor plugin's language-server entry has been waiting on, since that entry had nothing to resolve.

What is in this package

This package is the source server only. It answers completion, hover, signature help and diagnostics for Python files that import idfkit. The model server, which serves EnergyPlus model text through @idfkit/language, runs on the editor's own Node runtime and ships inside the editor extension, not in this wheel.

Features

  • Answers derived from the installed library (#15). The callables that produce a document, and the type names the server recognises, are read from the idfkit you have installed rather than from a table in this repository. A new idfkit release no longer needs a matching edit here before the server knows about it.
  • One declaration of what the server answers (#15). capabilities.json is the single record of what each server advertises. It travels inside the wheel, both servers advertise from it, and the test suite holds it against the servers in both directions.
  • The server can say what it is running (#15). An idfkit-lsp/versions request returns the server's version and the library levels it read. As of #19, idfkit_lsp.__version__ gives the same answer.

Fixes

  • The version the package reports is the version it is (#19). __version__ said 0.1.0 while the package declared 0.2.0. It is now read from the installed distribution.
  • Messages name an install that exists (#16). When the language service is missing, the guard now tells you to install @idfkit/language, which you can, rather than idfkit on npm, which is not published.

Packaging

  • MIT licence, carried in the wheel (#19).
  • Published as a wheel only, through PyPI trusted publishing (#19). A source distribution of the server cannot carry the declaration file it needs to start.
  • Requires Python 3.10 to 3.13. Pins idfkit==1.0.0rc1, pygls==2.1.1 and lsprotocol==2025.0.0 exactly.

Upgrade notes

This is a first installation, not an upgrade. The server pins idfkit exactly, so give it an environment of its own rather than the one your project runs in:

pip install idfkit-lsp==0.2.0                                          # into a dedicated virtual environment
uvx --from idfkit-lsp==0.2.0 --prerelease=allow python -m idfkit_lsp   # or its own environment, fetched on demand

uvx needs --prerelease=allow for this release. idfkit-lsp 0.2.0 depends on idfkit==1.0.0rc1, a pre-release, and uv installs a pre-release of an indirect dependency only when told to; without the flag it stops with "pre-releases weren't enabled". pip accepts the exact pre-release pin as it is. The flag stops being needed once idfkit-lsp depends on a stable idfkit. (Corrected 2026-09-11: these notes first showed the uvx command without the flag, which fails.)

In the editor extension, point idfkitLsp.pythonPath at that interpreter if it is not the one on your path.