メニューを閉じる

テクノデジタルグループ

メニューを開く

2021.06.23

開発環境・ツール

haskell用IDEおよびデバッガインストール

■概要

haskell のIDEである haskell-language-server のVSCode拡張 Haskell for Visual Studio Code、
およびデバッガ Haskell GHCi Debug Adapter Phoityne
のインストールを行った際のメモになります。

■環境

OSはWindows10Pro
stackおよびghcはインストール済み。
なおstackのバージョンは2.7.1、ghcのバージョンは8.10.4

c:\dev\test\haskell>stack --version
Version 2.7.1, Git revision 8afe0c2932716b0441cf4440d6942c59568b6b19 x86_64 hpack-0.34.4
c:\dev\test\haskell>stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 8.10.4

■Haskell for Visual Studio Code のインストール

こちらをインストール
https://marketplace.visualstudio.com/items?itemName=haskell.haskell

その後、VSCodeでputStrLnにカーソルと合わせると、型の表示がされるようになりました。

■Haskell GHCi Debug Adapter Phoityne のインストール

こちらをインストール
https://marketplace.visualstudio.com/items?itemName=phoityne.phoityne-vscode

c:\dev\test\haskell>stack install haskell-dap ghci-dap haskell-debug-adapter

・・・(略)・・・

lens                             > [55 of 85] Compiling Control.Lens.Internal.FieldTH
conduit-extra                    > Registering library for conduit-extra-1.3.5..
lens                             > [56 of 85] Compiling Control.Lens.TH
lens                             > [57 of 85] Compiling Control.Lens
lens                             > [58 of 85] Compiling GHC.Generics.Lens
aeson                            > [18 of 24] Compiling Data.Aeson.Types.Class
lens                             > [59 of 85] Compiling Data.Vector.Lens
aeson                            > [19 of 24] Compiling Data.Aeson.Types
aeson                            > [20 of 24] Compiling Data.Aeson.Text
lens                             > [60 of 85] Compiling Data.Typeable.Lens
lens                             > [61 of 85] Compiling Data.Tree.Lens
lens                             > [62 of 85] Compiling Data.Sequence.Lens
lens                             > [63 of 85] Compiling Data.List.Lens
lens                             > [64 of 85] Compiling Data.IntSet.Lens
lens                             > [65 of 85] Compiling Data.Complex.Lens
aeson                            > [21 of 24] Compiling Data.Aeson
lens                             > [66 of 85] Compiling Data.ByteString.Strict.Lens
lens                             > [67 of 85] Compiling Data.ByteString.Lazy.Lens
aeson                            > [22 of 24] Compiling Data.Aeson.TH
lens                             > [68 of 85] Compiling Data.ByteString.Lens
lens                             > [69 of 85] Compiling Data.Bits.Lens
lens                             > [70 of 85] Compiling Data.Array.Lens
lens                             > [71 of 85] Compiling Control.Seq.Lens
lens                             > [72 of 85] Compiling Control.Parallel.Strategies.Lens
lens                             > [73 of 85] Compiling Control.Monad.Error.Lens
lens                             > [74 of 85] Compiling Control.Lens.Unsound
lens                             > [75 of 85] Compiling Control.Lens.Operators
lens                             > [76 of 85] Compiling Control.Lens.Extras
lens                             > [77 of 85] Compiling Control.Lens.Combinators
lens                             > [78 of 85] Compiling Control.Exception.Lens
lens                             > [79 of 85] Compiling Data.Dynamic.Lens
lens                             > [80 of 85] Compiling Numeric.Lens
lens                             > [81 of 85] Compiling Numeric.Natural.Lens
aeson                            > [23 of 24] Compiling Data.Aeson.QQ.Simple
lens                             > [82 of 85] Compiling Paths_lens
aeson                            > [24 of 24] Compiling Data.Aeson.Encode
lens                             > [83 of 85] Compiling System.Exit.Lens
lens                             > [84 of 85] Compiling System.FilePath.Lens
lens                             > [85 of 85] Compiling System.IO.Error.Lens
aeson                            > copy/register
aeson                            > Installing library in C:\sr\snapshots\bc295c76\lib\x86_64-windows-ghc-8.10.4\aeson-1.5.6.0-8wYwYCv8oIoCGtyEQZcFsl
aeson                            > Registering library for aeson-1.5.6.0..
lens                             > copy/register
lens                             > Installing library in C:\sr\snapshots\bc295c76\lib\x86_64-windows-ghc-8.10.4\lens-4.19.2-7Q00MKR54DVFFru2tZkQiv
lens                             > Registering library for lens-4.19.2..
Progress 74/76: fsnotify

↑ここで固まりますが、
以下を参考にさせていただきました。
https://qiita.com/yutasth/items/9df6e2c3937edad24aee

c:\dev\test\haskell>chcp 65001

Active code page: 65001

c:\dev\test\haskell>stack install haskell-dap ghci-dap haskell-debug-adapter

