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.3.tar.gz (60.0 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.3-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for craft_ls-0.3.3.tar.gz
Algorithm Hash digest
SHA256 b1c4801d3b8fa3724138258a5a375284a5cdacac1d9fc6e344911f27c03c7baa
MD5 0bb43e2a91e9183a0774cc11a845f032
BLAKE2b-256 c9e52c911b2695df905078a22aceb4fe7605e283c139bb40278facf74e2bad0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_ls-0.3.3.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.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for craft_ls-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 547b790f82969db29cc9977d9a02aea003ca9d61976d4c571fa75187db5c10ee
MD5 fc605fb885c033c68ff354ec5aa259c3
BLAKE2b-256 cd335ac582d1b555f676a9fc755a925655196f4196125b8acd8aa5dc8abf1b60

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_ls-0.3.3-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