Visual Studio Code(ビジュアルスタジオ・コード、VS Code)はMicrosoftが開発しているWindows、Linux、macOS、Web用のソースコードエディタである。Electronをベースにしており、デバッグ、埋め込みGitコントロールとGitHub連携、シンタックスハイライト、インテリジェントなコード補完 、スニペット、コードリファクタリングのサポートが含まれる。カスタマイズ性が高く、テーマやキーボードショートカット、環境設定を変更できたり、機能を追加する拡張機能をインストールすることができる。ソースコードはフリーかつオープンソースで、寛容なMITライセンスの下でリリースされている。コンパイルされたバイナリはプロプライエタリソフトウェアである。

Stack Overflow 2024 Developer Surveyでは、Visual Studio Codeが最も使用されている統合開発環境(エディタを含む)としてランクインし、複数回答ありで73.6%が使用していると回答した
。

## 歴史

Visual Studio Codeは、マイクロソフトの開発者会議Build 2015(2015年4月29日)にて公開され、プレビュー版がリリースされた。

2015年11月18日、Visual Studio Codeはリリースされ、その一部ソースコードがGitHubにMIT Licenseのもとで公開された。その際、拡張機能のサポートも追加された。

## 機能

Visual Studio Codeのソースコードエディタの機能は、以下の一覧に示されるように、プログラミング言語ごとにサポートの有無が異なっている。プラグインによって他の言語もサポートできる。

プログラミング言語ごとのサポートされる機能

| 機能 | プログラミング言語 |
| --- | --- |
| シンタックスハイライト | - バッチファイル - C++ - Clojure - CoffeeScript - Docker - F# - Go - Jade - Java - Handlebars - INIファイル - Lua - Makefile - Objective-C - Perl - PowerShell - Python - R - Razor - Ruby - Rust - SQL - Visual Basic - XML |
| スニペット | - Groovy - Markdown - PHP - Swift |
| インテリセンス | - CSS - HTML - JavaScript - JSON - LESS - Sass |
| リファクタリング | - C# - TypeScript |
| デバッグ | - JavaScriptとTypeScript (Node.js) - C#とF# (Mono) |

Visual Studio Codeの機能の多くはメニューやユーザーインタフェースを通して公開されていない。代わりに、コマンドパレット(例: スニペットの挿入)あるいは.json設定ファイル(例: ショートカットキーの設定)を経由してアクセスする。コマンドパレットはキャラクタユーザインタフェースの一種である。

ディレクトリを開くことで、そのディレクトリに含まれる複数のファイルがツリー状に表示される。開いたファイルはタブにも表示され、タブを切り替えながら複数のファイルを並行して編集できる。ただしWeb版の場合、Google ChromeやMicrosoft Edgeなど一部のChromium系ブラウザでしかディレクトリを開くことはできない。これは、Visual Studio CodeがFile System Access APIというAPIを使用してディレクトリを操作するためである

また、テキストエディタの基本的な機能として、文書の保存時にコードページを変更したり、改行コードを統一することもできる。対応する括弧の表示、複数カーソル、矩形選択、ブロック単位の選択拡張と折り畳み、Gitリポジトリと比較しての変更行の表示などの機能を持つ。

その他に、ウィンドウ内で統合された端末を開くことや、ウェブ上に公開された機能拡張をダウンロードしインストールすることもできる。

### リモート開発

Microsoftが提供する拡張機能パック「Remote Development」(2020年2月26日現在Preview版)を導入することで、リモート環境での開発が可能になる。対応するリモート環境は以下の3つである。

- リモートマシン/VM with SSH
- コンテナ
- Windows Subsystem for Linux

#### コンテナ

拡張機能「Visual Studio Code Remote - Containers」を利用することでDockerコンテナ内での開発が可能になる。

Docker Desktop 2.0+ あるいはDocker CE/EE 18.06+がインストールされたホストマシンからコンテナ内の開発環境を操作できる。ホストマシンにプログラミング言語実行環境をインストールしなくてもコンテナ内でコーディング支援・デバッグ等が利用可能になる。

コンテナを利用する場合、いくつかの方法が存在する。そのうちの1つはGitリポジトリから直接コンテナを生成する方法である。開発環境コンテナとしての設定がdevcontainer.jsonに記述されたGitリポジトリは、VS Code上で明示的なClone無しにコンテナ化が可能である。この「Repositoryコンテナ」生成時にはGitリポジトリがDockerのVolumesへ保存される(bind mountsではない。参考: Docker#永続化)。

この機能はコンテナ内にVS Code Serverを建てることで実現されている。ローカルでVS Codeを実行するのと同様にコンテナ内でVS Code(Server)が立ち上がっており(/root/.vscode-server)、クライアント(ローカル)側でおこなったVS Code UI操作をコンテナへ送信することで透過的にコンテナ内開発を行うことができる。

生成された開発環境(volume)はVS Code の Remote Explorer タブから管理(アクセス・削除)が可能である。実体は Docker の Containers および Volumes であるため、Docker 側からの削除も可能である。

## 評価

2016年のStack Overflowによる調査では、Visual Studio Codeは、13番目に人気のある開発ツールで、46613人のうち、7.2%がこれを使っていた。しかしながら、2019年の調査では、Visual Studio Codeは1位に位置し、87317人の回答者のうち、50.7%がこれを使っていた。2021年の調査でも、82,277人の回答者の71.06%が利用していると答え、1位であった。

Visual Studio Codeは、Java、JavaScript、Go、Node.js、C++など様々な領域でフレキシブルに利用可能である。

## マイクロソフトによるデータの収集

Visual Studio Codeは、「Code - OSS」リポジトリの配布物にマイクロソフト独自のカスタマイズを施し、通常のマイクロソフトの製品ライセンスの下でリリースされている。また、Visual Studio Codeは使用状況に関するデータを収集し、マイクロソフトに送信する。ただし、このテレメトリー・レポーティングは無効にすることができる。

VSCodiumは、もうひとつのこのソフトウェアのバイナリディストリビューションであり、これはオープンソースの部分のみを使い、マイクロソフトの商標やテレメトリーコンポーネントは除去されている。しかし、他の面においては完全に機能し、互換性がある。