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
Documentation on hover
Symbols
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.4.0.tar.gz (74.8 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.4.0-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: craft_ls-0.4.0.tar.gz
  • Upload date:
  • Size: 74.8 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.4.0.tar.gz
Algorithm Hash digest
SHA256 87396933e97f28ab918c2dd53635d446e1135dbd87fd274b33cd161401d9ecf0
MD5 2fb8c0148cbda24109ea0f3bc0e8b931
BLAKE2b-256 e8fe4826c3cef1cbe6a026eb81be2cf6b08a5e7df3915c14b5f5b21b49238a62

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: craft_ls-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 41.1 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6aed173f5ad59f046a149168913288d39303b4c8e2fc1073339ac66f19a3cf5c
MD5 59da88f0c608da1706bf69ec19c7828c
BLAKE2b-256 a3c69d27a826bca931b5a7d65d52722c43ef60207b34c319cce81141109ceff1

See more details on using hashes here.

Provenance

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