Compatible with IntelliJ IDEA
20 229
Plugin for Haskell language support.

Download plugin

Recent change notes

Warning: You cannot use multiple Haskell plugins at the same time. If you have installed a Haskell language plugin for IntelliJ be sure to uninstall it before installing this one.

If you encounter any issues, please submit them on our bug tracker.


  • Help ghc-mod find stack (#318, #285)
  • Exclude .stack-work from sources (#321)
  • Don't report typos more than once (#320)
  • Parse Eta syntax (#302)


  • Fix Java 6 builder conflict (#278)
  • Parse extraneous commas in export/import lists (#284)
  • Fix read lock error (#271)
  • Strip HTML tags from ghc-modi 'killing' console message (#287)


  • Make HLint aware of extensions from Cabal file (#56)
  • Parse qualified operators in patterns (#218)
  • Parse 'do rec' syntax (#264)
  • Parse pragma-only files (#267)
  • Upgraded Grammar-Kit to 1.4.1
  • Upgraded JFlex to 1.7.0


  • Fix external builder issue (#282)


  • Require Java 8 (#281)
    • The boot JDK for IntelliJ must be running Java 8 (already required for IDEA 2016.1)
    • Fixes problems with building Java 6 projects (#278)
  • Improved Cabal file support (#169)
    • Implemented a proper Cabal parser
    • GHC extensions autocompletion
    • Jump to source for modules listed in exported-modules
    • Determine source roots from Cabal file during Stack project import
  • Properly dispose HaskellToolsConsole (#269)


  • Hindent support (#274)
  • Fix NPE caused by ghc-modi (#266)


  • Fixed issues with ghc-mod halting the IDE (#259)
  • Don't terminate ghc-modi on type info error (#261)
  • Allow 'location' values in stack.yaml packages (#263)
  • Show working directory in tools console (#251)


  • Fix "expand selection" feature to work with lists (#246)
  • Handle missing "packages" field in stack.yaml (#248)
  • Validate that project names do not contain whitespace (#252)
  • New "Haskell Stack Run" configuration (#252)
  • Added Haskell Tools Console (#237)


  • Use `hlint --no-exit-code` to avoid failing on lint warnings (#244)


  • Show build tool config errors in new project dialog
  • Parse boolean fields in stack.yaml
  • Improved external tool error reporting
  • Internal refactors to improve ghc-mod/hlint error highlighting


  • Warn if ghc-mod is compiled with a different version of GHC (#219)
  • Ghc-mod now executes in Stack context if applicable (#229)
  • Fixed halted IDE when modifying class constraints (#228)
  • Fixed importing Stack project at `.` directory (#230)
  • Fixed IndexOutOfBounds exception during indexing (#164)


  • Don't override user-specified ghc-modi flags, thanks to @adinapoli (#224)
  • Don't attempt to parse directories as stack.yaml (#216, #227)


  • Bug fixes and minor refactoring
  • Fix type info errors (#204)
  • Fix autocompletion when hiding names (#209)
  • Fix ghc-mod parse error messages (#212)


  • Added stack support (#167)
  • Added ghc-mod 5.4 support (#182)
  • Parse numeric escapes (#196) and haddock comments (#198)


  • Add spellchecker support (#197)
  • Fix redundant dashes when splitting comments (#199)


  • Parser improvements: InstanceSigs, MINIMAL pragma for class definitions, and qualified expressions in ViewPatterns, relaxed let expressions.
  • Autocompletion no longer includes keywords where not applicable.
  • Go to definition for exported modules, re-exported functions, and type definitions, thanks to @charleso.


  • Type info action only applies to Haskell files (#156)
  • ghc-mod completion optimizations
  • Added Add Cabal Package and Discover Cabal Packages actions
  • Enhanced the new project wizard to configure tools and Cabal package settings
  • Resolved hlint annotation issue (#121)
  • Honor NoImplicitPrelude pragma for autocompletion


  • Added jump to definition for local variables
  • Resolved type info action traceback (#135)
  • Updated new project wizard to prompt for SDK (#141)
  • Improved operator and comment parsing (#152)


  • Updated ghc-mod(i) integration to use the user-specified GHC and Cabal.
  • Highlight mdo and rec as keywords (#120)
  • Improved string escape parsing (#111)
  • Parse forall in data declarations (#132)
  • Parse PACK/UNPACK pragmas for GADTs
  • Handle leading slash for QuasiQuote language injections.
  • Updated icons for retina display


  • Implemented Type Info action. (#90)
  • Implemented language injections for QuasiQuotes.
  • Improved import completion with aliased modules.
  • Improved Restart ghc-modi action. (#103)
  • Implemented creation of subdirectories for create file action, e.g. Foo.Bar.Baz creates Foo/Bar/Baz.hs
  • Fixed hash operator parsing. (#106)
  • Improved RankNTypes support. (#92)
  • Improved Windows support. (#108, #109)
  • Implemented closed type families.
  • Implemented jump to function/variable declarations without type signatures.
  • Added module path creation when creating a new file as `Path.To.Module`.
  • Improved ghc-modi integration.
  • Implemented FunctionalDependencies.
  • Removed dependency on Apache commons-lang.
  • Implemented RankNTypes for type declarations. (#92)
  • Resolved parser issues with partial case expressions. (#82)
  • Improved "Go to symbol" by indexing declarations.
  • Resolved bug with ghc-modi blocking. (#91)
  • Prevent ghc-modi from restarting when it terminates unexpectedly.
  • Added a "Restart ghc-modi" action to give the user control over when to restart ghc-modi.
  • Fixed duplicate error messages from ghc-modi.
  • Improved performance of jump to declaration.
  • Added UnicodeSyntax support.
  • Added MagicHash syntax support.
  • Added tab settings under Code Style settings.
  • Run configurations now verify cabal version.
  • Added support for jumping to data and newtype constructor definitions.
  • Jump to definition will resolve based on your imports.
  • Multi-resolve now displays module names.
  • Completion takes into account explicit and hiding imports.
  • Reference completion now displays module name instead of file name.


  • Fixed auto-add type signature intention on Windows. (issue #79)
  • Fixed ignore hlint intention on Windows. (issue #59)