・・・(略)・・・

fsnotify             > Registering library for fsnotify-0.3.0.1..
haskell-debug-adapter> configure
haskell-debug-adapter> Configuring haskell-debug-adapter-0.0.34.0...
haskell-debug-adapter> build
haskell-debug-adapter> Preprocessing library for haskell-debug-adapter-0.0.34.0..
haskell-debug-adapter> Building library for haskell-debug-adapter-0.0.34.0..
haskell-debug-adapter> [ 1 of 30] Compiling Haskell.Debug.Adapter.Constant
haskell-debug-adapter> [ 2 of 30] Compiling Haskell.Debug.Adapter.Logger
haskell-debug-adapter> [ 3 of 30] Compiling Haskell.Debug.Adapter.TH.Utility
haskell-debug-adapter> [ 4 of 30] Compiling Haskell.Debug.Adapter.Type
haskell-debug-adapter> [ 5 of 30] Compiling Haskell.Debug.Adapter.Utility
haskell-debug-adapter> [ 6 of 30] Compiling Haskell.Debug.Adapter.State.Shutdown
haskell-debug-adapter> [ 7 of 30] Compiling Haskell.Debug.Adapter.State.Init.Initialize
haskell-debug-adapter> [ 8 of 30] Compiling Haskell.Debug.Adapter.State.GHCiRun.ConfigurationDone
haskell-debug-adapter> [ 9 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Threads
haskell-debug-adapter> [10 of 30] Compiling Haskell.Debug.Adapter.Response
haskell-debug-adapter> [11 of 30] Compiling Haskell.Debug.Adapter.Request
haskell-debug-adapter> [12 of 30] Compiling Haskell.Debug.Adapter.GHCi
haskell-debug-adapter> [13 of 30] Compiling Haskell.Debug.Adapter.State.Utility
haskell-debug-adapter> [14 of 30] Compiling Haskell.Debug.Adapter.State.GHCiRun
haskell-debug-adapter> [15 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Terminate
haskell-debug-adapter> [16 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.InternalTerminate
haskell-debug-adapter> [17 of 30] Compiling Haskell.Debug.Adapter.State.Contaminated
haskell-debug-adapter> [18 of 30] Compiling Haskell.Debug.Adapter.State.Init.Launch
haskell-debug-adapter> [19 of 30] Compiling Haskell.Debug.Adapter.State.Init
haskell-debug-adapter> [20 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Variables
haskell-debug-adapter> [21 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.StepIn
haskell-debug-adapter> [22 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.StackTrace
haskell-debug-adapter> [23 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Scopes
haskell-debug-adapter> [24 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Next
haskell-debug-adapter> [25 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun.Continue
haskell-debug-adapter> [26 of 30] Compiling Haskell.Debug.Adapter.State.DebugRun
haskell-debug-adapter> [27 of 30] Compiling Haskell.Debug.Adapter.Application
haskell-debug-adapter> [28 of 30] Compiling Haskell.Debug.Adapter.Watch
haskell-debug-adapter> [29 of 30] Compiling Paths_haskell_debug_adapter
haskell-debug-adapter> [30 of 30] Compiling Haskell.Debug.Adapter.Control
haskell-debug-adapter> Preprocessing executable 'haskell-debug-adapter' for haskell-debug-adapter-0.0.34.0..
haskell-debug-adapter> Building executable 'haskell-debug-adapter' for haskell-debug-adapter-0.0.34.0..
haskell-debug-adapter> [1 of 2] Compiling Paths_haskell_debug_adapter
haskell-debug-adapter> [2 of 2] Compiling Main
haskell-debug-adapter> Linking .stack-work\dist\274b403a\build\haskell-debug-adapter\haskell-debug-adapter.exe ...
haskell-debug-adapter> copy/register
haskell-debug-adapter> Installing library in C:\sr\snapshots\bc295c76\lib\x86_64-windows-ghc-8.10.4\haskell-debug-adapter-0.0.34.0-3DCUkK0Mele2PWESX8Mprc
haskell-debug-adapter> Installing executable haskell-debug-adapter in C:\sr\snapshots\bc295c76\bin
haskell-debug-adapter> Registering library for haskell-debug-adapter-0.0.34.0..
Completed 2 action(s).
Copying from C:\sr\snapshots\bc295c76\bin\ghci-dap.exe to C:\Users\xxxxxx\AppData\Roaming\local\bin\ghci-dap.exe
Copying from C:\sr\snapshots\bc295c76\bin\haskell-debug-adapter.exe to C:\Users\xxxxxx\AppData\Roaming\local\bin\haskell-debug-adapter.exe

Copied executables to C:\Users\xxxxxx\AppData\Roaming\local\bin:
- ghci-dap.exe
- haskell-debug-adapter.exe

今度はうまくいきました。

VSCodeでlaunch.jsonの設定を行って

ブレークポイントを設定して、デバッグを開始すると、きちんとブレークポイントで停止しています。

以上。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事