vscodeのターミナルに出るdmdのコンパイルエラーからctrl+clickでジャンプできないので拡張機能code-dの最新開発版を取得してインストールする件について
目標
Visual Studio Code (vscode) で、D言語のソースをコンパイルしたときにターミナルに出るファイル名と行番号(マウスホバーで下線が出る部分)を ctrl+click して、そのファイルの該当行へジャンプできるようにする。
試行錯誤
最初から、問題タブでは ctrl+click で各行にジャンプできていた。
vscode メニューの「ターミナル>タスクの構成」で表示される、problemMatcher に設定されている $dmd 定義が怪しかったが、ここの設定はターミナルの構文解析には使われていなかったようだ。
私が vscode のソースを読んだり Twitter でぐだぐだしてる間に Issue を出してくださった。 これが 0:53 の時点。
https://t.co/3dpHIDu9AV
— SHOO (@mono_shoo) 2022年12月14日
とりあえず報告。
報告に対して修正版がコミットされたのが 03:03 の時点。code-d の改修早すぎだろ!
最新開発版 code-d のインストール
手動での code-d のインストール方法としてこう書かれているが、実際に拡張機能をインストールして動かすまでにはまだ作業が必要なようだった。
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 をインストールしてもエラーになって環境変数 PYTHON に python.exe の実行ファイルのフルパスを設定せよと言われたら、次のように設定した PowerShell で作業する。パスは例。)
> $Env:PYTHON="C:\Python27\python.exe"
Windows10 で PowerShell から python を実行すると、python がインストールされていなかったので Microsoft Store が開いて Python3 のインストールを推奨された。 そのまま従って入れたら、2系じゃないとダメだった。 2系をダウンロードしてきてインストールし、3系へのパスよりも2系のパスを上位に設定して対処した。
vscode に拡張機能を読み込ませるために、公式サイトに書かれていない手順を追加で実行し、パッケージ化する。
vsce コマンドを実行すると、 *.vsix ファイルが生成される。 これで拡張機能がインストールできる。
vsceがインストールされていないというメッセージが出たら、
npm install -g vsce
拡張機能のインストール
code-d のバージョン番号が修正されていないので、vscode 上で検索してインスト-ルしてある方と区別が付かないもよう。 先にインストール済みの方を消した方が無難と思い、アンインストール。
「VSIX からのインストール」で、生成された *.vsix ファイルを選択し、最新開発版をインストールする。
これにて終了である。
謝辞
情報提供など、ありがとうございました。