VS Code をローカル環境(Dev Container)でビルドする
概要
VS Codeのソースを、Dev Container 上でビルドして起動するまでの記録。
検証日: 2026-10-24
1. リポジトリを clone し、release/1.142 ブランチに切り替える
2. VS Code で開き、通知から「ボリュームでクローン」を選んで Dev Container を起動する
3. コンテナ内で npm install が失敗することを確認し、原因を調べる
4. コンテナ内でコンパイラを clang に切り替えて、npm install が通ることを確認する
5. .devcontainer/post-create.sh に clang の導入を書き足し、コンテナを Rebuild して、./scripts/code.sh で VS Code の起動を確認する
結果は、末尾の「結論」と「注意点」にまとめている。
環境
| 名前 | ID | バージョン |
|-|-|-|
| ホストOS | - | Windows 11 Pro 26H2(26300.9711) |
| PowerShell | Microsoft.PowerShell | 7.6.8.0 |
| Git | Git.Git | 2.55.0.2 |
| Docker Desktop | Docker.DockerDesktop | 4.96.0 |
| Docker への割り当て | - | WSL2 バックエンド / CPU: 16 / メモリ: 14.52 GB |
| Microsoft Visual Studio Code (User) | Microsoft.VisualStudioCode | 1.143.1 |
| Dev Containers 拡張 | - | ms-vscode-remote.remote-containers@0.469.0 |
ログ上、ホストのカーネルは WSL2(6.18.54.1-microsoft-standard-WSL2)だった。
コンテナ側(調査で確認した値):
| 項目 | 値 |
|-|-|
| OS | Debian 12 (bookworm) |
| gcc / g++ | 12.2.0 |
| Python | 3.11.2 |
| Node | 24.21.0(.nvmrc は 24.18.0 で、ずれていた。今回の失敗の原因とは見ていない) |
| ビルド対象ランタイム | Electron 43.7.7(.npmrc の runtime="electron" / target="43.7.7") |
手順
以下のホスト側の作業は PowerShell 上で実施。
git clone https://github.com/microsoft/vscode.git
cd vscode
簡易な手順で再現性を高めるため、リリース済みの VS Code 1.143.1 のひとつ前にあたる release/1.142 ブランチに切り替える。
main は日々変わるが、release/1.142 は先日の確認時から変わっていなかった。
なお、main のままでも、後述のとおり同じエラーで失敗する。
git switch release/1.142
git rev-parse HEAD
release ブランチも後から更新されうるため、git rev-parse HEAD の結果を、下表の検証したコミットと照合する。
一致しない場合は、ブランチが更新されている。
「ボリュームでクローン」ではリモートから新たにクローンされるので、コンテナ起動後に、コンテナ内のターミナルでも同じ確認をすると確実。
検証したコミット:
| ブランチ | コミット | 初期状態(clang 導入前)の npm i |
|-|-|-|
| main | b3ce41974e82428b77417f6654976737e4d0b2a7 | 失敗(同じエラー) |
| release/1.142 | 6d62b1d5dace93a33b3a6d3eca1317bd5e15bcb1 | 失敗 |
VS Code を起動する。
code .
起動後、しばらく待つと、「コンテナーで開発するフォルダーをもう一度開きます。」という通知が表示される。
選択肢はブランチの upstream の有無で変わる。
- (a) ブランチの upstream が設定されている場合: 「コンテナーで再度開く」と「ボリュームでクローン」の2択
!upstream あり: 2択の通知
- (b) ブランチの upstream が設定されていない場合: 「コンテナーで再度開く」のみ
!upstream なし: 1択の通知
「ボリュームでクローン」は (a) のときだけ選べる。
ここでは「ボリュームでクローン」を選択する。
(b) になった場合
- ブランチの upstream を設定し直して、VS Code を開き直す。
git branch --set-upstream-to=origin/release/1.142
- または、コマンドパレットから Dev Containers: Clone Repository in Container Volume... を直接実行し、リポジトリのURLを入力する。
ブランチはプルダウンで選択できる。
タグは選択できない。
タグで作業したい場合は、ブランチでクローンしたあと、コンテナ内で git switch -c <ブランチ名> <タグ名> を実行する。
コンテナ起動後
開発コンテナで VS Code が再起動すると、.devcontainer/post-create.sh が実行される。元の内容は次のとおり。
#!/bin/sh
npm i
npm run electron
ここで npm i (npm install) が異常終了する。
決定的なエラー行:
v8config.h:854:20: error: expected identifier before ‘__attribute__’
<details>
<summary>npm i のエラー(全文)</summary>
npm error code 1
npm error path /workspaces/vscode/node_modules/native-keymap
npm error command failed
npm error command sh -c node-gyp rebuild
npm error make: Entering directory '/workspaces/vscode/node_modules/native-keymap/build'
npm error CXX(target) Release/obj.target/keymapping/src/string_conversion.o
npm error CXX(target) Release/obj.target/keymapping/src/keymapping.o
npm error make: Leaving directory '/workspaces/vscode/node_modules/native-keymap/build'
npm error gyp info it worked if it ends with ok
npm error gyp info using node-gyp@12.4.0
npm error gyp info using node@24.21.0 | linux | x64
npm error gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3"
npm error gyp info spawn /usr/bin/python3
npm error gyp info spawn args [
npm error gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm error gyp info spawn args 'binding.gyp',
npm error gyp info spawn args '-f',
npm error gyp info spawn args 'make',
npm error gyp info spawn args '-I',
npm error gyp info spawn args '/workspaces/vscode/node_modules/native-keymap/build/config.gypi',
npm error gyp info spawn args '-I',
npm error gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm error gyp info spawn args '-I',
npm error gyp info spawn args '/home/node/.cache/node-gyp/43.7.7/include/node/common.gypi',
npm error gyp info spawn args '-Dlibrary=shared_library',
npm error gyp info spawn args '-Dvisibility=default',
npm error gyp info spawn args '-Dnode_root_dir=/home/node/.cache/node-gyp/43.7.7',
npm error gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm error gyp info spawn args '-Dnode_lib_file=/home/node/.cache/node-gyp/43.7.7/<(target_arch)/node.lib',
npm error gyp info spawn args '-Dmodule_root_dir=/workspaces/vscode/node_modules/native-keymap',
npm error gyp info spawn args '-Dnode_engine=v8',
npm error gyp info spawn args '--depth=.',
npm error gyp info spawn args '--no-parallel',
npm error gyp info spawn args '--generator-output',
npm error gyp info spawn args 'build',
npm error gyp info spawn args '-Goutput_dir=.'
npm error gyp info spawn args ]
npm error gyp info spawn make
npm error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-handle-base.h:8,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-local-handle.h:13,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-array-buffer.h:12,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:24,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/node.h:80,
npm error from ../src/keymapping.cc:7:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-internal.h:468:1: warning: multi-line comment [-Wcomment]
npm error 468 | // / \
npm error | ^
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-internal.h:470:1: warning: multi-line comment [-Wcomment]
npm error 470 | // / \
npm error | ^
npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/cppgc/common.h:8,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:23:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8config.h:854:20: error: expected identifier before ‘__attribute__’
npm error 854 | # define V8_EXPORT __attribute__((visibility("default")))
npm error | ^~~~~~~~~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:657:32: note: in expansion of macro ‘V8_EXPORT’
npm error 657 | "buffer if you cannot.") V8_EXPORT Value {
npm error | ^~~~~~~~~
npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-object.h:14,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-array-buffer.h:14:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:675:3: warning: ‘visibility’ attribute ignored [-Wattributes]
npm error 675 | };
npm error | ^
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected primary-expression before ‘public’
npm error 658 | public:
npm error | ^~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected ‘}’ before ‘public’
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:657:48: note: to match this ‘{’
npm error 657 | "buffer if you cannot.") V8_EXPORT Value {
npm error | ^
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’ in initialization
npm error 658 | public:
npm error | ^~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected ‘;’ before ‘public’
npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-function.h:15,
npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:33:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertSetter(v8::NamedPropertySetterCallback))(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:762:12: warning: cast between incompatible function types from ‘v8::NamedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
npm error 762 | return NamedPropertySetterCallbackV2(value);
npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertDefiner(v8::NamedPropertyDefinerCallback))(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:775:12: warning: cast between incompatible function types from ‘v8::NamedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
npm error 775 | return NamedPropertyDefinerCallbackV2(value);
npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertSetter(v8::IndexedPropertySetterCallbackV2))(uint32_t, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:893:12: warning: cast between incompatible function types from ‘v8::IndexedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
npm error 893 | return IndexedPropertySetterCallback(value);
npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertDefiner(v8::IndexedPropertyDefinerCallbackV2))(uint32_t, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:906:12: warning: cast between incompatible function types from ‘v8::IndexedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
npm error 906 | return IndexedPropertyDefinerCallback(value);
npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
npm error make: *** [keymapping.target.mk:131: Release/obj.target/keymapping/src/keymapping.o] Error 1
npm error gyp ERR! build error
npm error gyp ERR! stack Error: `make` failed with exit code: 2
npm error gyp ERR! stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:219:23)
npm error gyp ERR! System Linux 6.18.54.1-microsoft-standard-WSL2
npm error gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm error gyp ERR! cwd /workspaces/vscode/node_modules/native-keymap
npm error gyp ERR! $npm_package_name native-keymap
npm error gyp ERR! $npm_package_version 3.3.9
npm error gyp ERR! not ok
npm error A complete log of this run can be found in: /home/node/.npm/_logs/2026-10-23T20_26_30_666Z-debug-0.log
</details>
調査
コンテナ内のターミナルで、環境を調べた。
gcc --version | head -1
g++ --version | head -1
cat /etc/os-release | head -3
clang --version 2>/dev/null | head -1
cat .nvmrc
grep -iE "target|runtime|disturl" .npmrc
結果:
gcc (Debian 12.2.0-14+deb12u1) 12.2.0
g++ (Debian 12.2.0-14+deb12u1) 12.2.0
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
24.18.0
disturl="https://electronjs.org/headers"
target="43.7.7"
runtime="electron"
インストール可能な clang を確認した。
sudo apt update
apt-cache search '^clang-[0-9]+$'
結果:
clang-13 - C, C++ and Objective-C compiler
clang-14 - C, C++ and Objective-C compiler
clang-15 - C, C++ and Objective-C compiler
clang-16 - C, C++ and Objective-C compiler
clang-19 - C, C++ and Objective-C compiler
clang-22 - C, C++ and Objective-C compiler
コンパイラごとの結果
| コンパイラ | npm install | 備考 |
|-|-|-|
| GCC 12.2 | 失敗 | 初期状態 |
| clang-13 | 未検証 | |
| clang-14 | 失敗 | |
| clang-15 | 失敗 | |
| clang-16 | 成功 | VS Code 起動まで確認 |
| clang-19 | 成功 | VS Code 起動まで確認 |
| clang-22 | 成功 | VS Code 起動まで確認 |
検証した範囲では、失敗と成功の境目は clang-15 と clang-16 の間にある。原因が clang の新しさそのものなのかは、今回の検証だけでは断定できない。
対処
1. コンテナ内で手動で切り替える
コンテナ内のターミナルで実施する。clang-16 以上であればどれでもよい(以下は clang-22 の例)。
sudo apt-get install -y clang-22
export CC=clang-22 CXX=clang++-22
# 追跡されていないファイルをすべて削除する。未コミットの新規ファイルがある場合は、先に退避すること。
git clean -xfd
rm -rf ~/.cache/node-gyp
# 再度 npm i を実施
npm install
# .devcontainer/post-create.sh の残りを実施
npm run electron
最後に、ビルドされた VS Code が起動することを確認した。
./scripts/code.sh
2. post-create.sh に書き足して Rebuild する
手動で入れた clang は、コンテナを Rebuild すると消える。そこで、.devcontainer/post-create.sh に同じ内容を書き足す。
#!/bin/sh
set -e
sudo apt-get update
sudo apt-get install -y clang-22
export CC=clang-22 CXX=clang++-22
npm i
npm run electron
- set -e は、途中のコマンドが失敗したときにそこで止めるための指定。
書き換えたら、コマンドパレットから Dev Containers: Rebuild Container を実行する。通常の Rebuild で post-create.sh が再実行され、そのあと ./scripts/code.sh で VS Code を起動できた。
Rebuild Container Without Cache は使わなかった。post-create.sh はコンテナの作成後に実行されるため、イメージのキャッシュを捨てる必要はない。
結論
- 公式の Dev Container でそのままビルドすると、.devcontainer/post-create.sh 内の npm i が GCC 12.2 では失敗する。main と release/1.142 のどちらでも、native-keymap のビルドで V8 ヘッダのエラーになり、同じ結果だった。
- 検証した範囲では、clang-14 / 15 は失敗し、clang-16 以上(16 / 19 / 22)に切り替えると npm install が通り、./scripts/code.sh で VS Code(Code - OSS)を起動できた。
- .devcontainer/post-create.sh に clang の導入と export CC=... CXX=... を書き足し、Dev Containers: Rebuild Container を実行すると、./scripts/code.sh で VS Code を起動できた。
- 失敗の原因は、Electron のV8ヘッダ(native-keymap のネイティブビルド時に参照される)をコンパイルできないことだと推測している。公式に確認した原因ではない。
注意点
- 手動で export CC=... CXX=... を実行した場合、そのターミナルセッションだけで有効。新しいターミナルを開くと再設定が必要。post-create.sh に書いた export は、そのスクリプト内のコマンドにだけ効く。
- 手動で入れた clang はコンテナ内の変更なので、コンテナを Rebuild すると消える。post-create.sh に導入を書き足しておけば、Rebuild のたびに自動で入る。書き足していない場合は、Rebuild 後に再び npm i が失敗する。
- .devcontainer/post-create.sh はリポジトリの追跡対象ファイルなので、書き換えると git status に差分が出る。コミットしないこと。
- 「ボリュームでクローン」する流れでは、最初のコンテナ作成の時点で post-create.sh を書き換えられないため、初回は npm i が必ず失敗する。初回から成功させる方法として、ホスト側にクローンして、コンテナを開く前に post-create.sh を書き換えてから「コンテナーで再度開く」を選択する。
- ボリュームにクローンした場合、Docker側でボリュームを削除すると、push していない変更は失われる。
- GUI が表示できない環境では、./scripts/code-server.sh --launch でブラウザから確認する方法もある(今回は code.sh でウィンドウが表示された)。
1 like
Meilleures extensions VS Code en 2026 : 15 choix pour un environnement efficace
L'essentiel en une minute
Les meilleures extensions VS Code ne sont pas forcément les plus installées : plusieurs vedettes des classements habituels ne sont plus mises à jour, et la fiche de l'une d'elles était introuvable le 23 octobre 2026. Cette sélection retient 15 extensions, classées par besoin, d'après leur fiche relue ce jour-là.
L'article est une synthèse de sources publiques, sans essai maison. Il vise le développement web et l'outillage : les extensions propres à un langage (Python, C/C++, Java) sont hors sujet.
> Points clés
>
> - 14 des 15 extensions retenues ont publié une version en 2026. REST Client est une exception assumée : sa dernière version date du 19 août 2022.
> - 11 sur 15 viennent d'un éditeur vérifié.
> - Toutes s'installent gratuitement. GitHub Copilot Chat et GitLens réservent des fonctions à une offre payante ; Claude Code ne s'utilise qu'avec un abonnement ou une facturation à la consommation.
> - Git Graph et Auto Rename Tag n'ont pas été mises à jour depuis 2021 et 2022. La fiche de Codeium renvoyait une erreur 404 les 12, 13 et 23 octobre 2026.
> - Microsoft a retiré 1 855 extensions de son catalogue entre le 1er janvier et le 22 octobre 2026, d'après notre décompte de sa liste publique.
---
Comment cette sélection a été faite
Trois critères, tous lisibles sur une fiche : un usage large (plus de 5 millions d'installations), une version publiée en 2026 et un éditeur identifiable, c'est-à-dire vérifié ou, à défaut, relié à un dépôt de code public. Quatorze des quinze retenues remplissent les trois. REST Client échoue au deuxième et reste une exception, expliquée dans sa section.
Ces critères sont nécessaires, pas suffisants : quatre candidates relevées les remplissent sans être retenues. Thunder Client et Live Preview sont citées plus bas comme alternatives. EditorConfig (15,3 millions d'installations, mise à jour le 8 avril 2026, dépôt public) recoupe en partie Prettier, dont la fiche indique qu'elle lit le fichier .editorconfig par défaut (réglage prettier.useEditorConfig). Cline (5,7 millions, éditeur vérifié, mise à jour le 16 octobre 2026) serait un troisième assistant d'IA : nous avons limité cette catégorie aux deux plus installés.
Les chiffres viennent de la page de chaque extension sur le Visual Studio Marketplace (le catalogue), relue le 23 octobre 2026 par une requête GET. Le compteur cumule les installations uniques depuis la publication, hors mises à jour, selon l'infobulle du site : il ne dit rien des utilisateurs actifs.
Pourquoi VS Code ? Dans l'enquête 2025 de Stack Overflow, 75,9 % des répondants à la question sur les environnements de développement déclarent l'utiliser, devant Visual Studio à 29 % (Stack Overflow Developer Survey 2025, 26 143 réponses à cette question). Si vous hésitez sur l'outil lui-même, notre comparatif des IDE et éditeurs de code pose ce choix.
---
Les meilleures extensions VS Code en un tableau
Installations arrondies à la centaine de milliers, notes sur 5 ; « Vérifié » signale le badge bleu de l'éditeur.
| Extension | Éditeur | Vérifié | Installations | Note | Avis | Dernière mise à jour |
|---|---|---|---|---|---|---|
| ESLint | Microsoft | Oui | 53,5 M | 4,3 | 251 | 16 juillet 2026 |
| Prettier | Prettier | Oui | 72,5 M | 3,5 | 492 | 16 mars 2026 |
| Error Lens | Alexander | Non | 10,2 M | 4,9 | 188 | 22 octobre 2026 |
| GitLens | GitKraken | Oui | 53,5 M | 3,4 | 944 | 20 octobre 2026 |
| GitHub Pull Requests | GitHub | Oui | 37,1 M | 3,9 | 148 | 23 octobre 2026 |
| GitHub Copilot Chat | GitHub | Oui | 79,0 M | 2,8 | 403 | 15 mai 2026 |
| Claude Code | Anthropic | Oui | 28,6 M | 3,7 | 835 | 22 octobre 2026 |
| Dev Containers | Microsoft | Oui | 42,4 M | 4,1 | 60 | 8 septembre 2026 |
| Remote - SSH | Microsoft | Oui | 38,2 M | 3,6 | 223 | 9 octobre 2026 |
| Container Tools | Microsoft | Oui | 19,1 M | 3,8 | 20 | 19 octobre 2026 |
| REST Client | Huachao Mao | Non | 7,7 M | 4,9 | 388 | 19 août 2022 |
| Tailwind CSS IntelliSense | Tailwind Labs | Oui | 14,8 M | 4,5 | 118 | 17 juillet 2026 |
| Live Server | Ritwick Dey | Non | 83,8 M | 4,4 | 519 | 27 février 2026 |
| Code Spell Checker | Street Side Software | Oui | 18,5 M | 4,5 | 314 | 15 octobre 2026 |
| Material Icon Theme | Philipp Kief | Non | 36,0 M | 4,9 | 400 | 2 octobre 2026 |
!Graphique à barres horizontales des installations des 15 extensions retenues au 23 octobre 2026, de Live Server à 83,8 millions jusqu'à REST Client à 7,7 millions
Popularité et satisfaction ne vont pas toujours ensemble. GitHub Copilot Chat est la deuxième extension la plus installée de la liste et la plus mal notée, à 2,8 sur 5, alors que Live Server, la première, obtient 4,4. Lisez ces notes avec prudence : elles reposent sur 20 à 944 avis, pour des millions d'installations.
---
Qualité du code
Analyse, mise en forme, affichage des erreurs : trois rôles distincts.
1. ESLint
ESLint branche dans VS Code l'analyseur du même nom pour JavaScript et TypeScript. Gratuite, publiée par Microsoft, éditeur vérifié : 53,5 millions d'installations, note de 4,3, mise à jour le 16 juillet 2026.
Réglage utile. Pour corriger à l'enregistrement, la fiche donne cette entrée de settings.json :
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
2. Prettier
Prettier remet le code en forme selon des règles fixes, ce qui clôt les débats de style en équipe. Gratuite, publiée par Prettier, éditeur vérifié : 72,5 millions d'installations, note de 3,5, mise à jour le 16 mars 2026.
Réglage utile. Déclarez-la comme outil de mise en forme avec "editor.defaultFormatter": "esbenp.prettier-vscode". La fiche précise que ce réglage ne vaut pas pour plusieurs langages à la fois : il faut le répéter par langage. Vérifiez l'identifiant : la fiche homonyme Prettier.prettier-vscode, publiée par « Prettier (DO NOT USE) », se déclare obsolète et renvoie vers esbenp.prettier-vscode.
3. Error Lens
Error Lens affiche le message d'erreur au bout de la ligne fautive, sans ouvrir le panneau des problèmes. Gratuite, publiée par Alexander, éditeur non vérifié : 10,2 millions d'installations, note de 4,9, mise à jour le 22 octobre 2026.
Réglage utile. Si l'écran devient trop chargé, limitez l'affichage aux erreurs avec errorLens.enabledDiagnosticLevels.
---
Git et revue de code
VS Code gère déjà commits et branches ; ces deux extensions ajoutent l'historique ligne par ligne et la revue des demandes de fusion (pull requests). Pour la suite de la chaîne, voyez notre guide pour automatiser ses déploiements.
4. GitLens
GitLens montre qui a modifié chaque ligne, quand et dans quel commit. Publiée par GitKraken, éditeur vérifié : 53,5 millions d'installations, note de 3,4, mise à jour le 20 octobre 2026.
À savoir. La fiche décrit une édition Community, gratuite et open source, qui couvre l'attribution des lignes et l'historique. Le graphe des commits est gratuit sur les dépôts publics avec un compte GitKraken. Sur les dépôts privés, il relève de l'offre Pro, avec 14 jours d'essai.
5. GitHub Pull Requests
GitHub Pull Requests permet de relire, commenter et valider des demandes de fusion sans quitter VS Code. Gratuite, publiée par GitHub, éditeur vérifié : 37,1 millions d'installations, note de 3,9, mise à jour le 23 octobre 2026.
Réglage utile. L'extension cherche par défaut les demandes de fusion sur les dépôts distants origin et upstream. Si les vôtres portent un autre nom, ajoutez-les au réglage githubPullRequests.remotes.
---
Assistance par IA
Deux assistants dominent notre relevé par leurs installations. Aucun n'est entièrement gratuit. Notre comparatif ChatGPT, Claude et Gemini compare les modèles, et notre guide pour coder plus vite avec l'IA traite de la méthode.
6. GitHub Copilot Chat
D'après sa fiche, GitHub Copilot Chat regroupe les suggestions pendant la frappe, la discussion et des agents qui modifient plusieurs fichiers. Publiée par GitHub, éditeur vérifié : 79,0 millions d'installations, note de 2,8, mise à jour le 15 mai 2026.
L'installation est gratuite, l'usage en partie. La fiche porte la mention « Free Trial ». L'offre gratuite est bornée à 2 000 complétions par mois et à un usage « limité » de la discussion et des agents, désormais décompté en crédits. L'offre Pro coûte 10 $ par mois, d'après la page des offres de GitHub, consultée le 23 octobre 2026.
Réglage utile. Le réglage chat.disableAIFeatures désactive les fonctions d'IA intégrées, selon la documentation de VS Code.
7. Claude Code
D'après sa fiche, Claude Code est un agent qui explore le dépôt, propose des modifications et lance des commandes avec votre accord. Publiée par Anthropic, éditeur vérifié : 28,6 millions d'installations, note de 3,7, mise à jour le 22 octobre 2026.
L'installation est gratuite, pas l'usage. La fiche, étiquetée « Free », demande un abonnement Pro, Max, Team ou Enterprise, ou une facturation à la consommation. L'offre Pro coûte 20 $ par mois, ou 17 $ en paiement annuel, et l'offre gratuite n'inclut pas Claude Code, d'après la page de tarifs de Claude, consultée le 23 octobre 2026.
Autre réserve : c'est la seule des 15 fiches qui ne déclare aucun dépôt de code source, ce qui la fait échouer à l'une de nos vérifications de sécurité.
Réglage utile. Selon la fiche, le réglage « Claude Code: Use Terminal » permet de revenir à l'interface en terminal de l'extension précédente.
---
Conteneurs et travail à distance
Ces trois extensions gratuites de Microsoft, éditeur vérifié, déplacent l'environnement de travail dans un conteneur ou sur un serveur. Elles supposent des bases que couvrent nos guides Docker pour débutants et Kubernetes pour débutants.
8. Dev Containers
Dev Containers ouvre un projet dans un conteneur Docker qui embarque outils, dépendances et extensions : 42,4 millions d'installations, note de 4,1, mise à jour le 8 septembre 2026.
Réglage utile. La commande « Dev Containers: Add Dev Container Configuration Files... » crée le fichier .devcontainer/devcontainer.json. Sa propriété customizations.vscode.extensions liste les extensions à installer dans le conteneur, selon la documentation de VS Code.
9. Remote - SSH
Remote - SSH ouvre un dossier situé sur un serveur comme s'il était local : 38,2 millions d'installations, note de 3,6, mise à jour le 9 octobre 2026.
À savoir. La fiche demande 1 Go de mémoire au minimum et recommande 2 Go avec un processeur à deux cœurs.
10. Container Tools
Container Tools gère images, conteneurs, volumes et fichiers Compose depuis VS Code. Elle remplace l'extension Docker de Microsoft, dont la fiche se décrit désormais comme un simple pack qui l'installe. Elle compte 19,1 millions d'installations, une note de 3,8 sur 20 avis seulement ; dernière mise à jour le 19 octobre 2026.
Réglage utile. Pour utiliser Podman à la place de Docker, la fiche indique les réglages containers.containerClient et containers.orchestratorClient, suivis d'un redémarrage.
---
Test des API
Une seule extension retenue, l'exception de la liste. Pour une cible d'essai, voyez notre tutoriel pour créer une API REST avec Node.js et Express.
11. REST Client
REST Client envoie des requêtes HTTP écrites dans un fichier .http et affiche la réponse dans un panneau voisin. Gratuite, publiée par Huachao Mao, éditeur non vérifié : 7,7 millions d'installations, le plus petit total de la liste, et une note de 4,9.
Elle ne remplit pas notre critère de fraîcheur : sa dernière version date du 19 août 2022. Deux raisons la séparent de Git Graph, écartée plus bas : son dépôt GitHub a reçu un commit le 30 janvier 2026, une simple mise à jour de dépendances, contre le 19 septembre 2021 pour Git Graph, et ses requêtes sont de simples fichiers texte, lisibles sans elle. Un commit ne vaut pas une version : si la maintenance compte plus pour vous, voyez les deux alternatives vérifiées ci-dessous.
| Alternative | Installations | Note | Avis | Prix affiché | Dernière mise à jour |
|---|---|---|---|---|---|
| Thunder Client | 7,7 M | 2,4 | 767 | Free Trial | 17 octobre 2026 |
| Postman | 2,7 M | 3,0 | 93 | Free | 22 octobre 2026 |
Réglage utile. Séparez les requêtes par ### et lancez-les avec Ctrl+Alt+R. Le réglage rest-client.environmentVariables définit des environnements, avec un bloc $shared commun à tous.
---
Front-end
Deux extensions suffisent à la plupart des projets d'interface.
!Ordinateur portable ouvert sur un éditeur de code, l'environnement où s'installent les meilleures extensions VS Code
12. Tailwind CSS IntelliSense
Tailwind CSS IntelliSense complète les noms de classes, signale les erreurs et montre le CSS produit au survol. Gratuite, publiée par Tailwind Labs, éditeur vérifié : 14,8 millions d'installations, note de 4,5, mise à jour le 17 juillet 2026.
Réglage utile. La fiche conseille d'activer "strings": "on" dans editor.quickSuggestions pour obtenir la complétion dans les attributs JSX.
13. Live Server
Live Server lance un serveur local qui recharge la page à chaque enregistrement. Gratuite, publiée par Ritwick Dey, éditeur non vérifié : 83,8 millions d'installations, note de 4,4. Elle a été mise à jour le 27 février 2026.
À savoir. Le bouton « Go Live » de la barre d'état démarre et arrête le serveur. Si vous préférez un éditeur vérifié, Microsoft publie Live Preview : 13,9 millions d'installations, note de 4,4. Sa dernière mise à jour date du 23 septembre 2026.
---
Productivité
Les deux dernières ne changent pas le comportement du code, mais ce que vous lisez toute la journée.
14. Code Spell Checker
Code Spell Checker repère les fautes dans les noms de variables, les commentaires et la documentation. Gratuite, publiée par Street Side Software, éditeur vérifié : 18,5 millions d'installations, note de 4,5, mise à jour le 15 octobre 2026.
Réglage utile. La fiche liste un dictionnaire français à installer en complément, et le commentaire cSpell:locale fr,en active les deux langues dans un fichier.
15. Material Icon Theme
Material Icon Theme attribue une icône distincte à chaque type de fichier et de dossier. Gratuite, publiée par Philipp Kief, éditeur non vérifié : 36,0 millions d'installations, note de 4,9, mise à jour le 2 octobre 2026.
Réglage utile. Après l'installation, lancez la commande « Material Icons: Activate Icon Theme ». Le réglage material-icon-theme.files.associations attribue une icône à vos propres types de fichier.
---
Quatre extensions connues à ne plus installer les yeux fermés
Voici ce que nous avons lu le 23 octobre 2026 :
- Git Graph. La fiche affiche 15,6 millions d'installations et une note de 4,9, mais sa dernière mise à jour date du 5 avril 2021.
- Auto Rename Tag. La fiche, mise à jour le 8 février 2022, signale elle-même que VS Code renomme les balises HTML sans extension avec "editor.linkedEditing": true.
- Codeium. L'adresse de la fiche Codeium.codeium renvoyait une erreur 404 à une requête GET, les 12, 13 et 23 octobre 2026.
- L'ancienne extension GitHub Copilot. Sa fiche affiche 74,8 millions d'installations et une note de 4,1 sur 1 058 avis, mais sa dernière mise à jour date du 24 octobre 2025. Notre réserve repose sur cette seule date.
---
Sécurité des extensions
Une extension est un programme qui tourne avec vos droits : selon la documentation de VS Code, elle dispose des mêmes permissions que VS Code lui-même et peut lire et écrire des fichiers, envoyer des requêtes réseau ou lancer des processus (sécurité d'exécution des extensions, relue le 23 octobre 2026).
Ce que garantit un éditeur vérifié
Le badge bleu atteste deux choses, selon la même page : l'éditeur a prouvé qu'il possède son nom de domaine, et il est en règle sur le catalogue depuis au moins six mois. Il ne certifie pas le code.
Le catalogue ajoute, d'après cette page, une analyse antivirus de chaque version avant publication, une vérification du comportement à l'exécution dans un environnement isolé, le blocage des noms imitant un éditeur connu, la signature des paquets et une liste de blocage qui désinstalle une extension reconnue malveillante.
Les incidents documentés
Ces contrôles laissent passer des cas, et Microsoft le publie. Sa liste des extensions retirées compte 1 855 entrées datées du 1er janvier au 22 octobre 2026, d'après notre décompte du fichier RemovedPackages.md lu le 23 octobre 2026. Le motif le plus fréquent est l'usurpation d'identité, avec 1 068 entrées. Viennent ensuite 360 entrées mentionnant un logiciel malveillant, avéré ou soupçonné, 291 classées « non fiable », 123 pour spam et 13 pour d'autres motifs. Une entrée qui cite deux motifs, comme « Spam / Malware », est comptée avec les logiciels malveillants.
!Graphique en anneau : 1 855 extensions retirées du Visual Studio Marketplace du 1er janvier au 22 octobre 2026, dont 1 068 pour usurpation d'identité, 360 pour logiciel malveillant, 291 jugées non fiables, 123 pour spam et 13 pour d'autres motifs
Deux affaires de 2026 :
- Janvier 2026. Deux extensions d'assistance par IA totalisant 1,5 million d'installations envoyaient le contenu des fichiers ouverts vers des serveurs en Chine, selon les chercheurs de Koi Security cités par BleepingComputer le 23 janvier 2026.
- Mai 2026. GitHub a confirmé qu'environ 3 800 de ses dépôts internes avaient été copiés après l'installation d'une extension malveillante par un employé, rapporte BleepingComputer le 20 mai 2026.
Quatre vérifications avant d'installer
1. L'identifiant exact. Comparez le nom technique, par exemple esbenp.prettier-vscode, et pas seulement le nom affiché.
2. L'éditeur. Cherchez le badge bleu et le nom de domaine. Leur absence n'est pas une alerte, mais elle demande plus d'attention.
3. La date de mise à jour et le dépôt source. Une fiche sans dépôt public ne peut pas être relue. Dans notre sélection, c'est le cas de Claude Code.
4. Le mode restreint. Ouvrez un dépôt inconnu sans lui accorder votre confiance : les extensions qui ne déclarent pas ce mode y sont désactivées, selon la documentation sur la confiance.
Notre panorama des cyberattaques les plus fréquentes replace ces réflexes dans un cadre plus large.
---
Performance : trouver une extension lente
VS Code fournit de quoi identifier l'extension fautive, d'après la page Performance Issues de son dépôt officiel, consultée le 23 octobre 2026 :
| Outil intégré | Ce qu'il montre |
|---|---|
| « Developer: Show Running Extensions » | Les extensions en cours d'exécution, avec un bouton pour enregistrer un profil processeur |
| « Help: Start Extension Bisect » | L'extension en cause, trouvée par désactivations successives |
| Explorateur de processus du menu Aide | La part de processeur de chaque processus, dont l'hôte d'extensions |
| « Startup Performance » | Les temps détaillés du démarrage |
| code --disable-extensions | Un lancement sans aucune extension, pour comparer |
Le plus rapide est Extension Bisect, qui désactive la moitié des extensions, demande si le problème persiste, puis recommence sur la moitié suspecte. Son auteur, Johannes Rieken, de l'équipe de VS Code, compte 4 à 5 étapes pour 24 extensions, une de plus pour 38 (blog de VS Code, 16 février 2021).
Ensuite, désactivez la coupable pour l'espace de travail concerné, ou créez un profil par type de projet : un profil a ses propres extensions et s'associe à un dossier, selon la documentation des profils. Si VS Code reste lent sans extension, regardez du côté de la machine avec notre guide du laptop pour développeur.
---
Par où commencer
Inutile d'installer les quinze. Partez de votre profil, puis ajoutez au besoin :
- Débutant en développement web. Live Server, Prettier et Error Lens.
- JavaScript ou TypeScript en équipe. ESLint, Prettier, GitLens et GitHub Pull Requests.
- Back-end et DevOps. Dev Containers, Container Tools, Remote - SSH et REST Client.
- Tous profils. Code Spell Checker et Material Icon Theme.
---
Ce que nous n'avons pas pu vérifier
Restent en suspens :
- Le comportement réel des extensions. Nous n'en avons installé aucune. Les réglages cités viennent des fiches et de la documentation.
- Le sort de Codeium. Nous constatons trois erreurs 404, sans explication officielle lue. Nous ignorons si l'extension a été retirée, renommée ou déplacée.
- Le code source de Claude Code. La fiche ne déclare aucun dépôt source ; son lien d'assistance pointe vers le dépôt GitHub anthropics/claude-code, dont nous n'avons pas vérifié qu'il contient le code de l'extension.
- L'extension en cause dans l'incident de GitHub. Son nom n'est pas donné dans l'article cité, et nous n'avons pas relu le communiqué d'origine.
- L'exhaustivité de la liste de Microsoft. Nos totaux sont un décompte automatique des lignes datées : une ligne mal formatée a pu nous échapper.
---
Questions fréquentes
Les extensions VS Code sont-elles gratuites ?
Les 15 extensions de cette sélection s'installent sans payer. Deux réservent des fonctions à une offre payante : GitHub Copilot Chat, au-delà d'un quota gratuit, et GitLens pour ses fonctions Pro sur dépôts privés. Une troisième, Claude Code, ne s'utilise qu'avec un abonnement ou une facturation à la consommation.
Trop d'extensions ralentissent-elles VS Code ?
Cela dépend des extensions plus que de leur nombre. Mesurez avec « Developer: Show Running Extensions », puis isolez la fautive avec « Help: Start Extension Bisect », d'après la page Performance Issues du dépôt officiel.
Une extension peut-elle voler mon code ?
Oui. La documentation de VS Code indique qu'une extension peut lire vos fichiers et envoyer des requêtes réseau, et des cas réels ont été documentés en 2026.
Comment installer une extension en ligne de commande ?
Avec code --install-extension suivi de l'identifiant, par exemple code --install-extension dbaeumer.vscode-eslint. La documentation du catalogue d'extensions précise que l'option peut être répétée pour en installer plusieurs.
---
À propos de l'auteur
Abdelilah Ourti est ingénieur IA et architecte logiciel. Il conçoit et déploie des applications web et des systèmes d'IA, et publie sur NeurauTech des guides et des comparatifs destinés aux développeurs francophones. Ses autres articles sont réunis sur sa page auteur.
Méthode. Synthèse fondée exclusivement sur des sources publiques : fiches du Visual Studio Marketplace lues le 12 octobre 2026 et relues le 23 octobre 2026, documentation et dépôt officiels de VS Code, liste des extensions retirées publiée par Microsoft, pages de tarifs des éditeurs, enquête de Stack Overflow et presse spécialisée. Les installations, notes et dates changent en continu. Aucune extension n'a été installée ni évaluée pour cet article, aucun lien n'est affilié et aucune relation commerciale ne lie l'auteur aux éditeurs mentionnés.
Une erreur ou un chiffre périmé ? Écrivez à contact@neurautech.com : l'article sera corrigé et la date de mise à jour modifiée.
Dernière mise à jour : 23 octobre 2026.
Images : Gabriel Heinzer et Mohammad Rahmani (Unsplash License).
Mentions
To anyone who might be reading this exchange, actually there is recently added builtin setting for delayed auto-update, `extensions.autoUpdateDelay`, see vscode#316867 and vscode#321039
It shouldn't. Be as close as AGI we are (/s), this issue from 2018 is still open: vscode#52116 I don't know what we are doing.
Copilot harness: a bunch of possible improvements As you may know, the Copilot harness is going to replace the Local harness in VS Code at some point. The initial switch was painful, but the VS Code team listened and brought back Keep/Undo for granular control over edits. Now, the Keep/Undo part still has some problems, but overall it is usable. However, the Copilot harness UX still has some rough edges compared to Local. I've opened a bunch of issues and wanted to share them with the community for wider reach and more feedback: - [Copilot harness: restore input box MCP tools picker ](vscode#344925) Duplicate. Follow vscode#340041 instead. - [Copilot harness: retain local memories ](vscode#344924) - [Copilot harness: restore access to VS Code-aware explicit context items ](vscode#344926) Duplicate. Follow vscode#315193 instead. - [Copilot harness: refine thinking output ](vscode#344928) - [Copilot harness: in-Chat terminals are more difficult to follow and cancel by default ](vscode#344935)
Apa itu GitHub Repository? Penjelasan Singkat 60 Detik Repository adalah tempat menyimpan semua file proyek beserta riwayat perubahannya. Di GitHub, repository bisa dibagikan dan dikerjakan bersama lewat commit dan push. 📚 Sumber • docs.github.com • git-scm.com • microsoft/vscode 🎙️ Narasi menggunakan suara AI. Richards Lab: belajar coding dan AI pelan-pelan, dari nol. #belajarcoding #github #programming [en-US] What Is a GitHub Repository? A 60-Second Quick Explanation A repository is where all project files and their change history are stored. On GitHub, repositories can be shared and worked on together via commits and pushes. 📚 Source • docs.github.com • git-scm.com • microsoft/vscode 🎙️ Narration using AI voice. Richards Lab: learn coding and AI slowly, from scratch. #belajarcoding #github #programming
More PRs, more unit tests in VS Code. CI needs to keep up. I'm building Ripple, a Rust-based analyzer to find the minimal tests affected by a TypeScript change. Goal: save ~1 CPU-hour per PR -- github.com/microsoft/vscode/tree/main/build/ripple Meanwhile, I've got 11 agents running in VS Code's Agents Window 😅 Try it out and let me know if you've got any feedback!
Visual Studio Code: Почему Microsoft Раздаёт Его Бесплатно? 🅿️ КУПИТЬ ПОДПИСКУ CLAUDE НА PLAYEROK - bit.ly 💙 ПРОМ0КОД 0% НА СТИМ - ZARGO Visual Studio Code (VS Code) - самый популярный редактор кода среди участников опроса Stack Overflow 2026. Но как небольшой браузерный проект Microsoft с аудиторией всего 3000 человек в месяц превратился в инструмент, которым пользуются миллионы программистов? В этом видео разбираем историю создания Visual Studio Code: от Эриха Гаммы, Eclipse и Monaco до мирового успеха VS Code и обратной стороны экосистемы Microsoft. Вы узнаете: - как появился VS Code и почему Microsoft едва не закрыла проект - почему редактор стал популярнее Atom и Sublime Text - как устроен VS Code и в чём секрет его популярности - какие расширения VS Code стоит попробовать - как GitHub Copilot меняет работу программистов - чем опасны некоторые расширения и зачем Microsoft телеметрия - чем отличаются Code - OSS, VSCodium и официальный VS Code - почему Microsoft распространяет свой редактор бесплатно А каким редактором пользуетесь вы? И какие расширения VS Code считаете самыми полезными? Делитесь в комментариях! Подписывайтесь на канал - здесь истории о технологиях, программировании, open-source и легендарных IT-проектах. Telegram: t.me Таймкоды: 00:00 - Начало 01:25 - Эрих Гамма: От Eclipse до Monaco 06:24 - Проект Ticino: рождение Visual Studio Code 09:23 - Секрет популярности VS Code 13:20 - Расширения 17:57 - Обратная сторона VS Code Материалы: youtube.com youtube.com youtube.com youtube.com theregister.com code.visualstudio.com code.visualstudio.com microsoft/vscode survey.stackoverflow.co bleepingcomputer.com open-vsx.org #vscode #visualstudiocode #программирование #microsoft #opensource [en-US] Visual Studio Code: Why Is Microsoft Giving It Away for Free? 🅿️ BUY A CLAUDE SUBSCRIPTION ON PLAYEROK - bit.ly 💙 PROMO CODE 0% ON STEAM - ZARGO Visual Studio Code (VS Code) is the most popular code editor among participants in the Stack Overflow 2026 survey. But how did a small Microsoft browser project with a monthly audience of just 3,000 people turn into a tool used by millions of programmers? In this video, we explore the history of Visual Studio Code: from Erich Gamma, Eclipse, and Monaco to the global success of VS Code and the dark side of the Microsoft ecosystem. You'll learn: - How VS Code came to be and why Microsoft almost shut it down - Why the editor has become more popular than Atom and Sublime Text - How VS Code works and the secret to its popularity - Which VS Code extensions are worth trying - How GitHub Copilot is changing the way programmers work - Why some extensions are dangerous and why Microsoft needs telemetry - What's the difference between Code - OSS, VSCodium, and the official VS Code - Why Microsoft distributes its editor for free Which editor do you use? And which VS Code extensions do you find most useful? Share your thoughts in the comments! Subscribe to the channel - here you'll find stories about technology, programming, open source, and legendary IT projects. Telegram: t.me Timecodes: 00:00 - Start 01:25 - Erich Gamma: From Eclipse to Monaco 06:24 - Project Ticino: The Birth of Visual Studio Code 09:23 - The Secret to VS Code's Popularity 13:20 - Extensions 17:57 - The Other Side of VS Code Resources: youtube.com youtube.com youtube.com youtube.com theregister.com code.visualstudio.com code.visualstudio.com microsoft/vscode survey.stackoverflow.co bleepingcomputer.com open-vsx.org #vscode #visualstudiocode #programming #microsoft #opensource
VS Code をローカル環境(Dev Container)でビルドする 概要 VS Codeのソースを、Dev Container 上でビルドして起動するまでの記録。 検証日: 2026-10-24 1. リポジトリを clone し、release/1.142 ブランチに切り替える 2. VS Code で開き、通知から「ボリュームでクローン」を選んで Dev Container を起動する 3. コンテナ内で npm install が失敗することを確認し、原因を調べる 4. コンテナ内でコンパイラを clang に切り替えて、npm install が通ることを確認する 5. .devcontainer/post-create.sh に clang の導入を書き足し、コンテナを Rebuild して、./scripts/code.sh で VS Code の起動を確認する 結果は、末尾の「結論」と「注意点」にまとめている。 環境 | 名前 | ID | バージョン | |-|-|-| | ホストOS | - | Windows 11 Pro 26H2(26300.9711) | | PowerShell | Microsoft.PowerShell | 7.6.8.0 | | Git | Git.Git | 2.55.0.2 | | Docker Desktop | Docker.DockerDesktop | 4.96.0 | | Docker への割り当て | - | WSL2 バックエンド / CPU: 16 / メモリ: 14.52 GB | | Microsoft Visual Studio Code (User) | Microsoft.VisualStudioCode | 1.143.1 | | Dev Containers 拡張 | - | ms-vscode-remote.remote-containers@0.469.0 | ログ上、ホストのカーネルは WSL2(6.18.54.1-microsoft-standard-WSL2)だった。 コンテナ側(調査で確認した値): | 項目 | 値 | |-|-| | OS | Debian 12 (bookworm) | | gcc / g++ | 12.2.0 | | Python | 3.11.2 | | Node | 24.21.0(.nvmrc は 24.18.0 で、ずれていた。今回の失敗の原因とは見ていない) | | ビルド対象ランタイム | Electron 43.7.7(.npmrc の runtime="electron" / target="43.7.7") | 手順 以下のホスト側の作業は PowerShell 上で実施。 git clone https://github.com/microsoft/vscode.git cd vscode 簡易な手順で再現性を高めるため、リリース済みの VS Code 1.143.1 のひとつ前にあたる release/1.142 ブランチに切り替える。 main は日々変わるが、release/1.142 は先日の確認時から変わっていなかった。 なお、main のままでも、後述のとおり同じエラーで失敗する。 git switch release/1.142 git rev-parse HEAD release ブランチも後から更新されうるため、git rev-parse HEAD の結果を、下表の検証したコミットと照合する。 一致しない場合は、ブランチが更新されている。 「ボリュームでクローン」ではリモートから新たにクローンされるので、コンテナ起動後に、コンテナ内のターミナルでも同じ確認をすると確実。 検証したコミット: | ブランチ | コミット | 初期状態(clang 導入前)の npm i | |-|-|-| | main | b3ce41974e82428b77417f6654976737e4d0b2a7 | 失敗(同じエラー) | | release/1.142 | 6d62b1d5dace93a33b3a6d3eca1317bd5e15bcb1 | 失敗 | VS Code を起動する。 code . 起動後、しばらく待つと、「コンテナーで開発するフォルダーをもう一度開きます。」という通知が表示される。 選択肢はブランチの upstream の有無で変わる。 - (a) ブランチの upstream が設定されている場合: 「コンテナーで再度開く」と「ボリュームでクローン」の2択 !upstream あり: 2択の通知 - (b) ブランチの upstream が設定されていない場合: 「コンテナーで再度開く」のみ !upstream なし: 1択の通知 「ボリュームでクローン」は (a) のときだけ選べる。 ここでは「ボリュームでクローン」を選択する。 (b) になった場合 - ブランチの upstream を設定し直して、VS Code を開き直す。 git branch --set-upstream-to=origin/release/1.142 - または、コマンドパレットから Dev Containers: Clone Repository in Container Volume... を直接実行し、リポジトリのURLを入力する。 ブランチはプルダウンで選択できる。 タグは選択できない。 タグで作業したい場合は、ブランチでクローンしたあと、コンテナ内で git switch -c <ブランチ名> <タグ名> を実行する。 コンテナ起動後 開発コンテナで VS Code が再起動すると、.devcontainer/post-create.sh が実行される。元の内容は次のとおり。 #!/bin/sh npm i npm run electron ここで npm i (npm install) が異常終了する。 決定的なエラー行: v8config.h:854:20: error: expected identifier before ‘__attribute__’ <details> <summary>npm i のエラー(全文)</summary> npm error code 1 npm error path /workspaces/vscode/node_modules/native-keymap npm error command failed npm error command sh -c node-gyp rebuild npm error make: Entering directory '/workspaces/vscode/node_modules/native-keymap/build' npm error CXX(target) Release/obj.target/keymapping/src/string_conversion.o npm error CXX(target) Release/obj.target/keymapping/src/keymapping.o npm error make: Leaving directory '/workspaces/vscode/node_modules/native-keymap/build' npm error gyp info it worked if it ends with ok npm error gyp info using node-gyp@12.4.0 npm error gyp info using node@24.21.0 | linux | x64 npm error gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3" npm error gyp info spawn /usr/bin/python3 npm error gyp info spawn args [ npm error gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm error gyp info spawn args 'binding.gyp', npm error gyp info spawn args '-f', npm error gyp info spawn args 'make', npm error gyp info spawn args '-I', npm error gyp info spawn args '/workspaces/vscode/node_modules/native-keymap/build/config.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm error gyp info spawn args '-I', npm error gyp info spawn args '/home/node/.cache/node-gyp/43.7.7/include/node/common.gypi', npm error gyp info spawn args '-Dlibrary=shared_library', npm error gyp info spawn args '-Dvisibility=default', npm error gyp info spawn args '-Dnode_root_dir=/home/node/.cache/node-gyp/43.7.7', npm error gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp', npm error gyp info spawn args '-Dnode_lib_file=/home/node/.cache/node-gyp/43.7.7/<(target_arch)/node.lib', npm error gyp info spawn args '-Dmodule_root_dir=/workspaces/vscode/node_modules/native-keymap', npm error gyp info spawn args '-Dnode_engine=v8', npm error gyp info spawn args '--depth=.', npm error gyp info spawn args '--no-parallel', npm error gyp info spawn args '--generator-output', npm error gyp info spawn args 'build', npm error gyp info spawn args '-Goutput_dir=.' npm error gyp info spawn args ] npm error gyp info spawn make npm error gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-handle-base.h:8, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-local-handle.h:13, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-array-buffer.h:12, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:24, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/node.h:80, npm error from ../src/keymapping.cc:7: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-internal.h:468:1: warning: multi-line comment [-Wcomment] npm error 468 | // / \ npm error | ^ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-internal.h:470:1: warning: multi-line comment [-Wcomment] npm error 470 | // / \ npm error | ^ npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/cppgc/common.h:8, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:23: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8config.h:854:20: error: expected identifier before ‘__attribute__’ npm error 854 | # define V8_EXPORT __attribute__((visibility("default"))) npm error | ^~~~~~~~~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:657:32: note: in expansion of macro ‘V8_EXPORT’ npm error 657 | "buffer if you cannot.") V8_EXPORT Value { npm error | ^~~~~~~~~ npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-object.h:14, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8-array-buffer.h:14: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:675:3: warning: ‘visibility’ attribute ignored [-Wattributes] npm error 675 | }; npm error | ^ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected primary-expression before ‘public’ npm error 658 | public: npm error | ^~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected ‘}’ before ‘public’ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:657:48: note: to match this ‘{’ npm error 657 | "buffer if you cannot.") V8_EXPORT Value { npm error | ^ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’ in initialization npm error 658 | public: npm error | ^~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-primitive.h:658:4: error: expected ‘;’ before ‘public’ npm error In file included from /home/node/.cache/node-gyp/43.7.7/include/node/v8-function.h:15, npm error from /home/node/.cache/node-gyp/43.7.7/include/node/v8.h:33: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertSetter(v8::NamedPropertySetterCallback))(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:762:12: warning: cast between incompatible function types from ‘v8::NamedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type] npm error 762 | return NamedPropertySetterCallbackV2(value); npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertDefiner(v8::NamedPropertyDefinerCallback))(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:775:12: warning: cast between incompatible function types from ‘v8::NamedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type] npm error 775 | return NamedPropertyDefinerCallbackV2(value); npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertSetter(v8::IndexedPropertySetterCallbackV2))(uint32_t, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:893:12: warning: cast between incompatible function types from ‘v8::IndexedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type] npm error 893 | return IndexedPropertySetterCallback(value); npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertDefiner(v8::IndexedPropertyDefinerCallbackV2))(uint32_t, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’: npm error /home/node/.cache/node-gyp/43.7.7/include/node/v8-template.h:906:12: warning: cast between incompatible function types from ‘v8::IndexedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type] npm error 906 | return IndexedPropertyDefinerCallback(value); npm error | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm error make: *** [keymapping.target.mk:131: Release/obj.target/keymapping/src/keymapping.o] Error 1 npm error gyp ERR! build error npm error gyp ERR! stack Error: `make` failed with exit code: 2 npm error gyp ERR! stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:219:23) npm error gyp ERR! System Linux 6.18.54.1-microsoft-standard-WSL2 npm error gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" npm error gyp ERR! cwd /workspaces/vscode/node_modules/native-keymap npm error gyp ERR! $npm_package_name native-keymap npm error gyp ERR! $npm_package_version 3.3.9 npm error gyp ERR! not ok npm error A complete log of this run can be found in: /home/node/.npm/_logs/2026-10-23T20_26_30_666Z-debug-0.log </details> 調査 コンテナ内のターミナルで、環境を調べた。 gcc --version | head -1 g++ --version | head -1 cat /etc/os-release | head -3 clang --version 2>/dev/null | head -1 cat .nvmrc grep -iE "target|runtime|disturl" .npmrc 結果: gcc (Debian 12.2.0-14+deb12u1) 12.2.0 g++ (Debian 12.2.0-14+deb12u1) 12.2.0 PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" 24.18.0 disturl="https://electronjs.org/headers" target="43.7.7" runtime="electron" インストール可能な clang を確認した。 sudo apt update apt-cache search '^clang-[0-9]+$' 結果: clang-13 - C, C++ and Objective-C compiler clang-14 - C, C++ and Objective-C compiler clang-15 - C, C++ and Objective-C compiler clang-16 - C, C++ and Objective-C compiler clang-19 - C, C++ and Objective-C compiler clang-22 - C, C++ and Objective-C compiler コンパイラごとの結果 | コンパイラ | npm install | 備考 | |-|-|-| | GCC 12.2 | 失敗 | 初期状態 | | clang-13 | 未検証 | | | clang-14 | 失敗 | | | clang-15 | 失敗 | | | clang-16 | 成功 | VS Code 起動まで確認 | | clang-19 | 成功 | VS Code 起動まで確認 | | clang-22 | 成功 | VS Code 起動まで確認 | 検証した範囲では、失敗と成功の境目は clang-15 と clang-16 の間にある。原因が clang の新しさそのものなのかは、今回の検証だけでは断定できない。 対処 1. コンテナ内で手動で切り替える コンテナ内のターミナルで実施する。clang-16 以上であればどれでもよい(以下は clang-22 の例)。 sudo apt-get install -y clang-22 export CC=clang-22 CXX=clang++-22 # 追跡されていないファイルをすべて削除する。未コミットの新規ファイルがある場合は、先に退避すること。 git clean -xfd rm -rf ~/.cache/node-gyp # 再度 npm i を実施 npm install # .devcontainer/post-create.sh の残りを実施 npm run electron 最後に、ビルドされた VS Code が起動することを確認した。 ./scripts/code.sh 2. post-create.sh に書き足して Rebuild する 手動で入れた clang は、コンテナを Rebuild すると消える。そこで、.devcontainer/post-create.sh に同じ内容を書き足す。 #!/bin/sh set -e sudo apt-get update sudo apt-get install -y clang-22 export CC=clang-22 CXX=clang++-22 npm i npm run electron - set -e は、途中のコマンドが失敗したときにそこで止めるための指定。 書き換えたら、コマンドパレットから Dev Containers: Rebuild Container を実行する。通常の Rebuild で post-create.sh が再実行され、そのあと ./scripts/code.sh で VS Code を起動できた。 Rebuild Container Without Cache は使わなかった。post-create.sh はコンテナの作成後に実行されるため、イメージのキャッシュを捨てる必要はない。 結論 - 公式の Dev Container でそのままビルドすると、.devcontainer/post-create.sh 内の npm i が GCC 12.2 では失敗する。main と release/1.142 のどちらでも、native-keymap のビルドで V8 ヘッダのエラーになり、同じ結果だった。 - 検証した範囲では、clang-14 / 15 は失敗し、clang-16 以上(16 / 19 / 22)に切り替えると npm install が通り、./scripts/code.sh で VS Code(Code - OSS)を起動できた。 - .devcontainer/post-create.sh に clang の導入と export CC=... CXX=... を書き足し、Dev Containers: Rebuild Container を実行すると、./scripts/code.sh で VS Code を起動できた。 - 失敗の原因は、Electron のV8ヘッダ(native-keymap のネイティブビルド時に参照される)をコンパイルできないことだと推測している。公式に確認した原因ではない。 注意点 - 手動で export CC=... CXX=... を実行した場合、そのターミナルセッションだけで有効。新しいターミナルを開くと再設定が必要。post-create.sh に書いた export は、そのスクリプト内のコマンドにだけ効く。 - 手動で入れた clang はコンテナ内の変更なので、コンテナを Rebuild すると消える。post-create.sh に導入を書き足しておけば、Rebuild のたびに自動で入る。書き足していない場合は、Rebuild 後に再び npm i が失敗する。 - .devcontainer/post-create.sh はリポジトリの追跡対象ファイルなので、書き換えると git status に差分が出る。コミットしないこと。 - 「ボリュームでクローン」する流れでは、最初のコンテナ作成の時点で post-create.sh を書き換えられないため、初回は npm i が必ず失敗する。初回から成功させる方法として、ホスト側にクローンして、コンテナを開く前に post-create.sh を書き換えてから「コンテナーで再度開く」を選択する。 - ボリュームにクローンした場合、Docker側でボリュームを削除すると、push していない変更は失われる。 - GUI が表示できない環境では、./scripts/code-server.sh --launch でブラウザから確認する方法もある(今回は code.sh でウィンドウが表示された)。
Copilot harness: granular Keep/Undo is available Just wanted to be sure everyone is aware that the nice Keep/Undo UX present in the Local harness is now also available in the Copilot harness. You can try it now with 1.144.0-insider, or wait until next wednesday. vscode#339363 It's important everyone give feedback so unexpected behavior, or behavior different compared to Local, is fixed asap. Also take a look at the list of UX shortcomings compared to Local listed at: vscode#339363 and let me know if you agree with a thumbs up. That issue is only for Keep/Undo, so I'll create new issues for the other ones soon enough.
Meilleures extensions VS Code en 2026 : 15 choix pour un environnement efficace L'essentiel en une minute Les meilleures extensions VS Code ne sont pas forcément les plus installées : plusieurs vedettes des classements habituels ne sont plus mises à jour, et la fiche de l'une d'elles était introuvable le 23 octobre 2026. Cette sélection retient 15 extensions, classées par besoin, d'après leur fiche relue ce jour-là. L'article est une synthèse de sources publiques, sans essai maison. Il vise le développement web et l'outillage : les extensions propres à un langage (Python, C/C++, Java) sont hors sujet. > Points clés > > - 14 des 15 extensions retenues ont publié une version en 2026. REST Client est une exception assumée : sa dernière version date du 19 août 2022. > - 11 sur 15 viennent d'un éditeur vérifié. > - Toutes s'installent gratuitement. GitHub Copilot Chat et GitLens réservent des fonctions à une offre payante ; Claude Code ne s'utilise qu'avec un abonnement ou une facturation à la consommation. > - Git Graph et Auto Rename Tag n'ont pas été mises à jour depuis 2021 et 2022. La fiche de Codeium renvoyait une erreur 404 les 12, 13 et 23 octobre 2026. > - Microsoft a retiré 1 855 extensions de son catalogue entre le 1er janvier et le 22 octobre 2026, d'après notre décompte de sa liste publique. --- Comment cette sélection a été faite Trois critères, tous lisibles sur une fiche : un usage large (plus de 5 millions d'installations), une version publiée en 2026 et un éditeur identifiable, c'est-à-dire vérifié ou, à défaut, relié à un dépôt de code public. Quatorze des quinze retenues remplissent les trois. REST Client échoue au deuxième et reste une exception, expliquée dans sa section. Ces critères sont nécessaires, pas suffisants : quatre candidates relevées les remplissent sans être retenues. Thunder Client et Live Preview sont citées plus bas comme alternatives. EditorConfig (15,3 millions d'installations, mise à jour le 8 avril 2026, dépôt public) recoupe en partie Prettier, dont la fiche indique qu'elle lit le fichier .editorconfig par défaut (réglage prettier.useEditorConfig). Cline (5,7 millions, éditeur vérifié, mise à jour le 16 octobre 2026) serait un troisième assistant d'IA : nous avons limité cette catégorie aux deux plus installés. Les chiffres viennent de la page de chaque extension sur le Visual Studio Marketplace (le catalogue), relue le 23 octobre 2026 par une requête GET. Le compteur cumule les installations uniques depuis la publication, hors mises à jour, selon l'infobulle du site : il ne dit rien des utilisateurs actifs. Pourquoi VS Code ? Dans l'enquête 2025 de Stack Overflow, 75,9 % des répondants à la question sur les environnements de développement déclarent l'utiliser, devant Visual Studio à 29 % (Stack Overflow Developer Survey 2025, 26 143 réponses à cette question). Si vous hésitez sur l'outil lui-même, notre comparatif des IDE et éditeurs de code pose ce choix. --- Les meilleures extensions VS Code en un tableau Installations arrondies à la centaine de milliers, notes sur 5 ; « Vérifié » signale le badge bleu de l'éditeur. | Extension | Éditeur | Vérifié | Installations | Note | Avis | Dernière mise à jour | |---|---|---|---|---|---|---| | ESLint | Microsoft | Oui | 53,5 M | 4,3 | 251 | 16 juillet 2026 | | Prettier | Prettier | Oui | 72,5 M | 3,5 | 492 | 16 mars 2026 | | Error Lens | Alexander | Non | 10,2 M | 4,9 | 188 | 22 octobre 2026 | | GitLens | GitKraken | Oui | 53,5 M | 3,4 | 944 | 20 octobre 2026 | | GitHub Pull Requests | GitHub | Oui | 37,1 M | 3,9 | 148 | 23 octobre 2026 | | GitHub Copilot Chat | GitHub | Oui | 79,0 M | 2,8 | 403 | 15 mai 2026 | | Claude Code | Anthropic | Oui | 28,6 M | 3,7 | 835 | 22 octobre 2026 | | Dev Containers | Microsoft | Oui | 42,4 M | 4,1 | 60 | 8 septembre 2026 | | Remote - SSH | Microsoft | Oui | 38,2 M | 3,6 | 223 | 9 octobre 2026 | | Container Tools | Microsoft | Oui | 19,1 M | 3,8 | 20 | 19 octobre 2026 | | REST Client | Huachao Mao | Non | 7,7 M | 4,9 | 388 | 19 août 2022 | | Tailwind CSS IntelliSense | Tailwind Labs | Oui | 14,8 M | 4,5 | 118 | 17 juillet 2026 | | Live Server | Ritwick Dey | Non | 83,8 M | 4,4 | 519 | 27 février 2026 | | Code Spell Checker | Street Side Software | Oui | 18,5 M | 4,5 | 314 | 15 octobre 2026 | | Material Icon Theme | Philipp Kief | Non | 36,0 M | 4,9 | 400 | 2 octobre 2026 | !Graphique à barres horizontales des installations des 15 extensions retenues au 23 octobre 2026, de Live Server à 83,8 millions jusqu'à REST Client à 7,7 millions Popularité et satisfaction ne vont pas toujours ensemble. GitHub Copilot Chat est la deuxième extension la plus installée de la liste et la plus mal notée, à 2,8 sur 5, alors que Live Server, la première, obtient 4,4. Lisez ces notes avec prudence : elles reposent sur 20 à 944 avis, pour des millions d'installations. --- Qualité du code Analyse, mise en forme, affichage des erreurs : trois rôles distincts. 1. ESLint ESLint branche dans VS Code l'analyseur du même nom pour JavaScript et TypeScript. Gratuite, publiée par Microsoft, éditeur vérifié : 53,5 millions d'installations, note de 4,3, mise à jour le 16 juillet 2026. Réglage utile. Pour corriger à l'enregistrement, la fiche donne cette entrée de settings.json : "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" } 2. Prettier Prettier remet le code en forme selon des règles fixes, ce qui clôt les débats de style en équipe. Gratuite, publiée par Prettier, éditeur vérifié : 72,5 millions d'installations, note de 3,5, mise à jour le 16 mars 2026. Réglage utile. Déclarez-la comme outil de mise en forme avec "editor.defaultFormatter": "esbenp.prettier-vscode". La fiche précise que ce réglage ne vaut pas pour plusieurs langages à la fois : il faut le répéter par langage. Vérifiez l'identifiant : la fiche homonyme Prettier.prettier-vscode, publiée par « Prettier (DO NOT USE) », se déclare obsolète et renvoie vers esbenp.prettier-vscode. 3. Error Lens Error Lens affiche le message d'erreur au bout de la ligne fautive, sans ouvrir le panneau des problèmes. Gratuite, publiée par Alexander, éditeur non vérifié : 10,2 millions d'installations, note de 4,9, mise à jour le 22 octobre 2026. Réglage utile. Si l'écran devient trop chargé, limitez l'affichage aux erreurs avec errorLens.enabledDiagnosticLevels. --- Git et revue de code VS Code gère déjà commits et branches ; ces deux extensions ajoutent l'historique ligne par ligne et la revue des demandes de fusion (pull requests). Pour la suite de la chaîne, voyez notre guide pour automatiser ses déploiements. 4. GitLens GitLens montre qui a modifié chaque ligne, quand et dans quel commit. Publiée par GitKraken, éditeur vérifié : 53,5 millions d'installations, note de 3,4, mise à jour le 20 octobre 2026. À savoir. La fiche décrit une édition Community, gratuite et open source, qui couvre l'attribution des lignes et l'historique. Le graphe des commits est gratuit sur les dépôts publics avec un compte GitKraken. Sur les dépôts privés, il relève de l'offre Pro, avec 14 jours d'essai. 5. GitHub Pull Requests GitHub Pull Requests permet de relire, commenter et valider des demandes de fusion sans quitter VS Code. Gratuite, publiée par GitHub, éditeur vérifié : 37,1 millions d'installations, note de 3,9, mise à jour le 23 octobre 2026. Réglage utile. L'extension cherche par défaut les demandes de fusion sur les dépôts distants origin et upstream. Si les vôtres portent un autre nom, ajoutez-les au réglage githubPullRequests.remotes. --- Assistance par IA Deux assistants dominent notre relevé par leurs installations. Aucun n'est entièrement gratuit. Notre comparatif ChatGPT, Claude et Gemini compare les modèles, et notre guide pour coder plus vite avec l'IA traite de la méthode. 6. GitHub Copilot Chat D'après sa fiche, GitHub Copilot Chat regroupe les suggestions pendant la frappe, la discussion et des agents qui modifient plusieurs fichiers. Publiée par GitHub, éditeur vérifié : 79,0 millions d'installations, note de 2,8, mise à jour le 15 mai 2026. L'installation est gratuite, l'usage en partie. La fiche porte la mention « Free Trial ». L'offre gratuite est bornée à 2 000 complétions par mois et à un usage « limité » de la discussion et des agents, désormais décompté en crédits. L'offre Pro coûte 10 $ par mois, d'après la page des offres de GitHub, consultée le 23 octobre 2026. Réglage utile. Le réglage chat.disableAIFeatures désactive les fonctions d'IA intégrées, selon la documentation de VS Code. 7. Claude Code D'après sa fiche, Claude Code est un agent qui explore le dépôt, propose des modifications et lance des commandes avec votre accord. Publiée par Anthropic, éditeur vérifié : 28,6 millions d'installations, note de 3,7, mise à jour le 22 octobre 2026. L'installation est gratuite, pas l'usage. La fiche, étiquetée « Free », demande un abonnement Pro, Max, Team ou Enterprise, ou une facturation à la consommation. L'offre Pro coûte 20 $ par mois, ou 17 $ en paiement annuel, et l'offre gratuite n'inclut pas Claude Code, d'après la page de tarifs de Claude, consultée le 23 octobre 2026. Autre réserve : c'est la seule des 15 fiches qui ne déclare aucun dépôt de code source, ce qui la fait échouer à l'une de nos vérifications de sécurité. Réglage utile. Selon la fiche, le réglage « Claude Code: Use Terminal » permet de revenir à l'interface en terminal de l'extension précédente. --- Conteneurs et travail à distance Ces trois extensions gratuites de Microsoft, éditeur vérifié, déplacent l'environnement de travail dans un conteneur ou sur un serveur. Elles supposent des bases que couvrent nos guides Docker pour débutants et Kubernetes pour débutants. 8. Dev Containers Dev Containers ouvre un projet dans un conteneur Docker qui embarque outils, dépendances et extensions : 42,4 millions d'installations, note de 4,1, mise à jour le 8 septembre 2026. Réglage utile. La commande « Dev Containers: Add Dev Container Configuration Files... » crée le fichier .devcontainer/devcontainer.json. Sa propriété customizations.vscode.extensions liste les extensions à installer dans le conteneur, selon la documentation de VS Code. 9. Remote - SSH Remote - SSH ouvre un dossier situé sur un serveur comme s'il était local : 38,2 millions d'installations, note de 3,6, mise à jour le 9 octobre 2026. À savoir. La fiche demande 1 Go de mémoire au minimum et recommande 2 Go avec un processeur à deux cœurs. 10. Container Tools Container Tools gère images, conteneurs, volumes et fichiers Compose depuis VS Code. Elle remplace l'extension Docker de Microsoft, dont la fiche se décrit désormais comme un simple pack qui l'installe. Elle compte 19,1 millions d'installations, une note de 3,8 sur 20 avis seulement ; dernière mise à jour le 19 octobre 2026. Réglage utile. Pour utiliser Podman à la place de Docker, la fiche indique les réglages containers.containerClient et containers.orchestratorClient, suivis d'un redémarrage. --- Test des API Une seule extension retenue, l'exception de la liste. Pour une cible d'essai, voyez notre tutoriel pour créer une API REST avec Node.js et Express. 11. REST Client REST Client envoie des requêtes HTTP écrites dans un fichier .http et affiche la réponse dans un panneau voisin. Gratuite, publiée par Huachao Mao, éditeur non vérifié : 7,7 millions d'installations, le plus petit total de la liste, et une note de 4,9. Elle ne remplit pas notre critère de fraîcheur : sa dernière version date du 19 août 2022. Deux raisons la séparent de Git Graph, écartée plus bas : son dépôt GitHub a reçu un commit le 30 janvier 2026, une simple mise à jour de dépendances, contre le 19 septembre 2021 pour Git Graph, et ses requêtes sont de simples fichiers texte, lisibles sans elle. Un commit ne vaut pas une version : si la maintenance compte plus pour vous, voyez les deux alternatives vérifiées ci-dessous. | Alternative | Installations | Note | Avis | Prix affiché | Dernière mise à jour | |---|---|---|---|---|---| | Thunder Client | 7,7 M | 2,4 | 767 | Free Trial | 17 octobre 2026 | | Postman | 2,7 M | 3,0 | 93 | Free | 22 octobre 2026 | Réglage utile. Séparez les requêtes par ### et lancez-les avec Ctrl+Alt+R. Le réglage rest-client.environmentVariables définit des environnements, avec un bloc $shared commun à tous. --- Front-end Deux extensions suffisent à la plupart des projets d'interface. !Ordinateur portable ouvert sur un éditeur de code, l'environnement où s'installent les meilleures extensions VS Code 12. Tailwind CSS IntelliSense Tailwind CSS IntelliSense complète les noms de classes, signale les erreurs et montre le CSS produit au survol. Gratuite, publiée par Tailwind Labs, éditeur vérifié : 14,8 millions d'installations, note de 4,5, mise à jour le 17 juillet 2026. Réglage utile. La fiche conseille d'activer "strings": "on" dans editor.quickSuggestions pour obtenir la complétion dans les attributs JSX. 13. Live Server Live Server lance un serveur local qui recharge la page à chaque enregistrement. Gratuite, publiée par Ritwick Dey, éditeur non vérifié : 83,8 millions d'installations, note de 4,4. Elle a été mise à jour le 27 février 2026. À savoir. Le bouton « Go Live » de la barre d'état démarre et arrête le serveur. Si vous préférez un éditeur vérifié, Microsoft publie Live Preview : 13,9 millions d'installations, note de 4,4. Sa dernière mise à jour date du 23 septembre 2026. --- Productivité Les deux dernières ne changent pas le comportement du code, mais ce que vous lisez toute la journée. 14. Code Spell Checker Code Spell Checker repère les fautes dans les noms de variables, les commentaires et la documentation. Gratuite, publiée par Street Side Software, éditeur vérifié : 18,5 millions d'installations, note de 4,5, mise à jour le 15 octobre 2026. Réglage utile. La fiche liste un dictionnaire français à installer en complément, et le commentaire cSpell:locale fr,en active les deux langues dans un fichier. 15. Material Icon Theme Material Icon Theme attribue une icône distincte à chaque type de fichier et de dossier. Gratuite, publiée par Philipp Kief, éditeur non vérifié : 36,0 millions d'installations, note de 4,9, mise à jour le 2 octobre 2026. Réglage utile. Après l'installation, lancez la commande « Material Icons: Activate Icon Theme ». Le réglage material-icon-theme.files.associations attribue une icône à vos propres types de fichier. --- Quatre extensions connues à ne plus installer les yeux fermés Voici ce que nous avons lu le 23 octobre 2026 : - Git Graph. La fiche affiche 15,6 millions d'installations et une note de 4,9, mais sa dernière mise à jour date du 5 avril 2021. - Auto Rename Tag. La fiche, mise à jour le 8 février 2022, signale elle-même que VS Code renomme les balises HTML sans extension avec "editor.linkedEditing": true. - Codeium. L'adresse de la fiche Codeium.codeium renvoyait une erreur 404 à une requête GET, les 12, 13 et 23 octobre 2026. - L'ancienne extension GitHub Copilot. Sa fiche affiche 74,8 millions d'installations et une note de 4,1 sur 1 058 avis, mais sa dernière mise à jour date du 24 octobre 2025. Notre réserve repose sur cette seule date. --- Sécurité des extensions Une extension est un programme qui tourne avec vos droits : selon la documentation de VS Code, elle dispose des mêmes permissions que VS Code lui-même et peut lire et écrire des fichiers, envoyer des requêtes réseau ou lancer des processus (sécurité d'exécution des extensions, relue le 23 octobre 2026). Ce que garantit un éditeur vérifié Le badge bleu atteste deux choses, selon la même page : l'éditeur a prouvé qu'il possède son nom de domaine, et il est en règle sur le catalogue depuis au moins six mois. Il ne certifie pas le code. Le catalogue ajoute, d'après cette page, une analyse antivirus de chaque version avant publication, une vérification du comportement à l'exécution dans un environnement isolé, le blocage des noms imitant un éditeur connu, la signature des paquets et une liste de blocage qui désinstalle une extension reconnue malveillante. Les incidents documentés Ces contrôles laissent passer des cas, et Microsoft le publie. Sa liste des extensions retirées compte 1 855 entrées datées du 1er janvier au 22 octobre 2026, d'après notre décompte du fichier RemovedPackages.md lu le 23 octobre 2026. Le motif le plus fréquent est l'usurpation d'identité, avec 1 068 entrées. Viennent ensuite 360 entrées mentionnant un logiciel malveillant, avéré ou soupçonné, 291 classées « non fiable », 123 pour spam et 13 pour d'autres motifs. Une entrée qui cite deux motifs, comme « Spam / Malware », est comptée avec les logiciels malveillants. !Graphique en anneau : 1 855 extensions retirées du Visual Studio Marketplace du 1er janvier au 22 octobre 2026, dont 1 068 pour usurpation d'identité, 360 pour logiciel malveillant, 291 jugées non fiables, 123 pour spam et 13 pour d'autres motifs Deux affaires de 2026 : - Janvier 2026. Deux extensions d'assistance par IA totalisant 1,5 million d'installations envoyaient le contenu des fichiers ouverts vers des serveurs en Chine, selon les chercheurs de Koi Security cités par BleepingComputer le 23 janvier 2026. - Mai 2026. GitHub a confirmé qu'environ 3 800 de ses dépôts internes avaient été copiés après l'installation d'une extension malveillante par un employé, rapporte BleepingComputer le 20 mai 2026. Quatre vérifications avant d'installer 1. L'identifiant exact. Comparez le nom technique, par exemple esbenp.prettier-vscode, et pas seulement le nom affiché. 2. L'éditeur. Cherchez le badge bleu et le nom de domaine. Leur absence n'est pas une alerte, mais elle demande plus d'attention. 3. La date de mise à jour et le dépôt source. Une fiche sans dépôt public ne peut pas être relue. Dans notre sélection, c'est le cas de Claude Code. 4. Le mode restreint. Ouvrez un dépôt inconnu sans lui accorder votre confiance : les extensions qui ne déclarent pas ce mode y sont désactivées, selon la documentation sur la confiance. Notre panorama des cyberattaques les plus fréquentes replace ces réflexes dans un cadre plus large. --- Performance : trouver une extension lente VS Code fournit de quoi identifier l'extension fautive, d'après la page Performance Issues de son dépôt officiel, consultée le 23 octobre 2026 : | Outil intégré | Ce qu'il montre | |---|---| | « Developer: Show Running Extensions » | Les extensions en cours d'exécution, avec un bouton pour enregistrer un profil processeur | | « Help: Start Extension Bisect » | L'extension en cause, trouvée par désactivations successives | | Explorateur de processus du menu Aide | La part de processeur de chaque processus, dont l'hôte d'extensions | | « Startup Performance » | Les temps détaillés du démarrage | | code --disable-extensions | Un lancement sans aucune extension, pour comparer | Le plus rapide est Extension Bisect, qui désactive la moitié des extensions, demande si le problème persiste, puis recommence sur la moitié suspecte. Son auteur, Johannes Rieken, de l'équipe de VS Code, compte 4 à 5 étapes pour 24 extensions, une de plus pour 38 (blog de VS Code, 16 février 2021). Ensuite, désactivez la coupable pour l'espace de travail concerné, ou créez un profil par type de projet : un profil a ses propres extensions et s'associe à un dossier, selon la documentation des profils. Si VS Code reste lent sans extension, regardez du côté de la machine avec notre guide du laptop pour développeur. --- Par où commencer Inutile d'installer les quinze. Partez de votre profil, puis ajoutez au besoin : - Débutant en développement web. Live Server, Prettier et Error Lens. - JavaScript ou TypeScript en équipe. ESLint, Prettier, GitLens et GitHub Pull Requests. - Back-end et DevOps. Dev Containers, Container Tools, Remote - SSH et REST Client. - Tous profils. Code Spell Checker et Material Icon Theme. --- Ce que nous n'avons pas pu vérifier Restent en suspens : - Le comportement réel des extensions. Nous n'en avons installé aucune. Les réglages cités viennent des fiches et de la documentation. - Le sort de Codeium. Nous constatons trois erreurs 404, sans explication officielle lue. Nous ignorons si l'extension a été retirée, renommée ou déplacée. - Le code source de Claude Code. La fiche ne déclare aucun dépôt source ; son lien d'assistance pointe vers le dépôt GitHub anthropics/claude-code, dont nous n'avons pas vérifié qu'il contient le code de l'extension. - L'extension en cause dans l'incident de GitHub. Son nom n'est pas donné dans l'article cité, et nous n'avons pas relu le communiqué d'origine. - L'exhaustivité de la liste de Microsoft. Nos totaux sont un décompte automatique des lignes datées : une ligne mal formatée a pu nous échapper. --- Questions fréquentes Les extensions VS Code sont-elles gratuites ? Les 15 extensions de cette sélection s'installent sans payer. Deux réservent des fonctions à une offre payante : GitHub Copilot Chat, au-delà d'un quota gratuit, et GitLens pour ses fonctions Pro sur dépôts privés. Une troisième, Claude Code, ne s'utilise qu'avec un abonnement ou une facturation à la consommation. Trop d'extensions ralentissent-elles VS Code ? Cela dépend des extensions plus que de leur nombre. Mesurez avec « Developer: Show Running Extensions », puis isolez la fautive avec « Help: Start Extension Bisect », d'après la page Performance Issues du dépôt officiel. Une extension peut-elle voler mon code ? Oui. La documentation de VS Code indique qu'une extension peut lire vos fichiers et envoyer des requêtes réseau, et des cas réels ont été documentés en 2026. Comment installer une extension en ligne de commande ? Avec code --install-extension suivi de l'identifiant, par exemple code --install-extension dbaeumer.vscode-eslint. La documentation du catalogue d'extensions précise que l'option peut être répétée pour en installer plusieurs. --- À propos de l'auteur Abdelilah Ourti est ingénieur IA et architecte logiciel. Il conçoit et déploie des applications web et des systèmes d'IA, et publie sur NeurauTech des guides et des comparatifs destinés aux développeurs francophones. Ses autres articles sont réunis sur sa page auteur. Méthode. Synthèse fondée exclusivement sur des sources publiques : fiches du Visual Studio Marketplace lues le 12 octobre 2026 et relues le 23 octobre 2026, documentation et dépôt officiels de VS Code, liste des extensions retirées publiée par Microsoft, pages de tarifs des éditeurs, enquête de Stack Overflow et presse spécialisée. Les installations, notes et dates changent en continu. Aucune extension n'a été installée ni évaluée pour cet article, aucun lien n'est affilié et aucune relation commerciale ne lie l'auteur aux éditeurs mentionnés. Une erreur ou un chiffre périmé ? Écrivez à contact@neurautech.com : l'article sera corrigé et la date de mise à jour modifiée. Dernière mise à jour : 23 octobre 2026. Images : Gabriel Heinzer et Mohammad Rahmani (Unsplash License).
vscode: The Hottest TypeScript Repo on GitHub Right Now In this video, we break down microsoft/vscode - one of the hottest open-source projects on GitHub right now. Visual Studio Code. It has already earned 193,840 stars on GitHub and is written primarily in TypeScript. We look at what it does, why developers are paying attention to it right now, and who should try it. 📂 Repo: microsoft/vscode 🌐 Stars: 193,840 | Language: TypeScript | Forks: 45,812 🔔 Subscribe for daily picks of the hottest GitHub repos: / @reporadar #github #opensource #programming keywords: coding, developer tools, github, opensource, programming, software, tech