に参加して、VS Code の AI 支援開発について学びましょう。

2018年9月 (バージョン 1.28)

更新 1.28.2: この更新は、これらのissueに対応しています。

更新 1.28.1: この更新は、これらのissueに対応しています。

ダウンロード: Windows: x64 | Mac: Intel | Linux 64-bit: deb rpm tarball | 32-bit: deb rpm tarball


Visual Studio Code の2018年9月リリースへようこそ。2018年9月のイテレーション計画で発表したように、私たちは GitHub の Issue とプルリクエストの整理に注力しました。VS Code のすべてのリポジトリ全体で、**3918** の Issue をクローズ (トリアージまたは修正) しました。Issue をクローズした一方で、**2187** の新しい Issue が作成されました。これにより、純粋に **1731** の Issue を削減できました。メインのvscode リポジトリには現在、2472 のオープンな機能リクエストと 625 のオープンなバグがあります。さらに、**212** のプルリクエストをクローズしました。

皆様が私たちの進捗にどれほど関心を持っているかを知ることができて、とてもうれしく思います。Benjamin Lannon 氏が、私たちのメインリポジトリの Issue 数をライブトラッカーで示す個人サイトを公開しました。これは、9月11日以降の私たちの進捗をよく示しています。

Burn down of issues

また、Issue の削減に注意を払うのをやめるとどうなるかも示しています。以下は、このリリースに向けて準備をしていた先週の最後の3日間です。ご覧のとおり、今後も Issue の整理イテレーションが増えるでしょう。

Increase of issues

この整理のマイルストーンでは、いくつかの機能リクエストに対応し、コミュニティのプルリクエストによっても新機能がもたらされました。リリースのハイライトの一部を以下に示します。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com更新 にアクセスしてください。
また、Cloud Developer Advocate の Brian Clark 氏によるこの 1.28 リリースのハイライトビデオもご覧ください。

Insiders: 新しい機能をいち早く試したいですか?毎晩リリースされるInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。

Workbench

Windows でカスタムタイトルとメニューバーがデフォルトに

以前のリリースノートで説明されたカスタムタイトルバーとテーマ適用可能なメニューは、Windows でデフォルトで有効になりました。設定 "window.titleBarStyle" は、過去1ヶ月間 Insiders の Windows で "custom" がデフォルトでしたが、これでデフォルトのエクスペリエンスとして提供する準備が整いました。

Custom title and menu bar with a dark theme on Windows

ファイルタイプごとのファイルアイコン

macOS と Windows では、VS Code はよく知られているファイルタイプのデフォルトエディターとして登録されます。VS Code は、一般的な VS Code ファイルタイプの一部にカスタムアイコンを同梱するようになりました。これらのアイコンは、アイコンのサイズが中程度から大きめに設定されている場合、OS エクスプローラーに表示されます。小さいアイコンサイズの場合、VS Code のロゴをアイコンとして保持することにしました。

File Icons

プロジェクトレベルスニペット

スニペットをプロジェクトにスコープし、チームと共有できるようになりました。Preferences: Configure User Snippets コマンドを使用するか、.vscode フォルダーに *.code-snippets ファイルを作成するだけです。プロジェクトスニペットは他のスニペットと同様に機能し、IntelliSense および Insert Snippet アクションに表示され、独自のカテゴリが追加されました。

Project Level Snippet

スニペットは複数のプレフィックスもサポートするようになりました。著作権ヘッダーのスニペットを headerstub、または copyright のいずれかでプレフィックスすべきか判断できない場合は、すべて含めることができます。prefix プロパティとして文字列配列を使用するだけです。

{
  "prefix": ["header", "stub", "copyright"],
  "body": "Copyright. Foo Corp 2028",
  "description": "Adds copyright...",
  "scope": "javascript,typescript"
}

長い間、VS Code はフォルダーを開く際にシンボリックリンクを解決していました。これは、シンボリックリンクが存在する理由があったとしても、VS Code はそれを無視し、常に解決されたリンクパスを開いていたことを意味します。この動作を変更し、シンボリックリンクを保持することにしました。

注: シンボリックリンクとしてフォルダーを開くと、特定の機能 (例: デバッグGit 統合) が機能低下する場合があります。

キーボードショートカットの記録と検索

キーボードショートカットエディター (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S)) で、キーの名前 ('shift' など) を入力する代わりに、キーストロークを入力するだけでキーバインドを検索できるようになりました。Recording Keys モードをオンにして、検索したいキーストロークを入力してください。

