Haskelly icon indicating copy to clipboard operation
Haskelly copied to clipboard

Haskelly is a VS Code extension that provides complete support for casual and expert Haskell development.

Haskelly

Release notes | Roadmap | Demo Video

Haskelly is a Visual Studio Code extension that supports Haskell development.

Features

  • Code highlight

  • Code snippets

    • Structures : data, newtype, etc.
    • Popular functions : map, fold, etc.
  • Type hovers

    • hover
  • Jump to definition

    • Jump to symbol definitions/declarations
  • Find references

    • Find references within a module or depending modules. See limitations on #62
  • Code completion :

    • Local functions and constants
    • Standard library
    • Imported modules

    completion

  • Integrated REPL, Build, Test and Run commands

    • repl with GHCi
    • build with stack
    • run with runHaskell
    • test current file prop_* properties with QuickCheck
    • run full test suite with Stack test

Installation

  • Install the Haskelly VS Code extension.

  • Install Stack and add it to your PATH. Note that Stack folder naming conventions must be followed for it to work correctly, i.e. capitalizing folder names.

    curl -sSL https://get.haskellstack.org/ | sh
    
  • Install Intero (code completion and type information), and QuickCheck (test suite)

    stack install intero QuickCheck  # for a global installation
    stack build intero QuickCheck # for a local installation
    

Configuration

Haskelly is customizable (see Code > Preferences > Workspace Settings).

Parameter Description Default
haskelly.codeCompletion Code completion enabled true
haskelly.buttons.ghci GHCi button shows in the bottom bar true
haskelly.buttons.runfile Run file button shows in the bottom bar true
haskelly.buttons.quickcheck QuickCheck button shows in the bottom bar true
haskelly.buttons.stackBuild Stack build button shows in the bottom bar true
haskelly.buttons.stackBuildParams Parameters passed to stack build command --fast
haskelly.buttons.stackRun Stack run button shows in the bottom bar true
haskelly.buttons.stackRunParams Parameters passed to stack run command null
haskelly.buttons.stackTest Stack test button shows in the bottom bar true
haskelly.buttons.stackTestParams Parameters passed to stack test command null
haskelly.snippets.important Hide code completion for which there's already a snippet false
haskelly.snippets.custom Add your custom snippets following the structure of this file null
haskelly.exec.reuseTerminal Reuse the currently opened terminal to run Stack commands false

Contributing

If you'd like to contribute to Haskelly, this is what you can do:

  • Bugs: This extension is in alpha, so some bugs might be present. We would really appreciate if you could post any issue on the Github repository issues section or contact us at: [email protected].
  • Ideas and feature requests: We want to get everyone's opinion on what we're building so feel free to use the two mentioned channels for any comment or suggestion.
  • Documentation: Found a typo or strangely worded sentences? Submit a PR!
  • Code: Contribute bug fixes, features or design changes.

License: GNU 3