40 lines
1.4 KiB
Markdown
40 lines
1.4 KiB
Markdown
# Aiken Language Server Protocol (LSP)
|
|
|
|
The `aiken` command-line comes built-in with a _Language Server_ implementing
|
|
(part of) the [Language Server Protocol](https://microsoft.github.io/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](https://marketplace.visualstudio.com/items?itemName=TxPipe.aiken) from the official marketplace.
|
|
|
|
### NeoVim
|
|
|
|
If you're using NeoVim and using [`nvim-lspconfig`](https://github.com/neovim/nvim-lspconfig) then there's almost
|
|
nothing to do as Aiken is directly supported. Simply follow the [official
|
|
instructions](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#aiken)
|
|
|
|
## Supported Capabilities
|
|
|
|
- [x] Document syncing and on-the-fly compilation
|
|
- [x] Document formatting (akin to `aiken fmt`)
|
|
- [x] Go-to definition
|
|
- [x] Type annotation on hover
|
|
- [x] Code actions providing quickfixes for a variety of errors:
|
|
- [x] `aiken::check::unknown::variable`
|
|
- [x] `aiken::check::unknown::type`
|
|
- [x] `aiken::check::unknown::type_constructor`
|
|
- [x] `aiken::check::unknown::module`
|