Record Keys

⌥⌘K (Windows, Linux Alt+K) を使用して Recording Keys モードに入ることもできます。Recording Keys モードを終了するには、Esc キーを押してください。

パネル切り替えの変更

パネル (ターミナル、出力、問題、デバッグコンソール) を切り替えるコマンドの動作を見直すことにしました。変更の背景については、Issue 19400 を参照してください。

古い動作は次のとおりでした。

  • パネルが表示されていない場合は表示される。
  • パネルが表示されている場合は非表示になる。

新しい動作は次のとおりです。

  • パネルが表示されていない場合は表示される。
  • キーボードフォーカスがある場合はパネルが非表示になる。
  • パネルが表示されているがフォーカスされていない場合はフォーカスされる。

以前の動作に戻すには、関連するパネルがアクティブなときにパネルを閉じるキーバインドを設定できます。

例えば、出力パネルの場合:

{
  "key": "cmd+shift+u",
  "command": "workbench.action.closePanel",
  "when": "activePanel==workbench.panel.output"
}

パネル識別子のリストは次のとおりです。

  • terminal - 統合ターミナル
  • workbench.panel.markers - 問題パネル
  • workbench.panel.output - 出力パネル
  • workbench.panel.repl - デバッグコンソールパネル

相対パスのコピー

ファイルパスを相対パスとしてコピーするコマンドが、ファイルエクスプローラーとエディタータブのコンテキストメニューでより目立つようになりました。

Copy Relative Path

最近開いたファイルをクイックオープンから除外

新しい設定 search.quickOpen.includeHistory を使用すると、最近開いたファイルがクイックオープンファイルピッカーに含まれるかどうかを制御できます。デフォルトでは、最近開いたファイルは検索結果の最上部に表示され、ワークスペース内の他のファイルがその下に表示されます。最近開いたファイルを最上部に表示したくない場合は、この設定を false に変更できます。

ファイルを削除するときにゴミ箱を無効にする

エクスプローラーからファイルを削除するときに、OS のゴミ箱に移動する際に問題が発生している場合、files.enableTrashfalse に設定することで、削除時に OS のゴミ箱を一切使用しないようにできます。これにより、ファイルエクスプローラーのDelete アクションとキーバインドは、OS のゴミ箱をバイパスして完全に削除するように変更されます。削除が実行される前に確認プロンプトは引き続き表示されます。

ワークスペースファイルが検出された場合に開くかどうかを尋ねるプロンプト

ルートに1つ以上の .code-workspace ファイルを含むフォルダーを開くと、VS Code は代わりにワークスペースファイルを開くかどうかを尋ねる通知を表示するようになりました。ワークスペースファイルを開くことは、単にフォルダーを開くよりも通常、より良いエクスペリエンスを提供します。マルチルートワークスペースの詳細については、ドキュメントを参照してください。

Workspace file prompt

ファイルを再度開くときにビューの状態を復元しない

VS Code は、ファイルが閉じられた後でも、ファイルのビューの状態 (カーソル位置、折りたたまれたセクションなど) を常に記憶していました。ファイルが閉じられたときにこのビューの状態を破棄する新しい設定 workbench.editor.restoreViewState が追加されました。これにより、ファイルを再度開いたときに常にファイルの最上部から開始できます。

すべてのエディターグループでファイルを閉じる

新しいコマンド Close Editor in all Groups (workbench.action.closeEditorInAllGroups) を使用すると、現在アクティブなファイルをすべてのエディターグループで閉じることができます。

問題パネル

エラーコードの表示

問題パネルに、問題のエラーコードがある場合はそれが表示されるようになりました。

Problems panel shows error codes

キーボードナビゲーションの改善

問題パネルがキーボードフレンドリーになりました

  • パネルにフォーカスがあるときに、入力を開始してフィルターできます。
  • ⌘F (Windows, Linux Ctrl+F) を使用してフィルターボックスにフォーカスを与え、⌘↓ (Windows, Linux Ctrl+Down) を使用してフィルターボックスから問題リストにフォーカスを与えることができます。

テレメトリーイベント用の出力チャンネル

7月のリリースでは、Developer: Set Log Level... コマンドを使用してログレベルを Trace に設定すると、VS Code によって送信されるすべてのテレメトリーイベントもローカルファイルにログ記録される機能を追加しました。このファイルのコンテンツは、出力パネルの Log (Telemetry) チャンネルで表示できるようになりました。以前と同様に、Developer: Open Log File... コマンドを使用してファイルを直接表示できます。

