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月リリースへようこそ。9月のイテレーション計画でお知らせしたように、GitHub issueとプルリクエストの整理に重点を置きました。すべてのVS Codeリポジトリ全体で、3918件のissueをクローズ(トリアージまたは修正)しました。issueをクローズする一方で、2187件の新しいissueが作成されました。その結果、issue数は1731件の純減となりました。メインのvscodeリポジトリには、現在2472件の未解決の機能リクエストと625件の未解決のバグがあります。さらに、212件のプルリクエストをクローズしました。
皆様が私たちの進捗状況をどれほど気にされているかを知ることができて大変嬉しかったです。Benjamin Lannon氏は、私たちのメインリポジトリのissue数をライブトラッカーで追跡する個人サイトを公開しました。9月11日以降の私たちの進捗状況がよくわかります。
また、issueの削減に注意を払わなくなるとどうなるかも示しています。以下は、このリリースに向けて準備をしていた先週の最後の3日間です。ご覧のとおり、今後もissueの整理イテレーションがさらに必要になるでしょう。
この整理のマイルストーン期間中に、いくつかの機能リクエストに対処し、コミュニティからのプルリクエストも新しい機能につながりました。以下に、リリースのハイライトをいくつか紹介します。
- ファイルの種類ごとのカスタムファイルアイコン - VS Codeのファイルアイコンは、OSエクスプローラーでファイルの種類を反映します。
- プロジェクトレベルのスニペット - ワークスペースごとにスニペットコレクションを調整します。
- エディターのTab補完 - Tabキーを使用して、IntelliSenseの候補を簡単に切り替えます。
- 最後の編集箇所へジャンプ - 最後の編集箇所へ移動する新しいコマンド。
- フォーマッターなしで保存 - 既存のフォーマットを変更せずにファイルを保存します。
- Gitの機能改善 - 削除競合の処理改善、新しい同期時のリベースオプション。
- インポートパスによる名前変更 - インポートパスを通じてJS/TSファイルの名前を変更します。
- async関数への変換リファクタリング - 関数をすばやく更新してasyncとawaitを使用します。
- Markdownの折りたたみ機能の改善 - コードブロック、複数行リスト、埋め込みHTMLを折りたたみます。
これらのリリースノートをオンラインで読む場合は、Updates(code.visualstudio.com)にアクセスしてください。
Cloud Developer AdvocateのBrian Clark氏による、この1.28リリースのハイライトビデオもご覧ください。
Insiders: 最新機能をいち早く試したいですか?毎晩更新されるInsidersビルドをダウンロードして、最新のアップデートをいち早くお試しください。
ワークベンチ
Windowsでデフォルトでカスタムタイトルバーとメニューバーを使用
以前のリリースノートで説明したカスタムタイトルバーとテーマ対応メニューが、Windowsでデフォルトで有効になりました。"window.titleBarStyle"
設定は、InsidersのWindowsで先月1か月間"custom"
にデフォルト設定されていましたが、この設定をデフォルトのエクスペリエンスにする準備が整いました。
ファイルの種類ごとのファイルアイコン
macOSおよびWindowsでは、VS Codeは一般的なファイルタイプのデフォルトエディターとして登録されます。VS Codeには、一般的なVS Codeファイルタイプの一部のカスタムアイコンが同梱されるようになりました。これらのアイコンは、アイコンのサイズが中〜大に設定されている場合、OSエクスプローラーに表示されます。小さいアイコンサイズの場合、アイコンとしてVS Codeロゴを保持することにしました。
プロジェクトレベルのスニペット
スニペットをプロジェクトにスコープし、チームと共有できるようになりました。Preferences: Configure User Snippetsコマンドを使用するか、.vscode
フォルダーに*.code-snippets
ファイルを作成するだけです。プロジェクトスニペットは他のスニペットと同じように機能し、IntelliSenseとInsert Snippetアクションに表示され、独自のカテゴリを持つようになりました。
スニペットは複数のプレフィックスもサポートするようになりました。著作権ヘッダーのスニペットのプレフィックスをheader
、stub
、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」)。キーの記録モードをオンにして、検索するキーストロークをタイプします。
⌥⌘K (Windows、Linux Alt+K)を使用してキーの記録モードに入ることもできます。キーの記録モードを終了するには、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
- デバッグコンソールパネル
相対パスのコピー
ファイルパスを相対パスとしてコピーするコマンドが、ファイルエクスプローラーとエディタータブのコンテキストメニューでより目立つように表示されるようになりました。
クイックオープンから最近開いたファイルを除外
新しい設定search.quickOpen.includeHistory
を使用すると、最近開いたファイルをクイックオープンファイルピッカーに含めるかどうかを制御できます。デフォルトでは、最近開いたファイルは検索の上部に表示され、ワークスペースの他のファイルは下に表示されます。最近開いたファイルを上部に表示したくない場合は、この設定をfalse
に変更できます。
ファイルを削除するときにゴミ箱を無効にする
エクスプローラーからファイルを削除するときに、ファイルがOSのゴミ箱に移動するときに問題が発生する場合は、files.enableTrash
をfalse
に設定して、削除時にOSのゴミ箱を絶対に使用しないようにすることができます。そうすることで、ファイルエクスプローラーの削除アクションとキーバインドがOSのゴミ箱をバイパスして完全に削除するように変更されます。削除が実行される前にプロンプトが表示されます。
ワークスペースファイルが検出された場合に開くように促す
ルートに1つ以上の.code-workspace
ファイルが含まれているフォルダーを開くと、VS Codeはワークスペースファイルを代わりに開くかどうかを尋ねる通知を表示するようになりました。ワークスペースファイルを開くと、通常はフォルダーを開くだけよりも優れたエクスペリエンスが得られます。マルチルートワークスペースの詳細については、ドキュメントを参照してください。
ファイルを再度開くときにビューの状態を復元しない
VS Codeは、ファイルを閉じた後でも、ファイルのビューの状態(カーソルの位置、折りたたまれたセクションなど)を常に記憶していました。ファイルが閉じられたときにこのビューの状態を削除する新しい設定workbench.editor.restoreViewState
が追加されました。これにより、ファイルを再度開いた後、常にファイルの先頭から開始できます。
すべてのエディターグループでファイルを閉じる
新しいコマンドすべてのグループでエディターを閉じる(workbench.action.closeEditorInAllGroups
)を使用すると、現在アクティブなファイルをすべてのエディターグループで閉じることができます。
問題パネル
エラーコードを表示
問題パネルに、問題にエラーコードがある場合はエラーコードが表示されるようになりました。
キーボードナビゲーションの改善
問題パネルがキーボードフレンドリーになりました。
- パネルにフォーカスがあるときにタイプを開始すると、フィルター処理を開始できます。
- ⌘F (Windows、Linux Ctrl+F)を使用してフィルターボックスにフォーカスを当て、⌘↓ (Windows、Linux Ctrl+Down)を使用してフィルターボックスから問題リストにフォーカスを当てることができます。
テレメトリーイベントの出力チャネル
7月のリリースでは、VS Codeから送信されたすべてのテレメトリーイベントを、Developer: Set Log Level...コマンドを使用してログレベルをTraceに設定すると、ローカルファイルにも記録する機能を追加しました。出力パネルのログ(テレメトリー)チャネルでこのファイルの内容を表示できるようになりました。以前と同様に、Developer: Open Log File...コマンドを使用してファイルを直接表示できます。
カスタムビューにフォーカスを当てる
コマンドを使用してカスタムビューにフォーカスを当てることができるようになりました。各カスタムビューに個別のコマンドが用意されています。
Linux URL処理
以前はWindowsとmacOSに限定されていた機能ですが、LinuxでもVS Code URLを開くことができるようになりました!これらのURLは、拡張機能を自動的にインストールするなど、さまざまな機能に役立ちます。例:vscode-insiders:extension/vscodevim.vim
。
エディター
Tab補完
エディターのTab補完は、あらゆる種類の候補を補完できるようになりました。"editor.tabCompletion": "on"
を設定した後、Tabキーを押すと、スニペットだけでなく、任意のプレフィックスを補完します。また、Tabキーを押すと次の候補が挿入され、⇧Tab (Windows、Linux Shift+Tab)キーを押すと前の候補が挿入されます。
最後の編集箇所へ移動
新しいコマンド最後の編集箇所へ移動(workbench.action.navigateToLastEditLocation
)が追加され、ファイル内で最後に編集された場所にすばやく移動できるようになりました。デフォルトのキーバインドは⌘K ⌘Q (Windows、Linux Ctrl+K Ctrl+Q)です。
フォーマッターなしで保存
新しいコマンドフォーマットなしで保存(workbench.action.files.saveWithoutFormatting
)を使用すると、保存参加者(フォーマッター、末尾の空白の削除、最後の改行など)をトリガーせずにファイルを保存できます。デフォルトのキーバインドは⌘K S (Windows Ctrl+K Ctrl+Shift+S、Linux Ctrl+K S)です。これは、通常プロジェクト外のファイル、つまり異なるフォーマット規則を持つ可能性のあるファイルを編集する場合に便利です。
IntelliSenseの局所性ボーナス
候補をカーソルからの距離に基づいてソートできるようになりました。"editor.suggest.localityBonus": true
を設定すると、たとえば、関数パラメーターがIntelliSenseリストの先頭に表示されるようになります。
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フローが改善され、変更を開くと削除されていないバージョンが表示され、ステージングするときにファイルに対して何をするか(保持または削除)を決定できるようになりました。
長いコミットメッセージの警告しきい値を構成
git.inputValidationLength
設定を使用すると、コミットメッセージを編集するときに警告が表示されるまでの長さを構成できます。
'git init'後にフォルダーをワークスペースに追加
Gitリポジトリを初期化した後、VS Codeはそれを現在のワークスペースに追加するかどうかを尋ねるようになりました。
ブランチ検証ルールの構成
強力なgit.branchValidationRegex
およびgit.branchWhitespaceChar
設定を使用して、ブランチ名の検証方法を制御できるようになりました。詳細については、issue 50241を参照してください。
同期を実行するときは常にリベース
git.rebaseWhenSync
設定を使用すると、同期コマンドが実行時に常にマージではなくリベースを使用するように構成できます。
進捗状況のレポートを無効にする
git.showProgress
設定を使用すると、Git操作中の進捗状況の表示を無効にできます。
Push --force
日々の開発で、リスクを冒したいと感じることがあります。git push --force
を実行することは素晴らしい例です!VS Codeでは、ターミナルに入る必要なく、リモートにコミットを強制的にプッシュできるようになりました。この動作を制御するには、git.allowForcePush
、git.useForcePushWithLease
、およびgit.confirmForcePush
設定を使用します。詳細については、issue 53286を参照してください。
Stash apply
次のgit stash apply
コマンドが、グローバルコマンドパレットに追加されました。Git: Stashを適用...、Git: 最新のStashを適用。
常に表示されるステージングされた変更セクション
git.alwaysShowStagedChangesResourceGroup
設定を使用すると、空の場合でも、SCMビューでステージングされた変更セクションを常に表示したままにすることができます。
ターミナル
カスタムシーケンスを送信するためのキーバインドの定義
新しいコマンド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が同梱されています。このリリースでは、マッピング可能なタプル型と配列型などの新しい言語機能、および多数のツール改善とバグ修正が導入されています。
インポートパスの名前変更
インポートされたファイルの名前をもっと良い名前にできることに気づきましたか?インポートの名前を変更するだけで、参照されているファイルの名前を変更できるようになりました。
async関数への変換
JavaScriptおよびTypeScriptの新しいasync関数への変換サジェストは、.then
Promiseチェーンを使用する関数を、async
とawait
を使用するように書き換えます。
この機能を使用するには、
javascript.validate.enable
設定がtrueに設定されている必要があることに注意してください。
JS/TSサジェストの新しい設定
JavaScriptおよびTypeScriptサジェストの設定名を整理し、よりきめ細かい制御を提供するいくつかの追加設定を追加しました。
- すべてのサジェスト関連の設定は、
javascript.suggest.*
およびtypescript.suggest.*
の下にあります。 typescript.useCodeSnippetOnMethodSuggest
は、javascript.suggest.completeFunctionCalls
およびtypescript.suggest.completeFunctionCalls
に名前が変更されました。javascript.nameSuggestions
は、javascript.suggest.names
に名前が変更されました。typescript.autoImportSuggestions.enabled
は、javascript.suggest.autoImports
およびtypescriptscript.suggest.autoImports
に名前が変更されました。- 新しい
javascript.suggest.enabled
およびtypescript.suggest.enabled
を使用すると、JSまたはTSサジェストを完全に無効にできます。
JS/TSのコミット文字としてのセミコロン
セミコロンは、JavaScriptおよびTypeScriptサジェストのコミット文字になりました。これは、;
をタイプするだけで現在のサジェストを受け入れることができることを意味します。既存のコミット文字には、.
および(
も含まれます。
コミット文字を無効にするには、"editor.acceptSuggestionOnCommitCharacter": false
を設定します。
HTMLおよびCSSパス補完がドットファイルを除外
.
で始まるファイルが、パス補完結果から除外されるようになりました。
Markdownの折りたたみ機能の改善
複数行リスト、フェンスで囲まれたコードブロック、および生のHTMLが、Markdownファイルで折りたたみ可能になりました。
Markdownプレビューでローカルファイルへのリンクがプレビューで開かれるようになりました
Markdownプレビューで、ローカルファイルへのリンクをクリックすると、そのファイルのプレビューが開かれるようになりました。
これにより、ドキュメントの閲覧が容易になります。リンクの処理方法を構成するには、markdown.preview.openMarkdownLinks
設定を使用します。有効な設定値は次のとおりです。
inEditor
- ローカルMarkdownリンクをエディターで開きます。inPreview
- ローカルMarkdownリンクを現在のプレビューで開きます。これは新しいデフォルトの動作です。
拡張機能
検索フィルターの改善
@category
フィルターを、@installed
、@enabled
、@disabled
、@outdated
などのインストール済み拡張機能の他のフィルターとともに使用して、拡張機能の検索クエリを作成できるようになりました。たとえば、@installed @category:themes
クエリを使用してインストール済みテーマを検索したり、@installed @category:snippets
を使用してスニペットを提供するインストール済み拡張機能を検索したりできます。
無効な拡張機能は古い拡張機能としてカウントされない
アクティビティバーの拡張機能ビューのバッジ(古い拡張機能の数を示す)は、無効な拡張機能を除外するようになりました。このバッジの目的は、更新する必要がある可能性のある古い拡張機能があることを知らせることでした。無効な拡張機能は現在使用されていないため、カウントに含めると気が散るだけです。
拡張機能ホストが応答しない
VS Codeは、拡張機能ホストと呼ばれる別のプロセスで拡張機能を実行します。このプロセスは、メッセージパッシングを使用してレンダラー/UIプロセスと通信します。拡張機能ホストへのメッセージの追跡を改善し、メッセージが10秒以内に確認されない場合は、次の通知を表示します。
意味: ほとんどの場合、拡張機能がCPUを大量に消費する操作を実行しており、その結果、拡張機能ホストプロセスが10秒以上ブロックされています。
対処方法: 1つのオプションは、操作の完了を待機し、通知を無視することです。別のオプションは、Running Extensionsビューに移動し、拡張機能ホストのプロファイリングを開始することで、どの拡張機能がCPU使用率が高い原因となっているかを調査することです。その後、問題のある拡張機能に対して直接issueを作成できます。最後に、拡張機能が無限ループに入り、回復する見込みがないと思われる場合は、拡張機能ホストを再起動できます。
エンジニアリング
拡張機能と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ハンドラーAPIをリリースしました。最新リリースでは、VS Codeはまだインストールされていない拡張機能のURIも処理できます。ユーザーがそのようなURIを開くと、VS CodeはMarketplaceで拡張機能を検索し、ユーザーにインストールを提案し、URIを渡してVS Codeを起動します。これにより、拡張機能は、ユーザーをWebページから特定の状態で拡張機能を実行するまでスムーズな起動フローを実現できます。
診断エラーコード
診断エラーコードが問題パネルに表示されるようになったため、拡張機能がDiagnostic.message
プロパティにエラーコードを追加する必要はなくなりました。
より優れた構成when句
キーバインドまたはメニューの表示を作成する場合、when句が使用されます。when句では、構成(設定)値をconfig.
をプレフィックスとして付けることで参照できます。例:config.editor.tabCompletion
。ブール値の構成プロパティのみがサポートされていましたが、このリリースでは、文字列値と数値も使用できます。
テキストドキュメントの言語を変更する
ドキュメントの言語モードを変更するための新しいAPI関数vscode.languages.setTextDocumentLanguage
があります。APIは、ドキュメントと使用する言語識別子を受け取ります。利用可能な言語IDを知るには、vscode.languages.getLanguages
を使用します。
workspaceContains
アクティベーション
拡張機能は、workspaceContains
アクティベーションイベントを使用して、特定のパターンに一致するファイルを含むワークスペースが開かれたときにアクティブ化できます。たとえば、PHP拡張機能は、**/*.php
に一致するファイルを含むワークスペースが開かれたときにアクティブ化するように要求する場合があります。これは新しいことではありませんが、大規模なワークスペースを開くと、検索プロセスに時間がかかり、CPUを大量に使用する可能性があることがユーザーから指摘されています。
これらの検索の影響を軽減するために、いくつかの変更を加えました。最初の変更は、これらの検索がユーザーのfiles.exclude
、search.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
launch.json
を開くには、resolveDebugConfiguration
が明示的にnull
を返す必要があります
以前は、resolveDebugConfiguration
がtype
属性を持たない起動構成を返した場合、VS Codeは自動的に基になるlaunch.json
ファイルを開いていました。拡張機能の作成者からのフィードバックの後、このシナリオに対する拡張機能の制御を強化することにしました。
現在、デバッグセッションが開始されるのを防ぎ、代わりにlaunch.json
を開くには、resolveDebugConfiguration
が明示的に値null
を返す必要があります。値undefined
を返すと、デバッグセッションが開始されなくなるだけです。以前と同様に、type
属性を持つ構成を返すと、デバッグセッションが開始されます。
提案された拡張機能 API
すべてのマイルストーンには、新しい提案されたAPIが付属しており、拡張機能の作成者はそれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案されたAPIを試すには、次の手順を実行する必要があります。
- 提案されたAPIは頻繁に変更されるため、Insidersビルドを使用する必要があります。
- 拡張機能の
package.json
ファイルに、"enableProposedApi": true
という行を含める必要があります。 - vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。
提案されたAPIを使用する拡張機能を公開することはできません。次のリリースで破壊的な変更を加える可能性があり、既存の拡張機能を破壊することは決して望んでいませんのでご注意ください。
デバッグ API
新しいDebugConfigurationProvider.provideDebugAdapter
がDebugConfigurationProvider.debugAdapterExecutable
コマンドを置き換えます
以前は、拡張機能がVS Codeによって起動されようとしているデバッグアダプターの動的に計算されたパス(および対応するプログラム引数)を返すことができるように、提案されたAPI DebugConfigurationProvider.debugAdapterExecutable
を追加しました。今回のマイルストーンでは、受け取ったフィードバック(例:#45220、#56646、#57706、#54465)に基づいて、初期設計を見直しています。
新しいAPIメソッドはprovideDebugAdapter
と呼ばれ、デバッグセッション、ワークスペースフォルダー、package.json
からの実行可能ファイル情報、および解決済みの起動構成を渡します。この情報により、拡張機能はデバッグアダプターの作成を求められたときに「全体像」を把握できます。
さらに、デバッグアダプターの実装を開始および接続するためのより多くの方法をサポートするようになりました。このために、記述子オブジェクトをprovideDebugAdapter
メソッドから返すことができます。
DebugAdapterExecutable
記述子は、セッションごとに外部プロセスとしてデバッグアダプターを起動し、stdin/stdout経由で通信するために使用できます。新しいAPIを使用すると、デバッグアダプターの作業ディレクトリと環境変数を指定できるようになりました。DebugAdapterServer
は、複数のセッションを処理し、ソケット経由で通信するサーバープロセスを記述します。DebugAdapterImplementation
は、通信オーバーヘッドのないインプレース実装に使用できます。このオプションは、DAP用のNode.jsベースのクライアントライブラリへの小さな変更に依存しており、10月に計画されています。
これは提案されたAPIであり、Marketplaceで公開されている拡張機能では使用できないことに注意してください。ただし、45220の問題に関するDebugConfigurationProvider.provideDebugAdapter
に対するフィードバックをお待ちしております。
コメントの編集と削除
前回のイテレーションでは、拡張機能がエディター内でコメントを作成および管理できるようにするDocumentCommentProvider
を導入しました。コメントの編集と削除をサポートするために、このプロバイダーに新しいメソッドを追加しました。コメント自体も、編集または削除をサポートするかどうかを示すフラグを持つようになりました。拡張機能がこれらのフラグの1つを設定し、適切な編集または削除メソッドを提供する場合、エディター内のコメントにカーソルを合わせるかフォーカスを当てると、コメントを編集または削除するアクションが表示されます。
新しいコマンド
キー | コマンド | コマンド 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 Pull Request 拡張機能のブログ記事
Kennethによる最近のブログ記事で、新しいGitHub Pull Request拡張機能の発表と、VS CodeとGitHub Editorチーム間の連携について読むことができます。
Azure Pipelines のブログ記事の使用
Visual Studio Code using Azure Pipelinesで、VS Code エンジニアの João Moreno が、VS Code がビルドおよび継続的インテグレーション(CI)インフラストラクチャにAzure Pipelinesをどのように使用しているかについて説明しています。
新しい PowerShell トピック
Visual Studio Code の PowerShell では、Microsoft PowerShell 拡張機能による PowerShell の統合について説明しています。この拡張機能は、IntelliSense、定義へ移動、すべての参照の検索などの強力な言語機能と、デバッグおよびコードスニペットをサポートしています。
新しい Python Django チュートリアル
Python Django WebアプリケーションをVS Codeで迅速に作成、編集、デバッグする方法を示す、新しいVisual Studio Code で Django を使用するチュートリアルがあります。
注目すべき修正
- 48051: フォーマット後、左にスクロールする必要がある
- 31619: スニペットで削除されたタブストップをタブ移動する必要がある
- 58327: デバッグツールバーのボタンが無効になっている
- 35935: 「最近開いたものをクリア」は、エディターのクイックピック履歴もクリアする必要がある
- 58799: 保存時に名前のないファイルを表示する
- 29553: Escape時にクイックオープン入力を保持する
- 58222: UriDisplayServiceにリモート共有パス名がない
- 54213: launch.jsonを表示せずにデバッグ起動を中止するメカニズム
- 52511: デバッグホバーウィジェット - オーバーフローが非表示になっている長い項目のウィジェットサイズ変更を有効にする
- 50569: 条件付きブレークポイントプロンプトは、ブレークポイントがすでに無効になっている場合にブレークポイントを有効にすることを提案する必要がある
- 42737: 拡張機能:右クリックでギアメニューを表示できるようにする
- 58434: CLIから拡張機能をインストールする際にプロンプトを回避するために
--force
引数を使用する。
謝辞
最後になりましたが、VS Codeをさらに良くするためにご協力いただいた以下の皆様に、心から感謝申し上げます!
vscode
への貢献
- Sribalaji M (@1AmNegan): キーバインディングを使用してnextChange/previousChangeのビューポートを中央に配置 PR #51235
- Agustín Rodríguez (@agurodriguez): Markdownプレビューの差分のスタイル PR #59289
- Andrew Casey (@amcasey): typescript-language-features/languageserviceerrorresponseにGDPRアノテーションを追加 PR #57182
- Andy Li (@andyli): Ubuntuのデフォルト統合ターミナルフォントオプションをオーバーライド (#_35901) PR #56429
- Aliaksandr Stelmachonak (@ava1ar): ARM64ビルドのサポートを追加 PR #52119
- Beau Allison (@beauallison): GITの明るい色のチェックアイコンを暗い色に合わせる PR #50526
- Andre Wachsmuth (@blutorange): promise polyfillを修正、プロミスのチェーンが機能する PR #57723
- Bruno Finger (@brunofin): ブランチ作成時に括弧も置換する PR #57374
- David Staheli (@DavidStaheli): 新しいVSTS YAML構文を使用する PR #57745
- Dave Williams (@davnicwil): TypeScriptのオートコンプリート候補をオフにする新しい設定 PR #58011
- Dustin Campbell (@DustinCampbell): C#文法を更新 PR #57451
- Eric Amodio (@eamodio): クエリ文字列を持つ画像URIが正しく検出されない PR #58314
- @Git-Lior
- Guy Waldman (@guywald1)
- Jay Rodgers (@headmelted)
- Eric Gang (@Hirico): git差分エディターから「ファイルを開く」を使用した後に表示領域を保持する (fix #53465) PR #54867
- Jatin Sandilya (@jats22): pythonの絶対パスを削除 PR #56943
- Jason Bright (@jgbright)
- Jim Hessin (@jhessin): language-configuration.jsonを更新 PR #44566
- JYX (@jjyyxx): tsconfig.schema.jsonの不正確な説明を修正 PR #58582
- Jonathan Perret (@jonathanperret): workbench.editor.labelFormatのタイプミスを修正 PR #59155
- Konstantin Müller (@konstantin-mueller): #54204 stashを適用するコマンドを追加 PR #54300
- limerick (@limerickgds): クラスのオートコンプリートのジェネレーターメソッドがスター(*)を追加する原因… PR #51557
- Luis Zuniga (@luiszun): 送信する前にパスにスペースがあるか確認する。ファイル名が…になるのを防ぐ PR #56966
- @lzmkony: 重複した関数を削除 PR #57700
- Muhammad Azeem (@manixate): スクロールバーがドラッグアンドドロップのドロップターゲットと見なされないようにする PR #49747
- Matt Hardcastle (@MattHardcastle): openで終わるときに自動クローズしない PR #55315
- Maarten Fonville (@mfonville): Electronを2.0.9に更新 PR #58382
- Marat Abdullin (@mshoho): プレーンテキストのみをクリップボードにコピーするオプション。 PR #54155
- Néstor Hernández Ojeda (@nesukun): 強制プッシュとforce-with-leaseのサポートを追加 PR #53286
- Nilesh Kevlani (@njkevlani): ターミナルにカスタムシーケンスを送信するための新しいコマンドを追加 PR #56962
- Noam Yogev (@noamyogev84): 同じスニペットに対して複数のプレフィックスをサポートするために、スニペットjsonプレフィックスを配列にできるようにする PR #59092
- Alexandre ZANNI (@noraj): より多くのMarkdown拡張機能を追加 PR #58072
- Sardorbek (@oneslash)
- Karthikayan (@ParkourKarthik)
- Chi Wang (@patr0nus): 「無効な開始インデックス」エラーを修正 PR #57617
- Morten N.O. Nørgaard Henriksen (@raix): ブランチ名検証と空白設定を追加 PR #50712
- Rik Smeets (@rik-smeets): メニュー項目に不足しているアクセスキー(ニーモニック)を追加 PR #58412
- Rodrigo Varas (@rodrigovaras): Live Shareプロキシがデバッグアダプターをプロキシする場合にEHデバッグが機能するように修正 PR #58227
- Segev Finer (@segevfiner)
- @sucicf1: Fix#35905 PR #58380
- Thomas Basche (@tombasche): 空のgitコミットを許可 PR #56048
- tsangint (@tsangint): タイプミスを修正 PR #57192
- Alexander (@usernamehw): タブフォーカス関連の問題を修正 PR #57821
- Winner Crespo (@wistcc)
language-server-protocol
への貢献
- Tyson Andre (@TysonAndre): さらにタイプミスを修正 PR #568
vscode-languageserver-node
への貢献
- Mathias R. Jessen (@IISResetMe): 「received」のスペルミスを修正 PR #414
debug-adapter-protocol
への貢献
- Antonino Perricone (@APerricone): APerriconeによるharbour言語を追加 PR #6
vscode-recipes
への貢献
- Daryl Knowles (@darylknowles): デバッグエンドツーエンドはng e2eでローカルサーバーを開始する必要がある PR #122
- Karuppasamy M (@karuppasamy): Ruby on Railsのレシピを追加 PR #59
- Trivikram Kamat (@trivikr): VS Codeでnode-tapテストをデバッグするためのレシピを追加 PR #128
vscode-chrome-debug
への貢献
- Sasha (@stristr): 高度なデバッグにnullable
targetTypes
プロパティを使用する。 PR #727
vscode-chrome-debug-core
への貢献
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。
- 日本語: 梶浦 智史, 田嶋 俊哉, 貫名 悠一, 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。