@hackage phoityne-vscode0.0.9.0

ghci debug viewer on Visual Studio Code

Phoityne VSCode

Phoityne is a ghci debug viewer for Visual Studio Code.

Information

  • [2016/09/19] phoityne-vscode released.
    for VSCode-1.5, updated vscode extension and haskell library. Please use new versions.
  • Release Summary
    • Implemented the completions request to provide suggestion proposals for ghci repl in the Debug Console.
    • Some improvements and bug fixes.

Debug on VSCode

  1. Start VSCode
  2. Open stack project folder
  3. Open debug view
  4. Open launch.json
  5. Set startup source file. Default file is test/Spec.hs
  6. Run debug(F5)

Demo Video1

Key Bindings

  • F5 : start debug
  • F6 : show command menu (for stack watch)
  • Shift + F6 : stop stack watch
  • F7 : stack clean & build
  • F8 : stack test

Important

  • Breakpoint can be set in a .hs file which defineds "module ... where".
  • Source file extension must be ".hs"
  • When you start debugging for the first time, .vscode/tasks.json will be created automatically. Then you can use F6, F7, F8 shortcut key.

Install

Run stack install

% stack install phoityne-vscode
  . . . . .
%

Add 'phoityne-vscode.exe' to PATH environment.

% where $path:phoityne-vscode.exe
C:\Users\[user name]\AppData\Roaming\local\bin\phoityne-vscode.exe

%

Install vscode extensions

  1. ctrlr + p on Visual Studio Code
  2. ext install haskell ...
  3. select "Haskell GHCi debug viewer Phoityne"

Capabilites

  • supportsConfigurationDoneRequest : yes
  • supportsFunctionBreakpoints : yes
  • supportsConditionalBreakpoints : yes
  • supportsEvaluateForHovers : yes
  • exceptionBreakpointFilters : no
  • supportsStepBack : no
  • supportsSetVariable : no
  • supportsRestartFrame : no
  • supportsGotoTargetsRequest : no
  • supportsStepInTargetsRequest : no
  • supportsCompletionsRequest : yes

Configuration

.vscode/launch.json

NAME REQUIRED OR OPTIONAL DEFAULT SETTING DESCRIPTION
startup required ${workspaceRoot}/test/Spec.hs debug startup file, will be loaded automatically.
ghciCmd required stack ghci --test --no-load --no-build --main-is TARGET launch ghci command, must be Prelude module loaded. For example, "ghci -i\({workspaceRoot}/src", "cabal exec -- ghci -i\){workspaceRoot}/src"
ghciPrompt required H>>= ghci command prompt string.
logFile required ${workspaceRoot}/.vscode/phoityne.log internal log file.
logLevel required WARNING internal log level.

.vscode/tasks.json

TASK NAME REQUIRED OR OPTIONAL DEFAULT SETTING DESCRIPTION
stack build required stack build task definition for F6 shortcut key.
stack clean & build required stack clean && stack build task definition for F7 shortcut key.
stack test required stack test task definition for F8 shortcut key.
stack watch required stack build --test --no-run-tests --file-watch task definition for F6 shortcut key.

Version history