2018年9月 (バージョン 1.28)
Update 1.28.2: このアップデートでは、これらの問題に対処しています。
Update 1.28.1: このアップデートでは、これらの問題に対処しています。
ダウンロード: 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が作成されました。これにより、正味1731件のissueが減少しました。メインのvscodeリポジトリには、現在2472件の未解決の機能リクエストと625件の未解決のバグがあります。さらに、212件のプルリクエストをクローズしました。
皆様が私たちの進捗にどれほど関心を持ってくださっているかを知ることができ、大変嬉しく思います。Benjamin Lannonは、私たちのメインリポジトリのissue番号をライブトラッカーで示す個人サイトを公開しました。これは、9月11日以降の私たちの進捗をよく示しています。
また、issueの削減に注意を払うのをやめるとどうなるかも示しています。以下は、このリリースに向けて準備をしていた先週の最後の3日間です。ご覧の通り、今後もissueの整理のイテレーションが予定されています。
この整理のマイルストーンでは、いくつかの機能リクエストに対処し、コミュニティのプルリクエストによっても新機能が追加されました。以下に、リリースの主要なハイライトをいくつか紹介します。
- カスタムファイルアイコン - VS CodeのファイルアイコンがOSエクスプローラーでファイルの種類を反映します。
- プロジェクトレベルスニペット - ワークスペースごとにスニペットコレクションを調整します。
- エディターのタブ補完 - Tabキーを使用してIntelliSenseの提案を簡単に切り替えます。
- 最後の編集位置へジャンプ - 最後の編集位置に移動する新しいコマンド。
- フォーマットせずに保存 - 既存のフォーマットを変更せずにファイルを保存します。
- Gitの改善 - 削除競合処理の改善、同期時のリベースオプションの追加。
- インポートパス経由での名前変更 - インポートパスを介してJS/TSファイルの名前を変更します。
- asyncへの変換リファクタリング - 関数をasyncとawaitを使用するように素早く更新します。
- Markdownの折りたたみ機能の改善 - コードブロック、複数行リスト、埋め込みHTMLを折りたたむことができます。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
また、Cloud Developer AdvocateのBrian Clarkによるこの1.28リリースハイライトビデオもご覧いただけます。
Insiders: 新しい機能をいち早く試したいですか?毎晩リリースされるInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第お試しください。
ワークベンチ
Windowsでのカスタムタイトルとメニューバーがデフォルトに
以前のリリースノートで説明されたカスタムタイトルバーとテーマ適用可能なメニューは、Windowsでデフォルトで有効になりました。設定"window.titleBarStyle"
は、過去1か月間InsidersのWindowsで"custom"
にデフォルト設定されており、私たちはこれをデフォルトのエクスペリエンスとする準備ができました。
ファイルの種類ごとのアイコン
macOSとWindowsでは、VS Codeはよく知られたファイルタイプのデフォルトエディターとして登録されます。VS Codeは、一部の一般的なVS Codeファイルタイプにカスタムアイコンを同梱するようになりました。これらのアイコンは、アイコンのサイズが中から大に設定されている場合、OSエクスプローラーに表示されます。小さいアイコンサイズの場合、アイコンとしてVS Codeロゴを保持することにしました。
プロジェクトレベルスニペット
スニペットがプロジェクトにスコープされ、チームと共有できるようになりました。基本設定: ユーザー スニペットの構成コマンドを使用するか、.vscode
フォルダーに*.code-snippets
ファイルを作成するだけです。プロジェクトスニペットは他のスニペットと同様に機能し、IntelliSenseおよびスニペットの挿入アクションに表示され、独自のカテゴリが追加されました。
スニペットは複数のプレフィックスもサポートするようになりました。著作権ヘッダースニペットを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によって送信されるすべてのテレメトリーイベントもローカルファイルにログされる機能を追加しました。このファイルの内容は、出力パネルのログ (テレメトリー) チャンネルで表示できるようになりました。以前と同様に、開発者: ログ ファイルを開く... コマンドを使用してファイルを直接表示できます。
カスタムビューにフォーカスを与える
コマンドを使用してカスタムビューにフォーカスを与えられるようになりました。各カスタムビューには個別のコマンドが用意されています。
Linux URL処理
以前はWindowsとmacOSに限定されていた機能でしたが、LinuxでもVS CodeのURLを開けるようになりました!これらのURLは、拡張機能の自動インストールなど、さまざまな機能に役立ちます。例えば、vscode-insiders:extension/vscodevim.vim
などです。
エディター
タブ補完
エディターのタブ補完が、あらゆる種類の提案を補完できるようになりました。"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: 省略形で囲む機能は、
.html
拡張子のファイルに限定されなくなりました。 - Emmet: バランス (内側へ) 機能は、選択がない場合でも現在のノードで動作するようになりました。
- 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操作中の進行状況の表示を無効にできます。
プッシュ --force
開発の日常において、リスクを冒したいと感じる時があります。git push --force
はその素晴らしい例です!VS Codeは、ターミナルに入る必要なく、コミットをリモートに強制的にプッシュできるようになりました。この動作を制御するには、git.allowForcePush
、git.useForcePushWithLease
、およびgit.confirmForcePush
設定を使用します。詳細については、issue 53286を参照してください。
スタッシュの適用
以下のgit stash apply
コマンドがグローバルコマンドパレットに表示されるようになりました: Git: スタッシュを適用...、Git: 最新のスタッシュを適用。
常に表示されるステージされた変更セクション
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つのオプションは、操作の完了を待って、単に通知を無視することです。別のオプションは、実行中の拡張機能ビューに移動して拡張機能ホストのプロファイリングを開始することで、どの拡張機能が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を起動します。これにより、拡張機能は、ウェブページから特定の状態で拡張機能を実行するまでのスムーズな起動フローを持つことができます。
診断エラーコード
診断エラーコードは問題パネルに表示されるようになったため、拡張機能がエラーコードをDiagnostic.message
プロパティに追加する必要がなくなりました。
より良い構成when句
キーバインディングやメニューの可視性を設定する際に、when句が使用されます。when句では、config.
を接頭辞として構成(設定)値を参照できます。たとえば、config.editor.tabCompletion
などです。これまではブール型構成プロパティのみがサポートされていましたが、このリリースからは文字列および数値も使用できるようになりました。
テキストドキュメントの言語を変更
ドキュメントの言語モードを変更する新しいAPI関数、vscode.languages.setTextDocumentLanguage
が追加されました。このAPIは、ドキュメントと使用したい言語識別子を引数に取ります。利用可能な言語IDを知るには、vscode.languages.getLanguages
を使用してください。
workspaceContains
アクティベーション
拡張機能は、workspaceContains
アクティベーションイベントを使用して、特定のパターンに一致するファイルを含むワークスペースが開かれたときにアクティベートされるようにできます。たとえば、PHP拡張機能は、**/*.php
に一致するファイルを含むワークスペースが開かれたときにアクティベートされるように要求するかもしれません。これは新しいことではありませんが、大規模なワークスペースが開かれた場合、検索プロセスが長時間実行され、多くのCPUを使用する可能性があるとユーザーから指摘がありました。
これらの検索の影響を少なくするために、いくつかの変更を加えました。1つ目は、これらの検索がユーザーの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
resolveDebugConfiguration
がlaunch.json
を開くために明示的にnull
を返す必要がある
以前は、resolveDebugConfiguration
がtype
属性を持たない起動構成を返した場合、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.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で公開されている拡張機能では使用できないことに注意してください。ただし、issue 45220でのDebugConfigurationProvider.provideDebugAdapter
に関する皆様のフィードバックを高く評価いたします。
コメントの編集と削除
前回のイテレーションでは、拡張機能がエディター内でコメントを作成および管理できるようにDocumentCommentProvider
を導入しました。このプロバイダーに新しいメソッドを追加し、コメントの編集と削除をサポートしました。コメント自体も、編集または削除をサポートするかどうかを示すフラグを持つようになりました。拡張機能がこれらのフラグのいずれかを設定し、適切な編集または削除メソッドを提供すると、エディター内でコメントにホバーまたはフォーカスしたときに、コメントを編集または削除するアクションが表示されます。
新コマンド
キー | コマンド | コマンド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をAzure Pipelinesで使用するでは、VS CodeエンジニアのJoão Morenoが、VS Codeが現在どのようにAzure Pipelinesをビルドおよび継続的インテグレーション(CI)インフラストラクチャとして使用しているかを説明しています。
新しいPowerShellトピック
Visual Studio CodeにおけるPowerShellでは、MicrosoftのPowerShell拡張機能によるPowerShell統合が示されています。この拡張機能は、IntelliSense、定義へ移動、すべての参照の検索などの強力な言語機能に加え、デバッグやコードスニペットもサポートしています。
新しいPython Djangoチュートリアル
VS CodeでPython Djangoウェブアプリケーションを素早く作成、編集、デバッグする方法を示す新しいVisual Studio CodeでDjangoを使用するチュートリアルがあります。
主な修正
- 48051: フォーマット後に左にスクロールする必要がある
- 31619: スニペットで削除されたタブストップをタブで移動する必要がある
- 58327: デバッグツールバーボタンが無効になっている
- 35935: "最近開いたものをクリア"はエディターのクイックピック履歴もクリアするべき
- 58799: 保存時に無題のファイルを公開する
- 29553: Escapeキーでクイックオープン入力を保持する
- 58222: UriDisplayServiceにリモート共有パス名がない
- 54213: launch.jsonを表示せずにデバッグ起動を中止するメカニズム
- 52511: デバッグホバーウィジェット - オーバーフローが隠れている長いアイテムのウィジェットサイズ変更を有効にする
- 50569: 条件付きブレークポイントのプロンプトで、ブレークポイントがすでに無効になっている場合に有効にするオプションを提供するべき
- 42737: 拡張機能: ギアメニューを表示するために右クリックを許可する
- 58434: CLIから拡張機能をインストールする際にプロンプトを防止するために
--force
引数を使用する。
謝辞
最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
vscode
への貢献者
- Sribalaji M (@1AmNegan): キーバインディングを使用してnextChange/previousChangeのビューポートを中央に配置 PR #51235
- Agustín Rodríguez (@agurodriguez): Markdownプレビューのdiffスタイル 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ポリフィルを修正、チェーン化されたPromiseが動作する 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-diffエディターから「ファイルを開く」を使用した後に表示される領域を保持する (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 スタッシュを適用するコマンドを追加 PR #54300
- limerick (@limerickgds): クラスのオートコンプリートのジェネレーターメソッドがアスタリスク(*)を追加してしまう... PR #51557
- Luis Zuniga (@luiszun): 送信する前にパスにスペースがないかチェック。ファイル名がインター…されるのを避ける PR #56966
- @lzmkony: 重複した関数を削除 PR #57700
- Muhammad Azeem (@manixate): スクロールバーがドラッグ&ドロップのドロップターゲットと見なされるのを防ぐ PR #49747
- Matt Hardcastle (@MattHardcastle): 開いている状態で終了するときに自動クローズしない PR #55315
- Maarten Fonville (@mfonville): Electronを2.0.9に更新 PR #58382
- Marat Abdullin (@mshoho): クリップボードにプレーンテキストのみをコピーするオプション。 PR #54155
- Néstor Hernández Ojeda (@nesukun): 強制プッシュとリース付き強制プッシュのサポートを追加 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): ライブシェアがデバッグアダプターをプロキシする際に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): 高度なデバッグのためにnull許容の
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.
- 日本語: 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.