or you may install Haskell Platform (includes cabal build tool):
The Glorious Haskell Computer (ghc). Preferably, you should install the Haskell Platform if you don't already have a Haskell development and hacking environment set up.
cabal. Under normal circumstances, cabal should come pre-installed with your Haskell environment, e.g., if you installed the Haskell Platform.
A backend. SublimeHaskell communicates with the backend to support the interesting editing features. The preferred backend is hsdev. You can use one of the deprecated backends, but know that support for these backends may be dropped or removed in a future SublimeHaskell release.
hsdev cabal package for inspection, enhanced completion, goto, symbol info etc.
Installation:
with cabal — cabal install hsdev
with stack — create config (for example, hsdev.yaml) with contents:
And then run stack install hsdev --stack-yaml hsdev.yaml
Deprecated backends
ghc-mod (for import and LANGUAGE completions and type inference, cabal install ghc-mod, not used if hsdev enabled, ghc-mod is used by hsdev as a library)
Open a Haskell source file, cabal builder file or a stack.yaml builder and have a productive Haskell development session!
Optional Tools
stack. The Haskell Tool Stack. If you installed the Haskell Platform, you already have this installed. stack is a companion Haskell build tool that supplements cabal.
SublimeREPL package for REPL support, if you want to interact with GHCI from within SublimeText.
Tools (cabal, hsdev, ghc-mod, ghc, etc.) are usually installed in a directory that is already added to your PATH environment variable. SublimeHaskell will also look for these tools in several "Haskell standard" places. These places include:
Builder
*nix Platforms
Windows
stack
$HOME/.local/bin
%APPDATA%/local/bin
cabal user
$HOME/.cabal/bin
%APPDATA/cabal/bin
cabal global
/usr/local/bin
%PROGRAMFILES%/Haskell/bin
More advanced users can configure cabal's user and global install paths in $HOME/.cabal/config. SublimeHaskell will use these values if configured and if the directories to which they refer exist.
If you have a non-standard installation location for your tools, you can configure this in SublimeHaskell's "User Settings" by adjusting add_to_PATH. You will have to restart SublimeText after you save your preferences.
SublimeHaskell Theme
There is a special theme with enhanced Haskell entities and marks (errors, warnings and hints) coloring. Note different coloring for types and constructors (in import list, data declaration etc.), special coloring of generic variables in types, pragmas and module imports
Quickstart
Open the SublimeText Command Palette ( Ctrl-Shift-P or Option-Command-P on OS X) and type haskell to explore SublimeHaskell's goodness.
When editing Haskell source files, automatic error highlighting and enhanced auto-completion is available.
Each time you save, any errors in your program will be listed at the bottom of the window and highlighted in the source code.
All source files in the project are scanned on change. Any symbols that they export are provided in the auto-complete suggestions.
Stylish-haskell can be used to stylish file or selected text.
Use F12 to go to declaration and ctrl+k ctrl+i to show symbol info with documentation. These commands are also available through context menu with right-click.
To show inferred types use Show type (ctrl-k ctrl-h ctrl-t) command.
To insert inferred type use Insert type (ctrl-k ctrl-h ctrl-i).
You can jump between the errors and warnings with alt+d alt+e and alt+shift+d alt+shift+e.
To show hidden error output, use command Show error panel (ctrl-alt-e)
Features and SublimeHaskell Goodness
Stack support
Build commands such as Build, Clean, Install, Rebuild uses stack if there is stack.yaml near .cabal. If you don't want to use stack, set haskell_build_tool setting to cabal.
hsdev uses stack to build dependencies and to get corresponding package-dbs. Since 0.1.7.2 it passes --compiler and --arch options to stack to get package-dbs built with hsdev-compatible compiler.
Enhanced completion
Works in export list (showing symbols in scope), import list, expressions. Completes after module qualifier (several modules can be import qualified as with same qualifier). Takes into account module reexports for sources.
And you can autofix warnings/hints on popup for warnings/hints
Commands:
SublimeHaskell: Insert import for symbol — add import for declaration
SublimeHaskell: Find declarations — find declarations in installed packages and in projects
SublimeHaskell: Search declarations everywhere — search declarations in hayoo too
SublimeHaskell: Browse module — get declarations for module
SublimeHaskell: Browse declarations — get declarations in scope of current file
SublimeHaskell: Show symbol info — get help for symbol, ctrl+k ctrl+i
SublimeHaskell: Toggle symbol info panel — toggle continuout symbol info panel, which show info about symbol under cursor. Useful when reading code.
SublimeHaskell: Go to module — go to module, ctrl+k ctrl+p
SublimeHaskell: Go to declaration — overrides default, f12
Ctrl+R, Ctrl+Shift+R — overrides default, goto symbol and goto symbol in project
SublimeHaskell: Show type — show type/types for current expression, ctrl-k ctrl-h ctrl-t
SublimeHaskell: Expand selection to Expression — expand selection to expression, ctrl+shift+y
SublimeHaskell: Show/hide all types — get all types and highlight while selection modifies, ctrl+t, h
SublimeHaskell: Insert type — insert type for selected expression, ctrl-k ctrl-h ctrl-i
SublimeHaskell: Hayoo — search in hayoo
SublimeHaskell: Auto fix — auto fix some of warnings and/or errors (for now redundant imports and hlint hints)
SublimeHaskell: Stylish — stylish source with stylish-haskell
SublimeHaskell: Scan docs and infer types — as long as scanning docs for sources and inferring types is long process, it's disabled by default, but this command can be used to scan docs and infer types for currently opened view
SublimeHaskell: Check & Lint — check/lint/check & lint opened file. Enable option check_lint_fly to check & lint on idle, rescanning actual source, so that completions are updated
SublimeHaskell: Eval expression — evaluate expression in context of current module
SublimeHaskell: Expression type — evaluate expression type in context of current module
请发表评论