...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

vscodeのターミナルに出るdmdのコンパイルエラーからctrl+clickでジャンプできないので拡張機能code-dの最新開発版を取得してインストールする件について

目標

Visual Studio Code (vscode) で、D言語のソースをコンパイルしたときにターミナルに出るファイル名と行番号(マウスホバーで下線が出る部分)を ctrl+click して、そのファイルの該当行へジャンプできるようにする。

試行錯誤

最初から、問題タブでは ctrl+click で各行にジャンプできていた。

vscode メニューの「ターミナル>タスクの構成」で表示される、problemMatcher に設定されている $dmd 定義が怪しかったが、ここの設定はターミナルの構文解析には使われていなかったようだ。

私が vscode のソースを読んだり Twitter でぐだぐだしてる間に Issue を出してくださった。 これが 0:53 の時点。

報告に対して修正版がコミットされたのが 03:03 の時点。code-d の改修早すぎだろ!

最新開発版 code-d のインストール

手動での code-d のインストール方法としてこう書かれているが、実際に拡張機能をインストールして動かすまでにはまだ作業が必要なようだった。

github.com

git clone

まず ~/.vscode/extensions/code-d に clone せよと書かれているが、ここにファイルを作っても vscode を起動したら勝手に消されてしまったので、別の場所に clone する。 もちろん git のインストールができている必要がある。実行ファイルへのパスの設定も必要。

npm と vsce

次に、公式の手順に沿ってコマンドを実行するが、ここでかなりはまってしまった。

結局、npm と node.js が滅茶苦茶古いものがインストールされていたのと、python をインストールしてない環境だったので、エラー祭りになった。

まずは古い node.js をアンインストールし、node.js 公式サイトから最新版をダウンロードしてきてインストールする。これで npm と node が最新版になって、npx も実行できた。

なお、あとでvsceを実行したときに、npx tscが実行されるようなので、npxを手動で実行する必要はなさそう。

(もしかしたら、npm や node.js を npm でインストールしようとしていたときに、Python を求められていたのかもしれないので、次の Python のインストールを一度飛ばして進めてみることをおすすめする。 また、Python をインストールしてもエラーになって環境変数 PYTHONpython.exe の実行ファイルのフルパスを設定せよと言われたら、次のように設定した PowerShell で作業する。パスは例。)

> $Env:PYTHON="C:\Python27\python.exe"

Windows10 で PowerShell から python を実行すると、python がインストールされていなかったので Microsoft Store が開いて Python3 のインストールを推奨された。 そのまま従って入れたら、2系じゃないとダメだった。 2系をダウンロードしてきてインストールし、3系へのパスよりも2系のパスを上位に設定して対処した。

progzakki.sanachan.com

vscode拡張機能を読み込ませるために、公式サイトに書かれていない手順を追加で実行し、パッケージ化する。

vsce コマンドを実行すると、 *.vsix ファイルが生成される。 これで拡張機能がインストールできる。

vsceがインストールされていないというメッセージが出たら、

npm install -g vsce

拡張機能のインストール

code-d のバージョン番号が修正されていないので、vscode 上で検索してインスト-ルしてある方と区別が付かないもよう。 先にインストール済みの方を消した方が無難と思い、アンインストール。

「VSIX からのインストール」で、生成された *.vsix ファイルを選択し、最新開発版をインストールする。

これにて終了である。

謝辞

情報提供など、ありがとうございました。