aiken-lsp

Crates.ioaiken-lsp
lib.rsaiken-lsp
version1.1.19
created_at2022-11-14 23:05:36.303262+00
updated_at2025-07-28 18:04:56.181329+00
descriptionCardano smart contract language and toolchain
homepagehttps://github.com/aiken-lang/aiken
repositoryhttps://github.com/aiken-lang/aiken
max_upload_size
id715253
size167,293
Pi Lanningham (Quantumplation)

documentation

https://aiken-lang.org

README

Aiken Language Server Protocol (LSP)

The aiken command-line comes built-in with a Language Server implementing (part of) the Language Server Protocol.

Getting Started

General

Regardless of your IDE, you'll likely need the following information to configure your language client:

  • command: aiken lsp

    Note The command is hidden from the command-line help usage

  • root pattern: aiken.toml

  • filetype: aiken (.ak)

VsCode

Simply install the VSCode Aiken extension from the official marketplace.

NeoVim

If you're using NeoVim and using nvim-lspconfig then there's almost nothing to do as Aiken is directly supported. Simply follow the official instructions

Supported Capabilities

  • Document syncing and on-the-fly compilation

  • Document formatting (akin to aiken fmt)

  • Go-to definition

  • Type annotation on hover

  • Code actions providing quickfixes for a variety of errors:

    error quickfix
    check::unknown::variable Add relevant import or use qualified import inline
    check::unknown::type Add relevant import or use qualified import inline
    check::unknown::type_constructor Add relevant import or use qualified import inline
    check::unknown::module Add relevant import
    check::unused:import::value Remove redundant imports
    check::unused::import::module Remove redundant imports
    check::single_constructor_expect Replace expect with let
    check::syntax::unused_record_fields Remove redundant fields
    check::syntax::bytearray_literal_is_hex_string Prefix string with #
    check::unexpected::type_hole Replace type hole with inferred type
    check::unused::function Make private function public
    check::unused::constant Make private constant public
    check::unused::type Make private type public
    check::private_leak Make leaked type public
Commit count: 3441

cargo fmt