
In https://github.com/zed-extensions/haskell/pull/2 the HLS settings were updated to respect binary path/argument overrides. This PR just updates the docs to demonstrate this. Release Notes: - N/A --------- Co-authored-by: Peter Tripp <peter@zed.dev>
51 lines
1.4 KiB
Markdown
51 lines
1.4 KiB
Markdown
# Haskell
|
|
|
|
Haskell support is available through the [Haskell extension](https://github.com/zed-extensions/haskell).
|
|
|
|
- Tree-sitter: [tree-sitter-haskell](https://github.com/tree-sitter/tree-sitter-haskell)
|
|
- Language Server: [haskell-language-server](https://github.com/haskell/haskell-language-server)
|
|
|
|
## Installing HLS
|
|
|
|
Recommended method to [install haskell-language-server](https://haskell-language-server.readthedocs.io/en/latest/installation.html) (HLS) is via [ghcup](https://www.haskell.org/ghcup/install/) (`curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
|
`):
|
|
|
|
```sh
|
|
ghcup install hls
|
|
which haskell-language-server-wrapper
|
|
```
|
|
|
|
## Configuring HLS
|
|
|
|
If you need to configure haskell-language-server (hls) you can add configuration options to your Zed settings.json:
|
|
|
|
```json
|
|
{
|
|
"lsp": {
|
|
"hls": {
|
|
"initialization_options": {
|
|
"haskell": {
|
|
"formattingProvider": "fourmolu"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
See the official [configuring haskell-language-server](https://haskell-language-server.readthedocs.io/en/latest/configuration.html) docs for more options.
|
|
|
|
If you would like to use a specific hls binary, or perhaps use [static-ls](https://github.com/josephsumabat/static-ls) as a drop-in replacement instead, you can specify the binary path and arguments:
|
|
|
|
```json
|
|
{
|
|
"lsp": {
|
|
"hls": {
|
|
"binary": {
|
|
"path": "static-ls",
|
|
"arguments": ["--experimentalFeatures"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|