2019年4月 (バージョン 1.34)
ダウンロード: Windows: x64 | Mac: Intel | Linux 64-bit: deb rpm tarball snap | 32-bit: deb rpm tarball
Visual Studio Codeの2019年4月リリースへようこそ。4月には、リモート開発拡張機能のプレビューリリースに忙しくしていました。これらの拡張機能により、SSH経由でリモートマシンまたはVM、WSL (Windows Subsystem for Linux)、またはDockerコンテナ内でVS Codeを使用できます。詳細については、Visual Studio Codeを使用したリモート開発のブログ記事を参照してください。
このバージョンには、引き続きいくつかの更新があり、多くのコミュニティ貢献も行われました。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
エディター
安定したCodeLens
VS CodeはCodeLensの位置を最適にキャッシュし、エディターを切り替えた直後に復元するようになりました。これにより、エディターを切り替えるとCodeLensの行がわずかにずれる問題が修正されました。
言語
ベンダープレフィックス付きCSSプロパティ値のランクの低下
ダッシュ '-'
でプレフィックスされたCSSプロパティ値 (-moz-grid
や -ms-grid
など) は、自動補完で grid
の後に表示されるようになりました。
デバッグ
debug.showSubSessionsInToolBar
デバッグサブセッションをデバッグツールバーに表示するかどうかを制御する設定 debug.showSubSessionsInToolBar
を導入しました。この設定がfalseの場合、サブセッションの停止コマンドは親セッションも停止します。この設定のデフォルトはfalseです。
タスク
すべてのタスクを終了する
タスク: タスクの終了コマンドには、複数のタスクが実行されている場合にすべてのタスクを終了する新しいオプションが追加されました。このアクションを頻繁に行う場合は、terminateAll
引数を指定してこのコマンドのキーボードショートカットを作成できます。
{
"key": "ctrl+k t",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
問題パネルを自動的に表示する
新しいタスクプロパティ revealProblems
を使用すると、問題パネルを自動的に表示できます。プロパティ値は always
、never
、onProblem
です。
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "always",
"revealProblems": "onProblem"
}
}
]
}
拡張機能への貢献
プレビュー: リモート開発
❗ 注: リモート開発拡張機能にはVisual Studio Code Insidersが必要です。
Visual Studio Code Remote Developmentを使用すると、コンテナー、リモートマシン、またはWindows Subsystem for Linux (WSL)をフル機能の開発環境として使用できます。
リモート開発拡張機能パックの拡張機能は、リモートワークスペースのコンテキストで実行されますが、VS Codeはローカルで実行しているように感じられます。
Vetur
Vetur拡張機能は、Vueのテンプレート補間領域内のJavaScript式に対して、セマンティック診断、ホバー情報、定義へのジャンプ、および参照の検索を提供するようになりました。
この機能の詳細については、Veturのドキュメントを参照してください。
その他の改善点として、メモリ使用量の削減とインポートパスの補完があります。詳細については、Veturの変更ログを参照してください。
拡張機能作成
複数拡張機能のデバッグ
このマイルストーンでは、複数の拡張機能を同時にデバッグするためのサポートが追加されました。これは、密接に結合している、または相互に依存する拡張機能のセットを開発している場合に役立ちます。
以前は、この機能はVS Codeのコマンドラインインターフェースを介してのみ利用可能でしたが、--extensionDevelopmentPath
引数を複数回指定できるようになりました。通常、--extensionDevelopmentPath
は拡張機能の起動構成で使用されます。複数の拡張機能を開発する場合、個々の拡張機能プロジェクトをマルチフォルダーワークスペースに結合し、個々の拡張機能に対して複数の --extensionDevelopmentPath
引数を使用する新しい起動構成 (ワークスペースの .code-workspace
ファイルに保存) を作成することをお勧めします。
以下に、2つの拡張機能 hello1
と hello2
、および両方の拡張機能に対する単一の起動構成を含むワークスペース .code-workspace
ファイルの例を示します。
{
"folders": [{ "path": "hello1" }, { "path": "hello2" }],
"launch": {
"configurations": [
{
"type": "extensionHost",
"request": "launch",
"name": "Launch Two Extensions",
"args": [
"--extensionDevelopmentPath=${workspaceFolder:hello1}",
"--extensionDevelopmentPath=${workspaceFolder:hello2}"
],
"outFiles": [
"${workspaceFolder:hello1}/out/**/*.js",
"${workspaceFolder:hello2}/out/**/*.js"
]
}
]
}
}
このリリースでは、個々の拡張機能プロジェクトの preLaunchTask
を結合して両方の拡張機能をビルドする preLaunchTask
を作成することはできませんのでご注意ください。
通知のコマンドリンク
これまでも、構文 [link name](http://link)
を使用して通知メッセージにリンクを含めることは可能でしたが、これはブラウザで開くリンクにのみ機能していました。これで、構文 [link name](command:
を使用してリンクからコマンドを呼び出すこともできます。ユーザーがリンクをクリックすると、指定された識別子を持つコマンドがトリガーされます。
通知のリンクにタイトルを許可する
ユーザーがリンクにホバーしたときに表示されるタイトルを、通知のリンクに追加できるようになりました。構文は [link name](link "
です。
提案された拡張API
各マイルストーンには新しい提案APIが付属しており、拡張機能開発者はこれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行します。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.json
ファイルに次の行が必要です:"enableProposedApi": true
。 - vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。
提案APIを使用する拡張機能は公開できないことに注意してください。次回のリリースでは互換性のない変更が行われる可能性があり、既存の拡張機能を壊すことは決して望ましくありません。
vscode.workspace.workspaceFile
ワークスペースファイルの場所を返す新しいワークスペースプロパティが追加されました。例: file:///Users/name/Development/myProject.code-workspace
、または未保存の無題のワークスペースの場合は untitled:1555503116870
。
開かれているワークスペースによって、値は次のようになります。
- ワークスペースが開かれていない場合、または単一のフォルダーが開かれている場合は
undefined
。 - ワークスペースファイルのパスは
Uri
として。
ワークスペースが無題の場合、返されるURIは untitled:
スキームを使用します。
ワークスペースファイルの場所の1つの使用例は、ワークスペースを閉じた後に再度開くために vscode.openFolder
コマンドを呼び出すことです。
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
注: workspace.workspaceFile
の場所を使用して構成データをファイルに直接書き込むことはお勧めしません。単一のフォルダーが開かれている場合も、無題または保存済みのワークスペースの場合も機能する workspace.getConfiguration().update()
を使用できます。
マシン固有の設定
ユーザーが実行可能ファイルのパスをカスタマイズでき、これらのパスが実行されているマシンにスコープされる必要がある設定がある場合、そのような設定を machine
スコープとして分類できるようになりました。拡張機能の作成者は、configuration
拡張ポイントに貢献するときに scope
プロパティを設定します。マシン固有の設定は、ユーザー設定でのみ構成できます。
"configuration": {
"title": "Git",
"properties": {
"git.path": {
"type": [
"string",
"null"
],
"markdownDescription": "Path and filename of the git executable.",
"default": null,
"scope": "machine"
}
}
}
エンジニアリング
ローカルファイルのファイルシステムプロバイダーの書き換え
拡張機能は、カスタムリソース用の独自のファイルシステム実装を提供できるようになりました (詳細はこちら)。ただし、VS Codeのローカルファイル用の独自の実装は、同じ拡張機能APIで実装されていませんでした。これにより、ローカルファイルリソースを拡張機能からのリソースと比較した場合に、微妙な違いが生じました。過去2つのマイルストーンで、私たちはローカルファイルシステムプロバイダーを書き換え、一貫性のために拡張機能APIを使用するようにしました。
新しいドキュメント
Python Azure Functions
PythonサーバーレスAzure Functionsを作成およびデプロイする方法を説明する新しいチュートリアルPythonをAzure Functionsにデプロイするが追加されました。
その他
言語サーバープロトコル
言語サーバープロトコルは、以下の新しい機能のサポートを提案しています。
- 選択範囲: 位置の配列の選択範囲を計算する。クライアントからサーバーへ送信されます。
- 呼び出し階層: 特定のシンボルの呼び出し階層を計算する。クライアントからサーバーへ送信されます。
- 進行状況: サーバーからの進行状況レポートを開始する。サーバーからクライアントへ送信されます。
新しい機能は、vscode-languageclient
および vscode-languageserver
npmモジュールの次のバージョンで利用可能です。
注目すべき修正点
- 48259: エクスプローラーがFileSystemProviderからのごみ箱機能を尊重する
- 68276: コールスタックの「ブレークポイントで一時停止」UIが長いスレッド名で表示されない
- 69603: Mac OSでターミナルウィンドウがクラッシュする
- 72110: デバッグコンソールの改行が不必要にレンダリングされる
- 71737: デバッグウィンドウのスクロール動作がおかしい
- 71588: エクスプローラーでファイルを公開する際のエラー
- 70492: 「実行中の拡張機能」の「問題を報告」ボタンが数十の重複する問題を発生させる
ありがとうございます
最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
課題追跡への貢献。寄せられた課題の管理にご協力いただける場合は、Community Issue Tracking ページをご覧ください。
- John Murray (@gjsjohnmurray)
- Prabhanjan S Koushik (@skprabhanjan)
- Alexander (@usernamehw)
- Muhammed Emin TİFTİKÇİ (@jaqra)
- Carl Morris (@msftrncs)
vscode
への貢献者
- @alpalla: Fixes #27041 PR #72015
- @BaluErtl: Incorrect wording of Outline drawer default message PR #73214
- @cmchumak: Improved messaging when running a task with no workspace PR #71476
- Connor Shea (@connorshea): Display extensionId as the description in the formatter dropdown PR #71910
- Alexandr Fadeev (@fadeevab): Makefile test case about the bug fix with "@,-,+" colorizing in the recipe PR #72265
- Nikita Shilnikov (@flash-gordon): Fix typo in localization key PR #72718
- Hung-Wei Hung (@hwhung0111): Fix typo in code-cli.bat PR #73091
- Ian Sanders (@iansan5653): Add support for 8- and 24-bit ANSI escape color codes in the debug console PR #70935
- Muhammed Emin TİFTİKÇİ (@jaqra): Added title case transformation command called 'Transform to Title Case'. PR #70990
- Jimi (Dimitris) Charalampidis (@JimiC): [themes] Fix explorer arrows notification on reload PR #71855
- Jon Bockhorst (@jmbockhorst)
- Johannes Wikman (@jwikman): FindInFilesをコマンドに変換し、引数を受け入れるようにする PR #71626
- Jiaxun Wei (@LeuisKen): fix #72187 PR #72194
- Luís Ferreira (@ljmf00): theme-monokai: fix tabs indentation PR #72269
- paul cheung (@paul-cheung): fix typos PR #72334
- Evan Bovie (@phaseOne): Add
vscode:
URI prefix to knownSchemes in links.ts PR #71416 - Raman (@ramank775): Fix for "Comment box issue #71703" PR #71880
- Samuel Bronson (@SamB): json-language-features/CONTRIBUTING.md fixes PR #73273
- @sebastianwitthus: 44146 automatically show problems panel PR #71387
- Simon Siefke (@SimonSiefke): fix typo PR #71564
- Prabhanjan S Koushik (@skprabhanjan): fix-71570 Error when restoring a markdown preview for a file that has been deleted PR #71762
- Tony Xia (@tony-xia)
- Alexander (@usernamehw): webviewでスムーズスクロールを無効にするCLIフラグを追加 PR #65422
- Vitaliy Mazurenko (@vitaliymaz)
- Waleed Ashraf (@WaleedAshraf): LINE_COLON_PATTERNの末尾の空白を無視する PR #71985
- William Whittle (@whittlec): 'qsh'を有効なshellscriptの最初の行として追加 PR #73231
- Keyi Xie (@xiekeyi98): build/でのスペルミスを修正 PR #71977
- XTY (@xtydev): WSL起動スクリプトの回帰を解決 PR #72779
vscode-css-languageservice
への貢献者
- Tony Xia (@tony-xia): 軽微なtypoを修正 PR #151
vscode-html-languageservice
への貢献
- Liam Newman (@bitwiseman): js-beautifyを1.9.1に更新 PR #58
- Christian Oliff (@coliff): 属性のtypoを修正 PR #60
node-jsonc-parser
への貢献
- Tony Xia (@tony-xia): JavaScipt -> JavaScript PR #18
language-server-protocol
への貢献者
- Danny Tuppeny (@DanTup): クライアントが編集を適用できなかった理由のオプションの理由を追加 PR #637
- Ben Mewburn (@bmewburn): lsif textDocument/definitionの例のidを修正 PR #725
vscode-languageserver-node
への貢献者
- Igor Matuszewski (@Xanewok): 提案されたwindow/progress拡張機能を追加 PR #261
- Aleksey Kladov (@matklad): selectionRange APIを調整 PR #474
- Ben Mewburn (@bmewburn): onImplementationとonTypeDefinitionはDefinitionLink[]を返すことができる PR #479
- Remy Suen (@rcjsuen): 小さなtypoを修正 PR #482
vscode-eslint
への貢献者
- Mike Martin (@mcmar):
changeProcessCWD
のドキュメントを明確化 PR #657 - Ilias Tsangaris (@ilias-t): PR #661
- Charles Stover (@CharlesStover): eslint.codeAction.disableRuleCommentのオートコンプリートはnewLineではなくseparateLineを挿入すべき PR #674
vscode-lsif-extension
への貢献
- Chris Wendt (@chrismwendt): トップレベルファイルのファイルシステムルックアップを修正 PR #9
vscode-textmate
への貢献
vscode-recipes
への貢献
- AJ Alves (@zerokol): rspecファイルの特定のケースをデバッグする PR #207
vscode-vsce
へのコントリビューション
- Jimi (Dimitris) Charalampidis (@JimiC): コンパイルタスクを修正 PR #347
localization
への貢献
Microsoft Localization Community Platform (MLCP) を使用している Cloud + AI Localization コミュニティメンバーは800人を超え、Visual Studio Codeに積極的に貢献しているのは約100人です。
新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様の貢献に感謝いたします。
貢献者のスナップショットをこちらに示します。貢献者名リストを含むプロジェクトの詳細については、プロジェクトサイト https://aka.ms/vscodeloc を参照してください。
- ボスニア語: Ismar Bašanović.
- チェコ語: Daniel Padrta, David Jareš, Jan Hajek, Jiří Hofman.
- デンマーク語: Allan Kimmer Jensen, Thomas Larsen.
- オランダ語: Maxim Van Damme, Sven Klaasen.
- 英語 (英国): Martin Littlecott, Tobias Collier, William Wood, Giorgi Jambazishvili.
- フランス語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Mohamed Sahbi, Steven Dugois, Michael VAUDIN.
- ドイツ語: Christof Opresnik.
- ヒンディー語: Abhirav Kushwaha, Pramit Das.
- 簡体字中国語: paul cheung, 斌 项, Fan Su, Justin Liu, Horie Yuan, 王文杰, 赵畅畅, anson zhang, Wang Debang, Pluwen, Yiting Zhu, Joel Yang, Michael Zhang, 擎 钟, 涛 徐, 少民 谈, 伟 全, panda small, Array Zhang, LI ZHAO.
- 繁体字中国語: 謝政廷, 煾 雪.
- ハンガリー語: Levente Hallai Seiler.
- インドネシア語: Laurensius Dede Suhardiman.
- イタリア語: Alessandro Alpi, Luigi Bruno, Emanuele Meazzo, Marco Dal Pino.
- 日本語: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Seiji Momoto, Hasefumi, 迪人 熊本, Koichi Makino, Kyohei Moriyama, 美穂 山本, Aya Tokura.
- 韓国語: 형섭 이, Youngjae Kim, siin lee, Keunyop Lee.
- ラトビア語: Kaspars Bergs.
- リトアニア語: Augustas Grikšas.
- ポーランド語: Wojciech Maj, Marek Biedrzycki, Igor 05, Marcin Weksznejder, Szymon Seliga, Paweł Modrzejewski, Michał Stojke, Artur Zdanowski.
- ポルトガル語 (ブラジル): Alessandro Trovato, Judson Santiago, Roberto Fonseca, Marcelo Fernandes, Lucas Miranda, Ray Carneiro, Loiane Groner, Daniel Luna, Lucas Santos, Saymon Damásio.
- ポルトガル語(ポルトガル): Ana Rebelo, Pedro Teixeira, João Carvalho, Tiago Antunes.
- ルーマニア語: Alexandru Staicu.
- ロシア語: Andrey Veselov, Дмитрий Кирьянов, nata kazakova, Валерий Батурин.
- スペイン語: Andy Gonzalez, Carlos Mendible, José María Aguilar, Alvaro Enrique Ruano.
- タミル語: Boopesh Kumar, Karunakaran Samayan, Merbin J Anselm.
- トルコ語: mehmetcan gun, Sinan Açar, S. Ferit Arslan.
- ウクライナ語: Sviatoslav Ivaskiv, George Molchanyuk.
- ベトナム語: Khôi Phạm, Spepirus Shouru, Việt Anh Nguyễn.