Skip to main content

A Language Server Protocol implementation for *craft files.

Project description

craft-ls

GitHub Actions Workflow Status

Get on
PyPI - Version FlakeHub Snap - Version VSCode Marketplace

craft-ls is a Language Server Protocol implementation for *craft[^1] tools.

craft-ls enables editors that support the LSP to get quality of life improvements while working on *craft configuration files.

Features

Feature Snapcraft Rockcraft Charmcraft[^1]
Diagnostics
Symbol documentation
Autocompletion

https://github.com/user-attachments/assets/e4b831b5-dcac-4efd-aabb-d3040899b52b

Usage

Installation

Using uv or pipx

uv tool install craft-ls

pipx install craft-ls

Setup

Helix

# languages.toml
[[language]]
name = "yaml"
language-servers = ["craft-ls"]

[language-server.craft-ls]
command = "craft-ls"

VSCode

The VSCode extension can be installed from the marketplace. It requires a Python 3.12 interpreter. If not automatically picked, you may configure it using the following key:

"craft-ls.interpreter": [
  "/usr/bin/python3.12"
]

TBD: neovim

Roadmap

Project availability:

  • Python package
  • Snap
  • Nix flake
  • VSCode extension

Features:

  • Diagnostics
  • Autocompletion on typing
  • Symbol documentation

Ecosystem:

  • Encourage *craft tools to refine their JSONSchemas even further

[^1]: snapcraft, rockcraft and partial support for charmcraft (all-in-one charmcraft.yaml only)

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

craft_ls-0.3.0.tar.gz (46.3 kB view details)

Uploaded Source

Built Distribution

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

craft_ls-0.3.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file craft_ls-0.3.0.tar.gz.

File metadata

  • Download URL: craft_ls-0.3.0.tar.gz
  • Upload date:
  • Size: 46.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for craft_ls-0.3.0.tar.gz
Algorithm Hash digest
SHA256 198dd9f5583511061a08665324e81b9c89308eef78a3d96d1eb0ee8928bf3630
MD5 e673fb8ad879bdbe32ae16a94eb8aa51
BLAKE2b-256 ad7d089c49dd7e0f5d04d43fd0763d794c02be8a214d1f1bab257b328e54f047

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_ls-0.3.0.tar.gz:

Publisher: release.yaml on Batalex/craft-ls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file craft_ls-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: craft_ls-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 27.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for craft_ls-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 976b7d27312b82c1f1ab92bf655ca11d891d00c2328e8c18d21357478db57fee
MD5 f64e1b4f69225a600b97e6c33eadf9b4
BLAKE2b-256 5c7cecc49dd7bb2b86a4408074df7df84d1c60207f1935b1d01674f7508f6d79

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_ls-0.3.0-py3-none-any.whl:

Publisher: release.yaml on Batalex/craft-ls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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