kotonoha_pcg@気ままに雑記

kotonoha_pcgが気分次第で様々書き置きます.dlang関係他:http://kotonoha-pcg.hatenadiary.com

Windows版IntelliJ IDEA CommunityにD言語拡張をインストールして補完機能を使う

タイトルが長すぎた... :-(

先に

Community版の利用用途とか怪しい所があるので、実行するのは自己責任で。責任は負いません。


dlang、去年の冬なんかはVimで書いてたり、VSCode + Terminalという手を使って書いていた。が、この度Linux環境ではなくWindows環境で書く必要があって、かつcode-dの依存関係が面倒だったことを覚えていたため、「IDEAあたりなら何かあるんじゃない」と思ってググったらあった。

[Intellij Dlanguage] :https://github.com/intellij-dlanguage

これが面白くて、入れただけじゃ動かなくて(それはそう)、コード補完機能を使えるようにするまでやった手順を書きます。いろんなとこ寄り道してたり飯食ったりしてたら3時間掛かっちゃった...

前提条件

作業環境

  • Windows10 Pro x86_64
  • DMD-2.083.1
  • DUB-1.11.0
  • cmd.exe, explorer
  • IntelliJ IDEA 2018.2.5 (Community Edition)
    • Build #IC-182.4892.20, built on October 16, 2018

直接必要ではないけど、たまにコードや情報見たときに使ったもの: VSCode, Google Chrome


作業

  1. スクリプトを叩いて各種ツールを落としてくる

    https://github.com/SeijiFujita/quiita_works/blob/master/using_vscode_02/Build.bat

    システムのPathを通しておく。

    cmdが閉じるとBin, DCD, DScanner, dfmt, workspace-dの5つ(だったっけ?)のディレクトリが生成されるので、 中身をDUBで叩いていく。

  2. DUB(他)でビルドする

    1. workspace-d

      ここだけ手抜きで申し訳ないが、ディレクトリ内にあるinstall.batを叩いて終わり。DCD、DScanner、dfmtの依存関係はallで。

    2. DCD

      https://github.com/dlang-community/DCD

      README.mdの中の"DUB"ってところを使います。DCDはクライアントとサーバとで機能が分離されているのでexeを2個作ることになる。 dub build --build=release --config=client dub build --build=release --config=server

    3. DScanner

      https://github.com/dlang-community/D-Scanner

      相変わらずDUBで。と思ったら、dscがなんか無いって怒られてしまうので、上にあったREADME.md内のテストの項にbuild.batがあるので適当にそれを叩く。

      出力も変わらないし、なんも変化ないんで待つ。

    4. dfmt

      https://github.com/dlang-community/dfmt

      dub fetch --version='~master' dfmt && dub run dfmt -- -h で終わるはずなんだが、--version='~master'のところが無いって怒られるので、 dub fetch dfmt && dub run dfmt -- -h で叩く。

  3. Binディレクトリに全てをまとめる

     まぁ、正直要らないような気もしますが出来上がったexeを一括管理できた方が楽なんで、1つのディレクトリにまとめる。最初に出来上がったBinに、workspace-d以外のツールのディレクトリ/binに生成されたexeを入れていく。

  4. IntelliJ IDEA側で設定する

     Alt + F + tで設定を開き、Languages & Frameworks→D Toolsで、Dub他各種項目のPath:を、3.でまとめたBinディレクトリに設定していく。

    なお、自分の環境ではAuto Findはさっぱり動かなかった(たぶんDUBでビルドしてないのが影響してるのではと予想してるけど)ので、最初から手動でやった方が速い。

  5. 再起動

    これは文字通り。


ここまでやって、Event Logに何も出てなかったら大体オッケー。あとは適当なソースを開いてCtrl + Spaceで出てくれば終わり。

画像

f:id:kotonoha_pcg:20181224033235p:plain
補完発動例

まとめ

自分の設定が悪いだけなんだろうけど、それでも補完が動いて表示されるまでがかなり遅いなぁ、と思いながらこの記事を書いてます。まぁ、そこらへんは調整すればなんとかなるんじゃないかなぁ。なればいいなぁ。