phoityne-vscode: ghci debug viewer on Visual Studio Code

[ bsd3, development, program ] [ Propose Tags ]

Please see README.md


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1.0, 0.0.2.0, 0.0.3.0, 0.0.4.0, 0.0.5.0, 0.0.6.0, 0.0.7.0, 0.0.8.0, 0.0.9.0, 0.0.10.0, 0.0.11.0, 0.0.12.0, 0.0.13.0, 0.0.14.0, 0.0.15.0, 0.0.16.0, 0.0.17.0, 0.0.18.0, 0.0.19.0, 0.0.20.0, 0.0.21.0, 0.0.22.0, 0.0.23.0, 0.0.24.0, 0.0.25.0, 0.0.26.0, 0.0.27.0, 0.0.28.0
Change log Changelog.md
Dependencies aeson, base (>=4.7 && <5), bytestring, Cabal, cmdargs, conduit, conduit-extra, ConfigFile, containers, directory, filepath, fsnotify, hslogger, MissingH, mtl, parsec, process, resourcet, safe, split, text, transformers [details]
License BSD-3-Clause
Copyright 2016-2017 phoityne_hs
Author phoityne_hs
Maintainer phoityne.hs@gmail.com
Category Development
Home page https://github.com/phoityne/phoityne-vscode
Bug tracker https://github.com/phoityne/phoityne-vscode/issues
Uploaded by phoityne_hs at 2017-09-09T22:36:01Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables phoityne-vscode
Downloads 18688 total (59 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2017-09-09 [all 3 reports]

Readme for phoityne-vscode-0.0.16.0

[back to package description]

Phoityne VSCode

Phoityne is a ghci debug viewer for Visual Studio Code.

Information

10_quick_start.gif
(This sample project is available from here.)

Important

  • LIMITATION: Breakpoint can be set in a .hs file which defineds "module ... where".
    Phoityne can handle modules which match its folder hierarchy and file name.
  • LIMITATION: Source file extension must be ".hs"
  • LIMITATION: Can not use STDIN handle while debugging.
  • LIMITATION: Changing ghci prompt is not allowed in the .ghci file.
  • When you start debugging for the first time, .vscode/tasks.json will be created automatically. Then you can use F6, F7, F8 shortcut key.
    • F5 : start debug
    • F6 : show command menu (for stack watch)
    • Shift + F6 : stop stack watch
    • F7 : stack clean & build
    • F8 : stack test
    • F9 : put bp on current line
    • Shift + F9 : put bp on current column
  • While debugging, you can use F5, F9, F10, F11 shortcut key.
    • F5 : jump to next bp
    • F9 : put bp on the line
    • Shift + F9 : put bp on the column
    • F10 : step next
    • F11 : step into

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

% phoityne-vscode --version
phoityne-vscode-0.0.15.0
%
% code

Install vscode extensions

  1. run VSCode and open stack project Folder from file menu.
  2. open Extensions from side menu of VSCode.
  3. search "haskell"
  4. select "Haskell GHCi debug viewer Phoityne"

Features

Run to Cursor

03_run_to_cursor.gif

Bindings & Watch

The variable added to watch will be forced.

02_watch.gif

Stack trace

05_stacktrace.gif

Break condition

04_condition.gif

Hit count break condition

Supports these operators.

  • ==
  • /=
  • <, >
  • <=, >=
  • mod, %
  • just digit is same with '>='

07_hit_count.gif

Break on Exception

08_exception.gif

Repl & Completions

06_repl.gif

Capabilites

  • supportsConfigurationDoneRequest : yes
  • supportsFunctionBreakpoints : yes
  • supportsConditionalBreakpoints : yes
  • supportsHitConditionalBreakpoints : yes
  • supportsEvaluateForHovers : yes
  • exceptionBreakpointFilters : yes
  • supportsStepBack : no
  • supportsSetVariable : no
  • supportsRestartFrame : no
  • supportsGotoTargetsRequest : no
  • supportsStepInTargetsRequest : no
  • supportsCompletionsRequest : yes
  • supportsModulesRequest : no
  • additionalModuleColumns : no
  • supportedChecksumAlgorithms : no
  • supportsRestartRequest : no
  • supportsExceptionOptions : no
  • supportsValueFormattingOptions : no
  • supportsExceptionInfoRequest : no
  • supportTerminateDebuggee : no
  • supportsDelayedStackTraceLoading : no

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 --ghci-options -fprint-evld-with-show 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.
stopOnEntry required true stop or not after debugger launched.
logFile required ${workspaceRoot}/.vscode/phoityne.log internal log file.
logLevel required WARNING internal log level.
mainArgs optional - main arguments.

.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.