Simple GHC (Haskell) Integration for VSCode
Simple Haskell support using only GHCi.
Get vscode-ghc-simple from the Visual Studio Marketplace or run the following in Quick Open:
ext install dramforever.vscode-ghc-simple
Alternatively, if you want the latest and greatest, you can download
vsix files from Circle CI. Pick the latest build, and check out the 'Artifacts' tab.
This VSCode extension provides editing enhancements for Haskell development.
Currently implemented features:
Diagnostics: Basic squiggles and error messages. Automatic re-checking on save.
Completion: Crude completion with GHCi's
:complete command, with
:info lookup. Works okay with imported and top level identifiers.
Type: View types by selecting in the code. The minimal expression covering the selection will have its type shown. Implemented with
Definition and usages: See definitions amd references of identifiers. Supports both module level and local identifiers. Implemented with
uses. Does not yet support identifiers imported from packages.
Since around GHC 8, the compiler GHC and its interactive REPL GHCi has gained various tooling-related features. These allow for more tooling that communicate with the compiler using text IO and files, instead of a Haskell API. This project aims to explore the possibilities provided by said features, by implementing Haskell tooling within the editor VSCode.
vscode-ghc-simple.restart: Restart GHCi sessions
vscode-ghc-simple currently lacks a way of detecting changes of critical configuration files such as
*.cabal. Run this command whenever, had you been running GHCi manually, you would restart it.
ghcSimple.feature.*: Feature switches
Some users might want only a subset of the features provided in vscode-ghc-simple. These options can be used to disabled unneeded features.
ghcSimple.workspaceType: Workspace type
Override workspace type detection and force a certain workspace type (e.g.
Normally, vscode-ghc-simple will try to detect whether to use Stack or Cabal, or use a plain GHCi. Change this option in your workspace settings to specify such a type manually.
vscode-ghc-simple will default to Cabal new-style for workspaces with Cabal files.
ghcSimple.startupCommands.*: GHCi Startup commands
Commands to run at GHCi startup. Configures some common options.
Two of the command lists are semantically meant to configure GHCi for use by vscode-ghc-simple:
all: Commands for all workspaces
bare: Commands for standalone files (bare workspaces)
If you need to add more commands, it's suggested that you do so using the following command list, so that the previous to can be updated as needed in newer versions of vscode-ghc-simple:
custom: Custom commands for all workspaces
Change the options in workspace settings instead of user settings if you want to apply the settings to a workspace locally.
ghcSimple.useObjectCode: Speed up GHCi reloads using
Enabled by default. Load everything with
-fobject-code first before loading needed files with
-fbyte-code. This way only changed files need to be recompiled, which greatly speeds up GHCi on large projects.