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.2.tar.gz (51.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.2-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: craft_ls-0.3.2.tar.gz
  • Upload date:
  • Size: 51.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.2.tar.gz
Algorithm Hash digest
SHA256 e1ee1a2353b6464be5b997953a0018315804ee4935eec9624a7c6177f5c45eb4
MD5 be647dd526701398b0e4aa58090de6cc
BLAKE2b-256 04e191594c6c4f988c4f6b2118d259caa928abff1be5548d110a2fc31a1d1b52

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: craft_ls-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 29.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94376ab9a65c9106e84c3c942ef9897368d7ab3cfb0313fbb7d4d0010ad3d2c4
MD5 d7ee1ccd5a18e6eaf78efd769584db71
BLAKE2b-256 7c075f7944cb861bed6d6520456a69084d1bf09a99510366e751ae36a1083c37

See more details on using hashes here.

Provenance

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