VSCodeを使っているとExtensionを最新版アップデートをした後、以前のバージョンに戻したくなることもあるかと思います。この記事では古いバージョンのExtensionをインストールする方法について書きます。
方法
VSCodeのExtensionインストールからは最新バージョンしかインストールできません。そのため、ソースコードをビルドしてローカルでインストールする方法をとります。
前提条件
古いバージョンのExtensionのソースコードをダウンロードするので、ソースコードがGithubなどで公開されている必要があります。大抵のExtensionはGithubで公開されていると思います。
前準備
ソースコードをビルドする際に npm を使うので、Node.jsをインストールしておいてください。
ダウンロード
ここからは vscode-ruby の v0.16.0 (執筆時点で最新版はv0.17.0 )のインストールを例に解説していきます。まず Github の リリースページ から各バージョンのソースコードをダウンロードします。(zipとtar.gzがありますが、どちらでも問題ないです。念のため)
ダウンロードしたソースコードは解凍して、 extension用フォルダに配置します。extension用フォルダはOSごとにパスが違います。
- macとLinuxの場合は
$HOME/.vscode/extensions - windowsの場合は
%USERPROFILE%\.vscode\extensions
となります。私はmacを使っているので $HOME/.vscode/extensions に配置します。
mv ~/Downloads/vscode-ruby-0.16.0 ~/.vscode/extensions
ビルド
ソースコードのフォルダに移動してビルドを行います。ソースコードのビルドは基本的に vscode:prepublish というnpm-scriptsを実行することでできます。
(一部のExtensionはビルドが必要ありません。その場合はソースコードをExtension用フォルダに配置した後、VSCodeを再起動すればインストール完了です。 package.json の scripts に vscode:prepublish が定義させれていなければビルドが必要ないとみなして良いと思います。)
まずはビルドを行うために必要な node_modules をインストールします。
cd ~/.vscode/extensions/vscode-ruby-0.16.0
npm install
次にビルドを実行します。
npm run vscode:prepublish
完了
ビルドが終わったら VSCode を再起動するとExtensionのインストールが完了です。
vscode-ruby の 0.16.0 がインストールできました。

おまけ
VSCodeはデフォルトではExtensionのアップデートが自動で行われますが、意図せずExtensionが最新バージョンに上がってしまうのを防ぐために extensions.autoUpdate を false にしておくと良いです。Changelogを確認した上でバージョンをあげましょう。