VS Codeのエージェントモードを拡張するには、を試してください!

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の行がわずかにずれる問題が修正されました。

Stable 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 を使用すると、問題パネルを自動的に表示できます。プロパティ値は alwaysneveronProblem です。

{
  "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 JavaScript support in interpolations

この機能の詳細については、Veturのドキュメントを参照してください。

その他の改善点として、メモリ使用量の削減とインポートパスの補完があります。詳細については、Veturの変更ログを参照してください。

拡張機能作成

複数拡張機能のデバッグ

このマイルストーンでは、複数の拡張機能を同時にデバッグするためのサポートが追加されました。これは、密接に結合している、または相互に依存する拡張機能のセットを開発している場合に役立ちます。

以前は、この機能はVS Codeのコマンドラインインターフェースを介してのみ利用可能でしたが、--extensionDevelopmentPath 引数を複数回指定できるようになりました。通常、--extensionDevelopmentPath は拡張機能の起動構成で使用されます。複数の拡張機能を開発する場合、個々の拡張機能プロジェクトをマルチフォルダーワークスペースに結合し、個々の拡張機能に対して複数の --extensionDevelopmentPath 引数を使用する新しい起動構成 (ワークスペースの .code-workspace ファイルに保存) を作成することをお勧めします。

以下に、2つの拡張機能 hello1hello2、および両方の拡張機能に対する単一の起動構成を含むワークスペース .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 ページをご覧ください。

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-html-languageserviceへの貢献

node-jsonc-parserへの貢献

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

vscode-eslintへの貢献者

vscode-lsif-extensionへの貢献

vscode-textmateへの貢献

  • Carl Morris (@msftrncs)
    • 空または欠落したbeginを許可する PR #86
    • プッシュされたルールが進んだかどうかをキャプチャし、ポップされたときに反映する PR #85

vscode-recipesへの貢献

vscode-vsceへのコントリビューション

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.