カスタムビューにフォーカスを与える

コマンドを使用してカスタムビューにフォーカスを与えることができるようになりました。各カスタムビューには個別のコマンドが用意されています。

Custom view focus commands

Linux の URL 処理

これまで Windows と macOS に限定されていた機能ですが、Linux でも VS Code URL を開くことができるようになりました。これらの URL は、vscode-insiders:extension/vscodevim.vim のように拡張機能を自動的にインストールするなど、さまざまな機能に役立ちます。

Editor

タブ補完

エディターのタブ補完が、あらゆる種類の提案を補完できるようになりました。"editor.tabCompletion": "on" を設定すると、Tab キーを押すと、スニペットだけでなく、任意のプレフィックスが補完されます。また、Tab キーを押すと次の提案が挿入され、⇧Tab (Windows, Linux Shift+Tab) キーを押すと前の提案が挿入されます。

Tab completion

最後の編集位置に移動

ファイル内で最後に編集した場所にすばやく移動するための新しいコマンド Go to Last Edit Location (workbench.action.navigateToLastEditLocation) が追加されました。デフォルトのキーバインドは ⌘K ⌘Q (Windows, Linux Ctrl+K Ctrl+Q) です。

フォーマッタなしで保存

新しいコマンド Save without Formatting (workbench.action.files.saveWithoutFormatting) は、保存参加者 (例えば、フォーマッタ、末尾の空白の削除、最終行の改行) をトリガーせずにファイルを保存するために使用できます。デフォルトのキーバインドは ⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S) です。これは、通常のプロジェクト外で、異なるフォーマット規約を持つファイルを編集する場合に便利です。

IntelliSense の局所性ボーナス

提案がカーソルからの距離に基づいてソートされるようになりました。"editor.suggest.localityBonus": true を設定すると、例えば関数パラメーターが IntelliSense リストの最上部に表示されるようになります。

Locality bonus

Emmet

このイテレーションでは、Emmet の機能にいくつかの改善を加えました。

  • JavaScript ファイルで Emmet を有効にしている場合、HTML ファイルの <script> タグ内で Emmet 略語展開が可能になりました。
  • Emmet: Wrap with Abbreviation 機能は、.html 拡張子のファイルに限定されなくなりました。
  • Emmet: Balance (inward) 機能は、選択がない場合でも現在のノードで機能するようになりました。
  • SCSS ファイルで # を含む CSS セレクターを誤って有効な略語と見なすバグが修正されました。

ソース管理

SCM コミットキーバインドの変更

scm.acceptInput コマンドを使用して、SCM ビューでコミットメッセージを承認するデフォルトのキーバインドを変更できるようになりました。

SCM ステータスバーがアクティブなファイルを追跡

左下にある SCM ステータスバーの表示が、現在アクティブなファイルが属するリポジトリを追跡するようになりました。これにより、複数のフォルダーを含むワークスペースでファイルを編集する際の混乱が軽減されます。

Git 統合

削除競合のより良い処理

削除競合は常に VS Code によって検出されてきました。今回、それらを処理するためのより良い UI フローが提供され、変更を開くと削除されていないバージョンが表示され、ステージングする際にファイルをどうするか(保持するか削除するか)を決定できます。

Keep or delete deletion conflicts

長いコミットメッセージ警告閾値の設定

git.inputValidationLength 設定を使用すると、コミットメッセージを編集する際に警告が表示されるまでの長さを設定できます。

'git init' 後にワークスペースにフォルダを追加

Git リポジトリを初期化した後、VS Code は現在開いているワークスペースにそれを追加するかどうかを尋ねるようになりました。

ブランチ検証ルールの設定

強力な git.branchValidationRegexgit.branchWhitespaceChar 設定を使用して、ブランチ名の検証方法を制御できるようになりました。詳細については、Issue 50241 を参照してください。

同期実行時に常にリベース

git.rebaseWhenSync 設定により、同期コマンドが実行時にマージではなく常にリベースを使用するように構成できます。

進捗レポートの無効化

git.showProgress 設定を使用すると、Git 操作中の進捗表示を無効にできるようになりました。

Push --force

