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`
 |