![]() Let's consider the following case: ``` type Var = Integer type Vars = List<Var> ``` This incorrectly reports an infinite cycle; due to the inability to properly type-check `Var` which is also a dependent var of `Vars`. Yet the real issue here being that `Integer` is an unknown type. This commit also upgrades miette to 7.2.0, so that we can also display a better error output when the problem is actually a cycle. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
README.md
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:
aiken::check::unknown::variable
aiken::check::unknown::type
aiken::check::unknown::type_constructor
aiken::check::unknown::module