Awesome
Haskelly
Release notes | Roadmap | Demo Video
Haskelly
is a Visual Studio Code extension that supports Haskell development.
Features
-
Code highlight
- Haskell (
.hs
and.lhs
) and Cabal via automatic dependency on Haskell Syntax Highlighting.
- Haskell (
-
Code snippets
- Structures :
data
,newtype
, etc. - Popular functions :
map
,fold
, etc.
- Structures :
-
Type hovers
-
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
-
Integrated REPL, Build, Test and Run commands
- repl with
GHCi
- build with
stack
- run with
runHaskell
- test current file
prop_*
properties withQuickCheck
- run full test suite with
Stack test
- repl with
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: zcabmse@ucl.ac.uk.
- 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.