日々の開発の中で、リスクを冒したくなる時があります。git push --force はその素晴らしい例です!VS Code を使用すると、ターミナルに入る必要なく、コミットを強制的にリモートにプッシュできるようになりました。この動作を制御するには、git.allowForcePushgit.useForcePushWithLease、および git.confirmForcePush 設定を使用します。詳細については、Issue 53286 を参照してください。

スタッシュの適用

以下の git stash apply コマンドが、グローバルなコマンドパレットに表示されるようになりました: Git: Apply Stash..., Git: Apply Latest Stash

常に表示される「ステージされた変更」セクション

git.alwaysShowStagedChangesResourceGroup 設定を使用すると、SCM ビューのステージされた変更セクションを、空の場合でも常に表示しておくことができるようになりました。

Staged changes visible

ターミナル

カスタムシーケンスを送信するキーバインドの定義

新しいコマンド workbench.action.terminal.sendSequence が追加され、アクティブなターミナルにカスタムシーケンスを直接送信できるようになりました。これにより、Unicode 文字を送信するための \u 形式を使用して、矢印キーや Enter キーなどを送信できるようになります。

{
  "key": "ctrl+u",
  "command": "workbench.action.terminal.sendSequence",
  "args": { "text": "\u001b[1;5D\u007f" }
}

検索の改善

ターミナルの検索が改善され、エディターの検索に似た動作をするようになりました。

  • 正規表現、大文字と小文字の区別、単語一致をサポート。
  • 標準の次/前を検索するキーバインド (F3, Shift+F3) が機能するようになりました。
  • 行をまたいでラップされた検索結果が返されます。

言語

TypeScript 3.1

VS Code 1.28 には TypeScript 3.1.1 が同梱されています。このリリースには、マッピング可能なタプルおよび配列型などの新しい言語機能が追加され、多くのツール改善とバグ修正も含まれています。

インポートパスのリネーム

インポートされたファイルに、より適切な名前を付けられることに気づきましたか?インポートの名前を変更するだけで、参照されているファイルの名前を変更できるようになりました。

Renaming an JavaScript import to rename a file

非同期関数への変換

JavaScript および TypeScript の新しい提案 Convert to async function は、.then Promise チェーンを使用する関数を async および await を使用するように書き換えます。

Converting a promise chain to an async function

この機能には、javascript.validate.enable 設定が true に設定されている必要があります。

JS/TS の提案に関する新しい設定

JavaScript と TypeScript の提案に関する設定名を整理し、より詳細な制御を提供するいくつかの追加設定を追加しました。

  • すべての提案関連設定は、javascript.suggest.*typescript.suggest.* の下にあります。
  • typescript.useCodeSnippetOnMethodSuggestjavascript.suggest.completeFunctionCallstypescript.suggest.completeFunctionCalls に改名されました。
  • javascript.nameSuggestionsjavascript.suggest.names に改名されました。
  • typescript.autoImportSuggestions.enabledjavascript.suggest.autoImportstypescriptscript.suggest.autoImports に改名されました。
  • 新しい javascript.suggest.enabledtypescript.suggest.enabled を使用すると、JS または TS の提案を完全に無効にできます。

JS/TS のコミット文字としてのセミコロン

