ide-haskell-hie

Haskell LSP plugin for HIE (Haskell IDE Engine)

Tehnix

8,616

1

Bug Reports

0.12.0

MIT

GitHub

This package consumes the following services:

Atom plugin for HIE LSP server

Rudimentary support for HIE, relies on atom-ide-ui for displaying LSP interactions, and language-haskell to identify Haskell files. Internatlly uses atom-languageclient for the LSP client, and HIE as the LSP server.

To get hie to automatically detect the correct hie version to use based on your projects GHC version, enable the experimental flag 'Use hie-wrapper', and make sure to build your project using the Makefile in the HIE repository (builds multiple versions of hie).

Installation

You can install ide-haskell-hie by using apm.

apm install ide-haskell-hie

Or via Atom > Settings view > Install Packages > Search packages > ide-haskell-hie

From source

To contribute to ide-haskell-hie you might want to install it from source:

# Get source from `ide-haskell-hie` repository
git clone git@github.com:Tehnix/ide-haskell-hie.git
cd ide-haskell-hie
# install dependencies
npm install
# link local version in `dev` mode
apm link --dev
# start Atom in `dev` mode
atom --dev
# To unlink local version of `ide-haskell-hie` run
apm unlink --dev

For more information about apm and link check Contributing to Official Atom Packages.

Configuration

The plugin should work out-the-box, but your environment may differ for many reasons, and the following are some configurations that might help you get it working.

For additional debugging (e.g. stderr), you can enable Settings -> Core -> Debug L S P or add debugLSP: true to the core section in Debug -> Config... -> config.cson, and then view the output in the Atom Developer Console.

A few screenshots of the working things

Type/Datatips information on hover & Definitions/Hyperclick

Definitions/Hypercick support

Linter/diagnostics on save

Linter Errors

Outline view & Highlighting

Outline view on the right side and highlight of anotherFunc

Code actions

Code actions being applied

Code format

No screenshot really necessary here.

Not implemented

Miscellaneous

The code for the providers that HIE supports can be found here (permanent link here).