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).
You can install
ide-haskell-hie by using
apm install ide-haskell-hie
Or via Atom > Settings view > Install Packages > Search packages > ide-haskell-hie
To contribute to
ide-haskell-hie you might want to install it from source:
# Get source from `ide-haskell-hie` repository git clone firstname.lastname@example.org: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
link check Contributing to Official Atom Packages.
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.
Absolute path to hie executablewill set the path to hie, in case it's not on your $PATH.
Use hie wrappermakes Atom use the
hie-wrapper.shfile to start hie through. This does assume that you built the hie executable using
make build, but will fall back to plain
Use custom hie wrapperenables you to use your own custom hie wrapper script, if the standard one doesn't suit your need (e.g. to use with nix).
The path to your custom hie wrapperspecifies the path to the custom wrapper, and is required for it to take effect.
Turn on debugging outputpasses the
--debugflag to hie (although not if using a custom wrapper, then you're on your own).
Log to a file (if debugging is on)will set the log file that debug writes to.
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
Linter/diagnostics on save
Outline view & Highlighting
No screenshot really necessary here.
- Find references (HIE does not support this yet, see issue #361)
- Rename (HIE supports it, but atom-languageclient is TBD, see issue #13)