MicrosoftがVisual Studio Codeエディタのクラウドベースバージョンをvscode.devドメインからローンチした。インストールを必要としない、ブラウザからすぐに実行可能な軽量版だ。
デスクトップ版と同等ではないものの、このVisual Studio Code for the Webでは、File System Access APIをサポートするブラウザ上でのローカルファイル編集、シンタックスカラーリング、テキストベースの比較、シンタックスハイライト、エラー表示など、数多くの機能が提供されている。ただし、完全にブラウザ上で動作しなければならないという理由から、これらの機能が実際に使用可能かどうかは個々の言語によって異なっている。
具体的には、GoやRust、C/C++、PHP、Javaといった、Microsoftが一般的にソースファイルの保守、編集、ナビゲーション、ブラウジングを行っているほとんどのプログラミング言語で良好に動作する。これらの言語については、コード構文のカラー表示やテキストベースの比較、カッコ対応のカラー表示などがサポートされる。TypeScriptやJavaScriptやPythonに関しては、ブラウザネイティブな新たな言語サービスの実装が使用されており、単一ファイルの補完やセマンティックハイライト、構文エラーといった機能がさらにサポートされている。
デスクトップ版のVisual Studio Codeの強力な部分は、新たな機能をエディタに追加することによって、多くの開発者の生産性の向上やワークフローのカスタマイズを可能にする、豊富なエクステンションにある。当然ながらWeb版では、デスクトップ版で使用可能なVisual Studio Codeエクステンションのすべてを使用することはできない。
VS CodeをWebで使用する場合、インストール済のエクステンションは、ブラウザ内のエクステンション用ホストの中で実行されます。これが"Webエクステンションホスト"で、Webエクステンションホストで実行可能なエクステンションは"Webエクステンション"と呼ばれています。
エクステンションは同じVS Code APIを共用するので、Node.js APIを使用したりモジュールをロードしたりすることはできない。Microsoftによれば、UIカスタマイズ系のエクステンションの大部分は動作するが、OS依存のnpmモジュールを必要とするものや、ローカルの実行ファイルを起動するものは動作しないということだ。
Microsoftは、JavaScriptを含むエクステンションを新しいWebエクステンションアーキテクチャに移行するステップについて、詳細に説明している。さらに、Microsoftが言語サーバプロトコルをVS Code Webに移行した時の作業内容が、実行可能なサンプルとともに、マイグレーションプロセスのリファレンスとして提供されている。VS Code Webに移植された他の複雑なエクステンションとしては、Luna PaintイメージエディタやGitHub Issue Notebooksなどがある。
VS Code Webには、GitHubを使った作業を可能にするエクステンションが数多く添付されており、クイック編集の実施やプルリクエストのレビューの他、よりパワーが必要な作業ではローカルクローンやGitHub Codespaceに即時スイッチすることができる。
VS Code for Webの外観は、GitHubのレポジトリやプルリクエストから直接アクセス可能なブラウザベースのエディタであるgithub.devに近い。どちらもVS Codeをベースとしているためだが、2つのソリューションの大きな違いは、github.dev
がGitHubに深く統合されているのに対して、VS Code Webの方は複数のリポジトリホスティングサービスでの作業を目的としている点だ。対象となるホスティングサービスはGitHubやAzure Reposの他、エクステンションを使ってさらに追加することもできる。
VS Code WebがGitHub Codespacesと大きく異なる点も注目に値する。後者もVS Codeをベースとしている点は同じだが、プラグインをインストールしてビルドスクリプトやGitHub Actionsなどの実行が可能な環境全体を提供している。またCodespacesは、現時点ではチームユーザと企業ユーザに使用が限定されている。その他のポータブルなクラウドベースの開発環境に興味があるならば、gitpod.ioやEclipse Cheを調べてみるとよいだろう。
Hacker Newsの開発者たちは、VS Code for Webの発表を好意的に受け止めており、特にその応答性や、開発環境をあるデバイスから別のデバイスに透過的かつ簡単に移行可能であること、作業中断時にまったく同じ状態から再開できることなどを高く評価している。さらに、多くの開発者が、オフラインや教育目的においてiPadやAndroidタブレットを開発作業に使用するという、新たな便利さも示唆している。この場合に有効なヒントは、起動画面から直接エディタを起動可能なアプリケーションショートカットを作成しておくことだ。こうすることでブラウザのクロム(chrome、めっき)が排除され、エディタがコントロールキー入力を正しく処理できるようになる。否定的な意見としては、VS Code Webが部分的にクローズドソースであることから、将来的にライセンシングや価格が変更される可能性のある開発環境にロックインされるリスクがあるのではないか、と一部の開発者が懸念を示している。
Visual Studio Code for the WebはChromeやEdgeなど、最新のブラウザ上で実行する場合に最もよく機能する。特にSafariでは、その制限のため、ローカルファイルの使用がサポートされていない。