起きていた問題

WSL2内でcodeコマンドを実行してVS Codeを起動すると、WSL内のオープンにならず、\\wsl.localhost\Ubuntu-24.04\home\userのようなパスで開かれてしまう問題が起きていた。
そのため、毎回VS Code内で「Reopen Folder in WSL」を実行しなければならなかった。
原因

WSL内のcodeコマンドが/mnt/c/Program Files/Microsoft VS Code/bin/codeに解決されている場合、まずVS CodeのCLIにWSL拡張のインストール場所を問い合わせ、それが見つかればWSLリモートで開き、見つからなければWindowsのCode.exeで開くという挙動をしていた。そのため、VS CodeのCLIからWSL拡張のインストール場所を見つけられないことが問題の原因だった。
WSL拡張の実体はWindows側のフォルダ(C:\Users\<ユーザー名>\.vscode\extensions)に存在していたが、VS CodeのCLIは既定プロファイルの拡張フォルダ1しか見ていないらしい。そのため、特定のプロファイルでWSL拡張を入れていても、既定のプロファイルにWSL拡張が入っていなければ、WSLからcodeコマンドで起動した場合にWSL拡張を見つけられない。
対処

対処は簡単で、既定のプロファイルにWSL拡張をインストールすれば解決する。
具体的には
C:\Users\<ユーザー名>\.vscode\extensions\extensions.jsonのみを参照している。 ↩︎