セミコロンが JavaScript と TypeScript の提案のコミット文字になりました。つまり、; を入力するだけで現在の提案を受け入れることができます。既存のコミット文字には、.( も含まれます。

"editor.acceptSuggestionOnCommitCharacter": false を設定することで、コミット文字を無効にできます。

HTML および CSS パス補完でドットファイルを除外

. で始まるファイルは、パス補完結果から除外されるようになりました。

Markdown の折りたたみ機能の改善

複数行リスト、フェンスされたコードブロック、生 HTML が Markdown ファイルで折りたたみ可能になりました。

Folding Markdown code blocks and lists

Markdown プレビューで、ローカルファイルへのリンクをクリックすると、そのファイルのプレビューが開くようになりました。

Local file link open in preview

これにより、ドキュメントの閲覧が容易になります。リンクの処理方法を設定するには、markdown.preview.openMarkdownLinks 設定を使用します。有効な設定値は次のとおりです。

  • inEditor - ローカルの Markdown リンクをエディターで開きます。
  • inPreview - ローカルの Markdown リンクを現在のプレビューで開きます。これが新しいデフォルトの動作です。

拡張機能

検索フィルタリングの改善

@category フィルターを、@installed@enabled@disabled@outdated のようなインストール済み拡張機能の他のフィルターと組み合わせて、拡張機能の検索クエリを作成できるようになりました。例えば、@installed @category:themes というクエリを使用してインストール済みテーマを検索したり、@installed @category:snippets を使用してスニペットを提供するインストール済み拡張機能を検索したりできます。

無効な拡張機能は期限切れとカウントされない

拡張機能ビューのアクティビティバーに表示される、期限切れの拡張機能の数を表示するバッジは、無効な拡張機能を除外するようになりました。このバッジの意図は、更新したい期限切れの拡張機能があることを知らせることでした。無効な拡張機能は現在使用されていないため、それらをカウントに含めると注意散漫になるだけです。

拡張機能ホストが応答しない

VS Code は、Extension Host と呼ばれる別のプロセスで拡張機能を実行します。このプロセスは、メッセージパッシングを使用してレンダラー/UI プロセスと通信します。Extension Host へのメッセージの追跡を改善し、メッセージが 10 秒以内に確認されない場合、次の通知を表示します。

Extension Host Unresponsive

これは何を意味するか: おそらく、拡張機能が CPU 負荷の高い操作を実行しており、それが Extension Host プロセスを 10 秒以上ブロックしている可能性が高いです。

どうすればよいか: 一つの選択肢は、操作が完了するまで待機し、通知を無視することです。もう一つの選択肢は、Running Extensions ビューに移動し、Extension Host のプロファイリングを開始して、どの拡張機能が CPU 使用率を高めているかを調査することです。その後、問題のある拡張機能に対して直接 Issue を作成できます。最後に、拡張機能が無限ループに入り、回復する見込みがないと思われる場合は、Extension Host を再起動できます。

エンジニアリング

拡張機能と webpack

webpack の取り組みを継続し、バンドルされた拡張機能のほとんどが webpack 化されました。おさらいですが、これにより、読み込むファイルが少なく、解析するソースコードが少なくなるため、拡張機能の起動時間を短縮できます。また、抽出してディスクに書き込むファイルが少なくなるため、インストール時間の短縮にも役立ちます。

このマイルストーンでは、バンドルをさらに 2803 ファイル削減しました。7月には 9000 ファイルから始まり、8月には 4650 ファイルまで減り、9月には 1847 ファイルになりました!

プレビュー機能

プレビュー機能はリリース準備ができていませんが、使用できる程度には機能しています。開発段階での皆様の早期フィードバックをお待ちしております。

Electron 3.0の継続的な調査

このマイルストーン中、引き続き Electron 3.0.0 を VS Code にバンドルすることを検討しました。これはメジャーな Electron リリースであり、Chrome 66 と Node.js 10.x が含まれています (現在のバージョンである Chrome 61 と Node.js 8.x と比較して大幅な進歩です)。近い将来、Insiders ユーザーにアップデートをプッシュして、追加のフィードバックを収集する予定です。ご協力に興味がある場合は、VS Code Insiders をインストールしてください。

その他

macOS Mojave でのぼやけ

macOS 10.14 (Mojave) にアップデートした場合、高 DPI モニターを使用していないと、VS Code のフォントがぼやけて見えることに気づいたかもしれません。

この回避策は、ターミナルから以下を実行し、コンピューターを再起動することです。

defaults write com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled -bool NO

ターミナルから実行し、その後コンピューターを再起動します。

この変更はすべてのアプリケーションにグローバルであり、VS Code に固有のものではないことに注意してください。関連する議論については、issue 51132 を参照してください。

Electronの更新

このリリースでは、Electron 2.0.7 から 2.0.9 にアップデートしました。特に、これにより VS Code が ArchLinux で再び動作するようになりました (issue 55934)。

拡張機能の作成

未インストール拡張機能の URL 処理

7月には、拡張機能がシステム全体の URI を処理するための URI Handler API をリリースしました。最新のリリースでは、VS Code はまだインストールされていない拡張機能の URI でも処理できます。ユーザーがそのような URI を開くと、VS Code は Marketplace で拡張機能を検索し、インストールを提案し、URI を渡して VS Code を起動します。これにより、拡張機能は、ユーザーをウェブページから特定の状態で拡張機能を実行するまでスムーズな起動フローを提供できます。

診断エラーコード

診断エラーコードは問題パネルに表示されるようになったため、拡張機能がエラーコードをDiagnostic.messageプロパティに追加する必要はなくなりました。

より良い構成 When 句

キーバインドやメニューの表示を設定する際に、When 句が使用されます。When 句では、config. をプレフィックスとして設定値 (設定) を参照できます。例えば config.editor.tabCompletion です。これまで boolean 型の設定プロパティのみがサポートされていましたが、このリリースでは文字列型と数値型の値も使用できるようになりました。

テキストドキュメントの言語変更

ドキュメントの言語モードを変更する新しい API 関数 vscode.languages.setTextDocumentLanguage が追加されました。この API は、ドキュメントと使用したい言語識別子を受け取ります。利用可能な言語 ID を知るには、vscode.languages.getLanguages を使用します。

workspaceContains アクティベーション

拡張機能は workspaceContains アクティベーションイベントを使用して、特定のパターンに一致するファイルを含むワークスペースが開かれたときにアクティブ化されるようにできます。例えば、PHP 拡張機能は、**/*.php に一致するファイルを含むワークスペースが開かれたときにアクティブ化されるように要求するかもしれません。これは新しいことではありませんが、ユーザーは検索プロセスが長時間実行され、大規模なワークスペースが開かれたときに多くの CPU を使用すると指摘しています。

これらの検索の影響を軽減するために、いくつかの変更を加えました。1つ目は、これらの検索がユーザーの files.excludesearch.exclude、および search.useIgnoreFiles 設定を尊重するようになったことです。つまり、ユーザーが通常のテキスト検索やクイックオープンによるファイル検索でファイルを見つけることができない場合、workspaceContains パターンはそのファイルに一致しません。これにより、workspaceContains の検索対象となるファイルの数が大幅に削減され、例えば node_modules/ 内に埋もれたファイルなど、実際にはプロジェクトの一部ではないファイルに一致した場合の誤ったアクティベーションが減少します。

2つ目の変更は、これらの検索に7秒の制限を設けたことです。検索が7秒経っても完了しない場合、検索プロセスは強制終了され、拡張機能はそれでもアクティブ化されます。

全体として、これにより VS Code で大きなワークスペースを開いた後にラップトップが不可解に発熱するケースが減少するはずです。

新しいテーマカラー

新しいテーマカラーがあります。

  • menu.separatorBackground: メニュー内の区切りメニューアイテムの背景色。
  • sideBarSectionHeader.border: サイドバーセクションヘッダーのボーダー色。
  • inputValidation.infoForeground: 情報の重要度に対する入力検証の前景色。
  • inputValidation.warningForeground: 警告の重要度に対する入力検証の前景色。
  • inputValidation.errorForeground: エラーの重要度に対する入力検証の前景色。
  • editor.snippetTabstopHighlightBackground: スニペットタブストップの強調表示の背景色。
  • editor.snippetTabstopHighlightBorder: スニペットタブストップの強調表示のボーダー色。
  • editor.snippetFinalTabstopHighlightBackground: スニペットの最後のタブストップの強調表示の背景色。
  • editor.snippetFinalTabstopHighlightBorder: スニペットの最後のタブストップの強調表示のボーダー色。
  • activityBar.inactiveForeground: アクティビティバーアイテムが非アクティブなときの前景色。

デバッグAPI

resolveDebugConfiguration は、launch.json を開くために明示的に null を返す必要がある

以前は、resolveDebugConfigurationtype 属性を持たない起動構成を返した場合、VS Code は自動的に基となる launch.json ファイルを開いていました。拡張機能開発者からのフィードバックを受けて、このシナリオについて拡張機能により多くの制御を与えることにしました。

現在、resolveDebugConfiguration は、デバッグセッションの開始を防ぎ、代わりに launch.json を開くために、明示的に値 null を返す必要があります。値 undefined を返すだけでは、デバッグセッションの開始が防がれるだけです。以前と同様に、type 属性を持つ構成を返すとデバッグセッションが開始されます。

提案された拡張API

各マイルストーンには新しい提案APIが付属しており、拡張機能開発者はこれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行します。

  • 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
  • 拡張機能のpackage.jsonファイルに次の行が必要です: "enableProposedApi": true
  • vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。

提案APIを使用する拡張機能は公開できないことに注意してください。次回のリリースでは互換性のない変更が行われる可能性があり、既存の拡張機能を壊すことは決して望ましくありません。

デバッグAPI

新しい DebugConfigurationProvider.provideDebugAdapterDebugConfigurationProvider.debugAdapterExecutable コマンドを置き換える

以前、提案された API DebugConfigurationProvider.debugAdapterExecutable を追加し、拡張機能が VS Code によって起動されようとしているデバッグアダプターの動的に計算されたパス (および対応するプログラム引数) を返すことができるようにしました。このマイルストーンでは、受け取ったフィードバックに基づいて初期設計を改訂しています (例えば、#45220#56646#57706#54465)。

新しい API メソッドprovideDebugAdapter と呼ばれ、デバッグセッション、ワークスペースフォルダー、package.json からの実行可能情報、および解決された起動構成が渡されます。この情報により、拡張機能はデバッグアダプターを作成するよう要求されたときに「全体像」を把握できます。

さらに、デバッグアダプターの実装を開始および接続するためのより多くの方法をサポートするようになりました。このため、provideDebugAdapter メソッドから記述子オブジェクトを返すことができます。

  • DebugAdapterExecutable 記述子を使用して、デバッグアダプターをセッションごとに外部プロセスとして起動し、stdin/stdout を介して通信することができます。新しい API では、デバッグアダプターの作業ディレクトリと環境変数を指定できるようになりました。
  • DebugAdapterServer は、複数のセッションを処理し、ソケットを介して通信するサーバープロセスを記述します。
  • DebugAdapterImplementation は、通信オーバーヘッドのないインプレース実装に使用できます。このオプションは、DAP の Node.js ベースのクライアントライブラリへの小さな変更に依存しており、10月に予定されています。

これは提案中の API であり、マーケットプレイスで公開されている拡張機能では使用できないことに注意してください。しかし、issue 45220DebugConfigurationProvider.provideDebugAdapter に関するフィードバックをお待ちしております。

コメントの編集と削除

前回のイテレーションでは、拡張機能がエディター内でコメントを作成および管理できるように DocumentCommentProvider を導入しました。このプロバイダーに、コメントの編集と削除をサポートするための新しいメソッドを追加しました。コメント自体も、編集または削除をサポートするかどうかを示すフラグを持つようになりました。拡張機能がこれらのフラグのいずれかを設定し、適切な編集または削除メソッドを提供すると、エディター内のコメントにカーソルを合わせたりフォーカスを当てたりしたときに、コメントを編集または削除するためのアクションが表示されます。

Comment editing

新コマンド

キー コマンド コマンド ID
⌘K ⌘Q (Windows, Linux Ctrl+K Ctrl+Q) 最後に編集した位置に移動 workbench.action.navigateToLastEditLocation
⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S) 保存参加者 (フォーマッタなど) を実行せずにファイルを保存 workbench.action.files.saveWithoutFormatting
すべてエディターグループでアクティブなファイルを閉じる workbench.action.closeEditorInAllGroups
差分エディターのインラインモードとサイドバイサイドモードを切り替える (toggle.diff.editorMode は非推奨) toggle.diff.renderSideBySide

新しいドキュメント

GitHub プルリクエスト拡張機能のブログ記事

Kenneth の最近のブログ記事で、新しいGitHub Pull Request 拡張機能の発表と、VS Code と GitHub Editor チーム間のコラボレーションについて論じられています。

Azure Pipelines のブログ記事を使用

Visual Studio Code を Azure Pipelines で使用するでは、VS Code エンジニアの João Moreno が、VS Code が現在そのビルドと継続的インテグレーション (CI) インフラストラクチャにAzure Pipelines をどのように使用しているかを説明しています。

新しい PowerShell トピック

Visual Studio Code の PowerShell では、Microsoft の PowerShell 拡張機能による PowerShell 統合が示されています。この拡張機能は、IntelliSense、定義へ移動、すべての参照の検索などの強力な言語機能に加え、デバッグやコードスニペットもサポートしています。

新しい Python Django チュートリアル

新しいチュートリアル「Visual Studio Code で Django を使用する」が公開され、VS Code で Python Django ウェブアプリケーションを迅速に作成、編集、デバッグする方法が示されています。

主な修正

  • 48051: 書式設定後、左にスクロールする必要がある
  • 31619: スニペットで削除されたタブストップをタブで移動しなければならない
  • 58327: デバッグツールバーボタンが無効
  • 35935: "最近開いたものをクリア" もエディターのクイックピック履歴をクリアすべき
  • 58799: 保存時に無題のファイルを表示
  • 29553: Escape キーでクイックオープン入力を保持する
  • 58222: UriDisplayService にリモート共有パス名が欠落
  • 54213: launch.json を表示せずにデバッグ起動を中止するメカニズム
  • 52511: デバッグホバーウィジェット - 長い項目でオーバーフローが非表示になっている場合にウィジェットのリサイズを有効にする
  • 50569: 条件付きブレークポイントのプロンプトは、ブレークポイントが無効になっている場合にブレークポイントを有効にするオプションを提供すべき
  • 42737: 拡張機能: 右クリックでギアメニューを表示できるようにする
  • 58434: CLI から拡張機能をインストールする際にプロンプトを抑制するために --force 引数を使用。

謝辞

最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!

vscodeへの貢献者

language-server-protocolへの貢献者

vscode-languageserver-nodeへの貢献者

debug-adapter-protocolへの貢献者

vscode-recipesへの貢献

vscode-chrome-debugへの貢献

  • Sasha (@stristr): 高度なデバッグのために、nullable な targetTypes プロパティを使用する。 PR #727

vscode-chrome-debug-coreへの貢献

  • @digeff
    • ソースをログに記録しないようにロギングメカニズムを更新 PR #355
    • 最初の行の BP Chrome 69 を修正 PR #352
    • ブレークポイントをアタッチで動作させるため、ブレークオンロードを修正 PR #332

localizationへの貢献

Transifex の VS Code プロジェクトチームには約 1200 人のメンバーがおり、毎月約 100 人が活発に貢献しています。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様のご貢献に感謝いたします。

このリリースに貢献してくださった方々のスナップショットを以下に示します。貢献者リストを含むプロジェクトの詳細については、プロジェクトサイトhttps://aka.ms/vscodelocをご覧ください。

  • ベンガル語: Anisuzzaman Khan、abm_prottoy、Mushiar Khan、Mehedi Hassan。
  • ブルガリア語: Любомир Василев.
  • クロアチア語: Nikša Mihaica。
  • チェコ語: Vít Staniček。
  • デンマーク語: Kenneth Greig、Johan Fagerberg、Martin Fruensgaard。
  • オランダ語: Gerald Versluis、Marco van den Hout。
  • フランス語: Antoine Griffard、MayakoLyyn、Smrman、Etienne Blanc-Coquand。
  • ドイツ語: J.M.、Carsten Kneip、Volkmar Rigo、SetTrend。
  • ギリシャ語: Nikolaos Maliakkas。
  • ヒンディー語: Ashwini Gupta、Shaswat Rungta。
  • ハンガリー語: Tar Dániel.
  • 簡体字中国語: Joel Yang、子实 王、pluwen、Chris Pan 潘冬冬、danyeh。
  • 繁体字中国語: Duran Hsieh、Poy Chang、Alan Tsai、Han Lin、Shih-Ming Tung、Will 保哥。
  • インドネシア語: G-RiNe Project、Wildan Mubarok、Rizki A. Wibowo、Riwut Libinuko、Azhe-kun、rodin、Febrian Setianto (Feber)。
  • イタリア語: Luigi Bruno、Luca Bruni、Alessandro Alpi、Emilie Rollandin、Pascal Brax、Andrea Dottor、Riccardo Cappello。
  • 日本語: Satoshi Kajiura、Shunya Tajima、Yuichi Nukiyama、yoshioms、daisuke osada (daiskeh)。
  • 韓国語: Kyunghee Ko、jaeyeon Kim、Junseong Jang、Jisan Oh。
  • リトアニア語: Martynas Jusys.
  • マラヤーラム語: Kiren Paul。
  • ノルウェー語: Espen Klein Nilsen。
  • ポーランド語: Artur、Patryk Brejdak、Adam Borowski、Mateusz Wyczawski。
  • ポルトガル語 (ブラジル): Roberto Fonseca、Bruno Sonnino、Danilo Dantas、Marcelo Fernandes、Thiago Custodio、Rodrigo Crespi、Marcelo Andrade、Alessandro Fragnani、Lucas Miranda、Otacilio Saraiva Maia Neto。
  • ポルトガル語 (ポルトガル): António Santos,Diogo Barros, António Lourenço, jp2masa, Ruben Mateus, Henrique Silva, André Vala。
  • ロシア語: Ivan Kuzmenko、Roman Slauta。
  • スペイン語: Jorge Serrano Pérez、José M. Aguilar、Alberto Poblacion、Carlos Mendible、Alejandro Medina、Andy Gonzalez、Carlos Herrera。
  • タミル語: Vijay Nirmal、rajakvk、Anand AV。
  • トルコ語: Mustafa Turhan、Fırat Payalan、Selim Ata。
© . This site is unofficial and not affiliated with Microsoft.