apriori / ide-haskell

Haskell IDE plugin for Atom editor

Home Page:https://atom.io/packages/ide-haskell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IDE-Haskell Join the chat at https://gitter.im/atom-haskell/ide-haskell

Welcome to IDE-Haskell plugin for amazing Atom editor! This plugin is intended to help you with development in Haskell.

Implemented features

Haskell project autodetection

IDE-Haskell works only with Haskell projects. When you open a Haskell source file, IDE-Haskell will start automatically.

Errors, warnings and linter

After saving the current file the check and linter processes will be executed. After processes are finished the results can be seen in output panel. You can see different kind of results by switching Errors, Warnings and Lints tab buttons. If you click on message's file name in output panel, Atom will open this file and put cursor near problem that triggered output message.

Check results can also be seen in left editor gutter (near line numbers) as icons. If you hover mouse pointer over such an icon, a tooltip will be shown with problem description. Results are highlighted inside editor as well, so you can easily determine where the problem is.

errors

Get type/info

If you have haskell-ghc-mod or similar package installed, you can get type of any expression and get info on any symbol.

There are two options to do so.

First one is to hover mouse pointer over any Haskell source in editor, or any selection. By default, this will show type for expression/selecton under cursor. You can change this behavior to show info for symbol, or disable it completely in IDE-Haskell settings.

Another option is to use keyboard to get type/info under cursor. No default bindings are specified, but you can specify them in your Atom keymap.

See Configuration for more information.

typeinfo

typeins

Autocompletion

Autocompletion facilities have been moved to autocomplete-haskell package.

Please install it if you want autocompletion.

Code beautify

You can use stylish-haskell utility to indent pragmas, imports and data type definitions. Simply select Prettify from Haskel IDE menu to apply stylish-haskell to current file.

prettify

Build and test project

If you have ide-haskell-cabal or similar package installed, you can build, clean and test your project from ide-haskell.

Requirements

Atom packages:

Binaries:

Known conflicts

This package relies on grammar defined by language-haskell. Any other Haskell grammar packages (such as haskell-grammar) may conflict with it.

Installation

$ apm install language-haskell haskell-ghc-mod ide-haskell-cabal ide-haskell autocomplete-haskell

Configuration

Package is fully configurable via Edit → Preferences → Packages → ide-haskell → Settings

You will likely need to specify full paths to stylish-haskell, if it is not in your PATH, at the very least.

You might also want look into configuring haskell-ghc-mod (haskell-ghc-mod README) and ide-haskell-cabal (ide-haskell-cabal README)

NOTE: Since version 1.0.0, some configuration options have been moved to backends, in particular, haskell-ghc-mod. Migration should be automatic, but please check if your configuration is correct just in case.

Keyboard shortcuts

NOTE: Since version 1.0.0, most commands are provided by backends, in particular, haskell-ghc-mod and ide-haskell-cabal. Please revise your keymap accordingly. Refer to (haskell-ghc-mod README) and (ide-haskell-cabal README) for details

Ide-Haskell comes with little pre-specified keybindings, so you will need to specify your own, if you want those.

You can edit Atom keybindings by opening 'Edit → Open Your Keymap'. Here is a template for all commands, provided by ide-haskell:

'atom-text-editor[data-grammar~="haskell"]':
  'escape': 'ide-haskell:close-tooltip' #this is set by default
  '':'ide-haskell:prettify-file'
  '':'ide-haskell:next-error'
  '':'ide-haskell:prev-error'

'atom-text-editor[data-grammar~="cabal"]':
  '': 'ide-haskell:prettify-file'

'atom-workspace':
  '': 'ide-haskell:toggle-output'

API

Ide-haskell provides service-hub API with ide-haskell-upi service.

More information is available in lib/upi.coffee source file

TODO

  • Cabal project autodetection
  • Errors, warnings and linter
  • Get type at point
  • Autocompletion
  • Code beautify
  • Cabal project management
  • Jump to definition
  • Who calls and vice versa
  • Interactive REPL
  • Documentation support

Changelog

Changelog is available here.

License

Copyright © 2015 Alexander Chaika, Nikolay Yakimov

Contributors:

  • Daniel Beskin
  • John Quigley
  • Luka Horvat
  • Ondřej Janošík

See the LICENSE.md for details.

About

Haskell IDE plugin for Atom editor

https://atom.io/packages/ide-haskell

License:MIT License


Languages

Language:CoffeeScript 83.2%Language:CSS 16.8%