2019年7月 (バージョン 1.37)
Update 1.37.1: このアップデートでは、以下の問題に対処しています。
ダウンロード: Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
Visual Studio Codeの2019年7月リリースへようこそ。このバージョンには、皆さんに気に入っていただけるであろう多数のアップデートが含まれており、主なハイライトは以下の通りです。
- 製品アイコンの完全な刷新 - VS Code全体で新しいモダンなアイコンになりました。
- 設定UIでの文字列配列の編集 - 設定エディターから直接文字列配列を追加できるようになりました。
- ファイルエクスプローラーで検索結果を表示 - ファイルエクスプローラーでファイルの場所に素早くジャンプできます。
- 選択範囲内の空白文字を表示 - 選択したテキストの空白文字のみを表示します。
- 検索と置換で大文字/小文字を保持 - 大文字/小文字を失うことなくテキストを置換します。
- ターミナル検索のUX改善 - ターミナルでのより直感的な下から上への検索順序。
- SCSS @import ナビゲーションの改善 - VS CodeがSCSSファイルの検索場所をより多くチェックするようになりました。
- リモート開発チュートリアル - SSHおよびWSLで作業するための新しいチュートリアル。
これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.com の 更新 にアクセスしてください。
また、Developer Advocate Brian Clarkによる1.37リリースのハイライトビデオもご覧ください。
Insiders: 新しい機能をできるだけ早く見たいですか?毎日のInsidersビルドをダウンロードして、利用可能になり次第最新のアップデートを試すことができます。Visual Studio Codeの最新ニュース、アップデート、コンテンツについては、Twitterで@codeをフォローしてください!
Workbench
新製品アイコン
すべての製品アイコンをスタイル、色、サイズで統一しました。私たちは様々なイテレーションを経て、コミュニティの皆様からのフィードバックがプロセスの各段階で役立ちました。
注: これにはOcticonsの使用は含まれません。これらのアイコンはステータスバーとクイックピックに表示されます。
![]()
文字列配列用の設定エディターサポート
設定エディターで文字列の配列設定を編集できるようになりました。項目の追加ボタンをクリックすると、新しい文字列を追加するための入力ボックスが表示されます。

拡張機能作成者は、typeおよびitemsキーを持つ構成を寄稿することで、このサポートを有効にできます。
{
"type": "array",
"items": {
"type": "string"
}
}
設定ファイルから警告を削除
settings.jsonファイルで、不明な設定やサポートされていない設定に対する警告が表示されなくなりました。代わりに、非アクティブな設定は未使用のソースコードと同様にフェード表示され、ホバーで理由が説明されます。さらに、現在無効になっている拡張機能の設定に対する警告も表示されません。

エクスプローラーで検索結果を表示
検索ビューのファイルコンテキストメニューに、そのファイルをファイルエクスプローラーで表示するためのエクスプローラーで表示コマンドが追加されました。

検索正規表現機能
1.29リリースでは、検索にPCRE2正規表現エンジンを使用するための設定search.usePCRE2を追加しました。これにより、後方参照や先読みアサーションなどの高度な正規表現機能を使用した検索が可能になりました。ripgrepの上流作業のおかげで、特別な設定を有効にすることなくこれらの機能を使用できるようになりました。ripgrepは、正規表現がRust正規表現エンジンでサポートされていない機能を使用している場合、自動的にPCRE2エンジンにフォールバックし、search.usePCRE2は非推奨になりました。念のため、VS CodeはJavaScriptで有効な正規表現のみをサポートしています。これは、開いているエディターがエディターのJavaScriptベースの検索を使用して検索されるためです。
NPMスクリプトエクスプローラーがデフォルトで表示されるように
以前は、NPMスクリプトエクスプローラーを表示するには設定npm.enableScriptExplorerを有効にする必要があり、これは見つけにくいものでした。ワークスペースのルートにpackage.jsonファイルがある場合、NPMスクリプトエクスプローラーはファイルエクスプローラー内に折りたたまれた状態で表示されるようになりました。

ワークスペースのルートにpackage.jsonがない場合でも、この設定を使用してNPMスクリプトエクスプローラーを有効にできます。エクスプローラーを非表示にしたい場合は、タイトルを右クリックしてコンテキストメニューから非表示を選択できます。
focusedViewコンテキストキー
新しいキーバインディングのwhen句コンテキストキーfocusedViewが追加されました。これは、特定のビューにフォーカスがある場合にコマンドを表示または有効にするものです。
"when": "focusedView == nodeDependencies"
アクセシビリティの改善
ワークベンチ全体でアクセシビリティの問題を修正しました。修正された問題の全リストは、GitHubの'accessibility'ラベルで確認できます。
ツリービューに新しいツリーウィジェットを採用
ツリービューを寄稿する拡張機能は、新しいツリーウィジェットの体験を得られるようになります。ツリーウィジェットは、パフォーマンスの向上だけでなく、キーボードナビゲーション、フィルタリング、カスタムインデント、水平スクロールなどの改善を提供します。お気に入りの拡張機能にカスタムツリービューがある場合、VS Codeに組み込まれているエクスプローラーに以前追加されたのと同じUX改善が見られるはずです。
Editor
選択範囲内の空白文字を表示
editor.renderWhitespace設定でselectionオプションがサポートされるようになりました。このオプションを設定すると、空白文字は選択されたテキストのみに表示されます。

これは、エディター全体を空白文字で埋めることなく、空白文字を素早く確認するのに便利です。
ミニマップ検索結果の視認性向上
前回のリリースで、ミニマップ (コードアウトライン) に検索デコレーションを導入しました。これらのデコレーションは見づらいという問題があったため、今回のイテレーションでは、その視認性を高めることに取り組みました。現在では、ミニマップ全体が低い不透明度でハイライトされ、実際の一致は高い不透明度で表示されます。

また、新しいテーマカラーminimap.findMatchHighlightを使用して、デコレーションの色を変更することもできます。
検索と置換で大文字/小文字を保持
エディターの検索ウィジェットで置換を行う際に、大文字/小文字を保持できるようになりました。この機能は、エディターの置換入力ボックスで大文字/小文字を保持するオプション (ABボタン) がオンになっている場合に有効になります。

現在、VS Codeはすべて大文字、すべて小文字、タイトルケースの保持のみをサポートしています。

検索ウィジェットのボタンのトグルアクティブ状態
検索ウィジェットのボタンのトグルアクティブ状態を塗りつぶしの背景で更新し、アクティブなトグルにフォーカスがあることを簡単に識別できるようになりました。これは、検索ビュー、検索と置換、およびターミナル検索に表示されます。
このアップデートで、トグルアクティブ状態の背景色を制御する新しいテーマカラーinputOption.activeBackgroundを導入しました。この色はfocusBorderを再利用するため、デフォルトでテーマとうまく機能します。また、inputOption.activeBorderのデフォルトを透明に設定し、境界線はフォーカスにのみ使用されるようにしました。

情報色の更新
警告色の統一に続き、editorInfoForegroundとeditorInfoBorderも他の情報診断色と一致するように更新しました。この更新された色は、Peekエラービューとエディターの波線で確認できます。

統合ターミナル
検索のUX改善
以前は、ターミナル内での検索はターミナルのビューポートの上部から下向きに始まり、下部に達すると上部に折り返されていました。新しい動作は、他のいくつかのターミナルエミュレータと一致しており、バッファの下部から上向きに検索を開始するため、混乱の少ない体験につながります。

ターミナルのアクセシビリティ改善
スクリーンリーダーを使用している場合、ターミナルには行ナビゲーションモードが搭載され、 および を介して行の便利なナビゲーションが可能になります。このモードは で終了できます。
キーバインディングをカスタマイズしたい場合は、これらが新しいコマンドです。詳細はこちら
workbench.action.terminal.navigationModeExit
workbench.action.terminal.navigationModeFocusNext
workbench.action.terminal.navigationModeFocusPrevious
その他のアクセシビリティ改善も行われました。
- 空白行に明示的な文字列ではなくノーブレークスペース文字が使用されるようになり、スクリーンリーダーが適切にアナウンスできるようになりました。
- スクリーンリーダーは、文字の入力時と削除時に文字をアナウンスするようになりました。これは一部のケースでは機能しない場合がありますが、大部分のケースはカバーされています。
設定で解決される変数
変数は、以下の設定内で使用できるようになりました。
terminal.integrated.cwd
terminal.integrated.shell.<platform>
terminal.integrated.shellArgs.<platform>
たとえば、現在のファイルのフォルダでターミナルを開くために拡張機能は必要なくなり、この設定を追加するだけで済みます。
"terminal.integrated.cwd": "${fileDirname}"
エラー報告と診断の改善
以前は、誤った設定でターミナルが起動した場合、プロセスがエラーコードで終了したことのみが示されていました。現在は、いくつかの一般的なシナリオに対する解決策をユーザーに案内する、より良いエラーメッセージが提供されます。

言語
SCSS @import ナビゲーションの改善
VS Codeは以前、SCSSインポートを静的に解決していました。例えば、@import './foo'は_foo.scssに解決されました。しかし、SCSSはインポートの解決方法がより柔軟で、./fooを以下の5つの場所のいずれかに解決できます。
foo.scss_foo.scssfoo/index.scssfoo/_index.scssfoo.css
VS Codeは、解決されたファイルがディスク上に存在する場合、@import './foo'をこれらの場所のいずれかに解決するようになりました。リンクが/で終わる場合、/index.scssまたは/_index.scssのいずれかにのみ解決されることに注意してください。リンクが.cssや.scssなどのサフィックスで終わる場合、VS Codeは代替のファイル場所を試みません。
CSSプロパティ値の補完機能の改善
CSS補完は、あまり一般的ではない値を含む、追加の754個のCSSプロパティ値の詳細なドキュメントを提供するようになりました。

JavaScriptとTypeScriptの構文のみの機能をより迅速に利用する
前回のリリースで、VS CodeのJavaScriptおよびTypeScript言語機能に電力を供給するTypeScriptサーバーを、個別の構文サーバーとセマンティックサーバーに分割する実験的な設定を追加しました。
VS Code 1.37では、分割サーバーがデフォルトで有効になっています。これにより、大規模なJavaScriptおよびTypeScriptプロジェクトでは、コードの折りたたみやドキュメントのアウトラインなどの構文ベースの操作がより迅速に利用できるようになります。
タスク
TypeScript検出タスクの警告
前回のリリースで、TypeScriptタスクの自動検出は、tsconfigパスでOS固有のパスセパレーターを使用する代わりに、よりクロスプラットフォームに優しい/を使用するように変更されました。VS Codeは、tsconfigパスに\\がある場合、警告を表示するようになりました。
{
"type": "typescript",
"tsconfig": "src\\tsconfig.json", // This will cause a warning to show. It should be "tsconfig": "src/tsconfig.json"
"option": "watch",
"problemMatcher": [
"$tsc-watch"
]
}
タスクおよびデバッグ構成用の${relativeFileDirname}変数
新しい変数${relativeFileDirname}は、現在開いているファイルのディレクトリのワークスペースフォルダ相対パスに解決されます。この変数は、タスクおよびデバッグ構成 (tasks.jsonおよびlaunch.json) で使用できます。
resolveTask のサポート
タスクプロバイダーは、resolveTaskを実装して、タスクを提供する拡張機能のオーバーヘッドを削減できるようになりました。resolveTaskはprovideTasksの後に呼び出されるため、拡張機能にprovideTasksと自動検出をオフにする設定がある場合 (組み込みのgulp拡張機能など)、ユーザーがtasks.jsonでタスクの1つを参照している場合でも、resolveTaskが呼び出され、拡張機能はその単一のタスクを返すことができます。
拡張機能への貢献
リモート開発 (プレビュー)
コンテナ、リモートマシン、またはWindows Subsystem for Linux (WSL) をフル機能の開発環境として使用できるようにするリモート開発拡張機能の作業が引き続き進められています。新しい拡張機能の機能とバグ修正については、リモート開発リリースノートで確認できます。
最近のブログ記事も2つ読むことができます。
Javaがスマート選択に対応
Microsoft Java 拡張機能がスマートセマンティック選択をサポートするようになりました。ソースコード内のキャレット位置のセマンティック情報に基づいて、選択範囲を拡大または縮小できます。
- 選択範囲を拡大するには、⌃⇧⌘→ (Windows, Linux Shift+Alt+Right) を使用します。
- 選択範囲を縮小するには、⌃⇧⌘← (Windows, Linux Shift+Alt+Left) を使用します。
拡張機能作成
vscode.workspace.fs
拡張機能がファイルやフォルダを読み書き、管理するための新しいAPIが追加されました。これはNode.jsのfsファイルシステムモジュールの代替であり、さらに重要なことに、SSHやWSLのリモートファイルシステムなど、寄稿されたファイルシステムからのファイルアクセスを可能にします。
以下のスニペットはファイルへの書き込み方法を示しています。さらに多くの使用例はfsconsumer-sampleで確認できます。
const writeStr = '1€ is 1.12$ is 0.9£';
const writeBytes = Buffer.from(writeStr, 'utf8');
await vscode.workspace.fs.writeFile(someUri, writeBytes);
行動喚起: 拡張機能が現在Node.jsのfsモジュールを使用している場合は、新しいvscode.workspace.fs APIへの移行を検討してください。
DiagnosticsTag.Deprecated
診断タグを使用すると、拡張機能の作成者はエディター内の診断の表示を強化できます。今回のリリースでは、DiagnosticTag.Deprecatedが追加され、エディターでは取り消し線で表示されます。

上の画像内の診断は、以下のvalidate関数によって作成されています。diag.tags = [vscode.DiagnosticTag.Deprecated];の行が非推奨タグを追加しています。
let diagnostics = vscode.languages.createDiagnosticCollection('Sample Errors');
let validate = (editor: vscode.TextEditor | undefined) => {
if (!editor) {
return;
}
let result: vscode.Diagnostic[] = [];
for (let line = 0; line < editor.document.lineCount; line++) {
let pos = 0;
while ((pos = editor.document.lineAt(line).text.indexOf('guys', pos)) >= 0) {
let diag = new vscode.Diagnostic(
new vscode.Range(line, pos, line, pos + 'guys'.length),
'This is deprecated, use "folks", "people", or "you all" instead.'
);
diag.severity = vscode.DiagnosticSeverity.Warning;
diag.tags = [vscode.DiagnosticTag.Deprecated];
result.push(diag);
pos += 'guys'.length;
}
}
diagnostics.set(editor.document.uri, result);
};
vscode.workspace.workspaceFile
新しいワークスペースプロパティworkspace.workspaceFileが追加され、ワークスペースファイルの場所を返します。例えば、file:///Users/name/Development/myProject.code-workspace、またはまだ保存されていない無題のワークスペースの場合はuntitled:1555503116870です。
開かれているワークスペースによって、値は次のようになります。
- ワークスペースが開かれていないか、単一のフォルダが開かれている場合は
undefined。 - ワークスペースファイルのパスを
Uriとして返します。
ワークスペースが無題の場合、返されるURIはuntitled:スキームを使用します。
ワークスペースファイルの場所の一つの使い方は、ワークスペースが閉じられた後に再度開くためにvscode.openFolderコマンドを呼び出すことです。
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
注: workspace.workspaceFileの場所を使用して設定データを直接ファイルに書き込むことは推奨されません。代わりに、単一のフォルダが開かれている場合でも、無題または保存されたワークスペースの場合でも機能するworkspace.getConfiguration().update()メソッドを使用してください。
vscode.env.shell
提案されていたvscode.env.shell APIが安定版になりました。これは、terminal.integrated.shell.設定の代わりに、ターミナルのデフォルトシェルを取得するために使用されるべきです。
const shell = vscode.env.shell;
if (shell.search(/(powershell|pwsh)/i) !== -1) {
// Do something special that PowerShell needs
}
when 句での OR のサポート
when句が期待されるさまざまな貢献ポイントで、論理 OR (||) を使用できるようになりました。
例えば、メニュー貢献を追加する場合
"contributes": {
"menus": {
"editor/title": [{
"command": "showPreviewToSide",
"when": "editorLangId == markdown || editorLangId == html",
"group": "navigation"
}]
}
}
AND && 演算子は OR || よりも高い優先順位を持ちます。
アクティブな入力オプション用の新しいテーマカラー
新しい色、inputOption.activeBackgroundが追加され、入力フィールドで有効化されたオプションの背景色を制御できるようになりました。この色はfocusBorderを再利用するため、デフォルトでテーマとうまく機能します。また、inputOption.activeBorderのデフォルトを透明に設定し、境界線はフォーカスにのみ使用されるようにしました。
拡張機能の統合テスト実行前に拡張機能をインストール
vscode-test@1.1.0により、拡張機能開発者はダウンロードされたVS CodeのCLIパスを解決し、そのパスを拡張機能管理に使用できるようになりました。
例
const cp = require('child_process');
const { downloadAndUnzipVSCode, resolveCliPathFromExecutablePath } = require('vscode-test');
(async () => {
const vscodeExecutablePath = await downloadAndUnzipVSCode('1.36.0');
const cliPath = resolveCliPathFromExecutablePath(vscodeExecutablePath);
cp.spawnSync(cliPath, ['--install-extension', '<EXTENSION-ID-OR-PATH-TO-VSIX>'], {
encoding: 'utf-8',
stdio: 'inherit'
});
})();
詳細は、更新された拡張機能テストのドキュメントで確認できます。
Linuxで拡張機能の統合テストを実行するためのTravis CIスクリプトを更新
最新のTravis CI Linux環境では、拡張機能の統合テストに推奨される構成 (以下参照) が機能しない場合があります。
if [ $TRAVIS_OS_NAME == "linux" ]; then
export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
sh -e /etc/init.d/xvfb start;
sleep 3;
fi
代わりに、以下のXvfbスクリプトを使用できます。
if [ $TRAVIS_OS_NAME == "linux" ]; then
export DISPLAY=':99.0'
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
fi
詳細は、更新された継続的インテグレーションのドキュメントで確認できます。
提案された拡張API
各マイルストーンには新しい提案APIが付属しており、拡張機能開発者はこれらを試すことができます。いつものように、皆様からのフィードバックをお待ちしております。提案APIを試すには、次の手順を実行します。
- 提案APIは頻繁に変更されるため、Insiders版を使用する必要があります。
- 拡張機能の
package.jsonファイルに次の行が必要です:"enableProposedApi": true。 - vscode.proposed.d.tsファイルの最新バージョンをプロジェクトにコピーします。
提案APIを使用する拡張機能は公開できないことに注意してください。次回のリリースでは互換性のない変更が行われる可能性があり、既存の拡張機能を壊すことは決して望ましくありません。
拡張機能ターミナル
昨年導入された提案中のTerminalRenderer APIは大幅な変更を経て、現在は「拡張機能ターミナル」に置き換えられ非推奨となりました。新しいAPIは、ターミナルが実際に機能する方法とより密接に連携しており、拡張機能は現在、*nixスタイルのptyに似たPseudoterminalオブジェクトを実装しています。
現在の提案は以下の通りです。
export namespace window {
export function createTerminal(options: ExtensionTerminalOptions): Terminal;
}
export interface ExtensionTerminalOptions {
name: string;
pty: Pseudoterminal;
}
interface Pseudoterminal {
onDidWrite: Event<string>;
onDidOverrideDimensions?: Event<TerminalDimensions | undefined>;
onDidClose?: Event<void>;
open(initialDimensions: TerminalDimensions | undefined): void;
close(): void;
handleInput?(data: string): void;
setDimensions?(dimensions: TerminalDimensions): void;
}
主な変更点は以下の通りです。
- 拡張機能ターミナルは、通常のターミナルとほぼ同じ方法で作成できるようになり、異なるオプションオブジェクトを使用するだけになりました。これにより、
TerminalRenderer.terminalを介したTerminalオブジェクトへの紛らわしいアクセスもなくなりました。 - OSプロセスの概念と終了コードを返す必要がなくなりました。
Pseudoterminalはターミナルを閉じるだけでよく、すべてのエラー表示/通知は拡張機能によって行われます。 Pseudoterminal.openは、初期寸法が利用可能な場合 (ターミナルパネルが以前に表示されていた場合) に、初期寸法を引数として呼び出されます。
以下は、入力した内容をエコーバックする簡単なターミナルの作成方法の簡単な例です。
const writeEmitter = new vscode.EventEmitter<string>();
let line = '';
const pty = {
onDidWrite: writeEmitter.event,
open: () => writeEmitter.fire('Type and press enter to echo the text\r\n\r\n'),
close: () => {},
handleInput: (data: string) => {
if (data === '\r') {
writeEmitter.fire(`\r\necho: "${line}"\r\n\n`);
line = '';
} else {
line += data;
writeEmitter.fire(data);
}
}
};
const terminal = vscode.window.createTerminal({ name: `My Extension REPL`, pty });
terminal.show();
この機能は比較的早く、おそらくv1.38とv1.39の間で安定化され、非推奨のターミナルレンダラーは削除される予定です。
vscode.CustomExecution2
このAPIは、vscode.CustomExecutionの進化形です。これは、新しく改善されたvscode.Pseudoterminalを使用することで、タスクプロバイダーが、スクリプトやプロセスを実行するだけでなく、拡張機能内のコードがターミナルを完全に制御できるタスクを作成できるようになります。
export class CustomExecution2 {
/**
* @param process The [Pseudoterminal](#_Pseudoterminal) to be used by the task to display output.
* @param callback The callback that will be called when the task is started by a user.
*/
constructor(callback: (thisArg?: any) => Thenable<Pseudoterminal>);
/**
* The callback used to execute the task. Cancellation should be handled using
* [Pseudoterminal.close](#_Pseudoterminal.close). When the task is complete fire
* [Pseudoterminal.onDidClose](#_Pseudoterminal.onDidClose).
*/
callback: (thisArg?: any) => Thenable<Pseudoterminal>;
}
vscode.commands.onDidExecuteCommand
コマンドが実行されるたびに発生する新しいイベントが追加され、イベントのペイロードにはコマンドと引数が含まれています。
export interface CommandExecutionEvent {
command: string;
arguments: any[];
}
export namespace commands {
/**
* An event that is emitted when a [command](#_Command) is executed.
*/
export const onDidExecuteCommand: Event<CommandExecutionEvent>;
}
Webview.toWebviewResourceとWebview.cspSource
以前提案されたWebview.resourceRoot APIが再設計されました。
現在、webviewに2つの提案されたプロパティがあります。
-
Webview.toWebviewResource- ローカルファイルシステムのURIを、webview内で使用できるURIに変換します。デスクトップ版VS Codeの場合、これは
file:URIをvscode-resource:URIに変換します。 -
Webview.cspSource- webviewリソースのコンテンツセキュリティポリシーソース。デスクトップ版VS Codeの場合、これは文字列
vscode-resource:になります。
const panel = vscode.window.createWebviewPanel(
CatCodingPanel.viewType,
'Cat Coding',
vscode.ViewColumn.One,
{
// Restrict the webview to only loading local content from our extension's `media` directory.
localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
}
);
const imagePath = vscode.Uri.file(path.join(extensionPath, 'media'));
panel.html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${
panel.webview.cspSource
} https:;">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cat Coding</title>
</head>
<body>
<img src="${panel.webview.toWebviewResource(imagePath)}/cat.gif" width="300" />
</body>
</html>`;
エンジニアリング
VS CodeコードベースからのsuppressImplicitAnyIndexErrorsの削除
VS Codeのソースで厳密なnullチェックを有効にしたとき、TypeScriptコンパイラで"suppressImplicitAnyIndexErrors": trueも有効にしました。この設定により、値の型に明示的なインデックスアクセス署名がなくても、値に対してブラケットアクセサーを使用できます。
これは、TypeScriptが検出できたはずのエラーを隠蔽してしまう可能性があるため、問題です。
const map = new Map()
map.set('property', true);
...
if (map['property']) { // This is not an TS error but it does not do what you want!
doImportantStuff();
}
今回のイテレーションでは、suppressImplicitAnyIndexErrorsの回避策を削除し、それが抑制していた約250のエラーを修正しました。最も一般的な2つの修正は、明示的なインデックス署名を追加することと、オブジェクトリテラルを使用する代わりにマップを格納するために適切なMap型を使用することに切り替えることでした。
グリッドベースのワークベンチレイアウトの進捗
このマイルストーンでは、ワークベンチのグリッドベースのレイアウトに関して、いくつかのマイルストーンで開始された取り組みを継続しました。最初のソリューションが完了すると、ワークベンチの新しいバージョンは同様に機能するはずですが、新しいレイアウトオプションや機能を追加する柔軟性が高まります。
現在テスト中の新しい動作の1つは、ターミナルを完全に上にドラッグしてエディターを完全に非表示にする機能です。今のところ、レイアウトはまだworkbench.useExperimentalGridLayoutフラグの背後にあります。前回のマイルストーン中にInsidersではデフォルトで有効にし、次のマイルストーンでも継続します。
iframeベースのWebviewの継続的な調査
VS CodeのWebviewをホストするために通常のiframeを使用する調査を継続しました。この一環として、すべてのiframeベースのWebviewをユニークなオリジンでロードできるようになりました。これにより、複数の拡張機能からのWebviewが互いに影響し合うことがなくなります。
デスクトップ版VS CodeでiframeベースのWebviewを有効にするには、"webview.experimental.useExternalEndpoint": trueと設定することもできます。iframeベースのWebviewを使用するには、現在インターネット接続が必要であることに注意してください。iframeベースのWebviewはまだ実験段階ですが、iframeベースのWebviewを使用して実行したときに機能しない拡張機能の部分について、webview拡張機能の作者からのフィードバックをいただければ幸いです。
新しいドキュメント
リモート開発チュートリアル
Remote Development拡張機能を使用してVisual Studio Codeを実行する手順を説明する新しい入門チュートリアルが用意されています。
- SSH経由のリモート接続 - Visual Studio CodeでSSH経由でリモートマシンや仮想マシンに接続します。
- WSLでの作業 - Windows Subsystem for LinuxでVisual Studio Codeを実行します。
- 開発コンテナ - DockerコンテナでVisual Studio Codeを実行します。
注目すべき修正点
- 422: 最大化されたウィンドウを復元する際にウィンドウサイズを保持する
- 70371: 大規模ファイルでのEmmetタブ補完が遅い
- 76922: サイドバービューの順序がすべてのウィンドウで保持される
- 76989: 拡張機能のデバッグで拡張機能の無効化が機能しない
- 77110: デバッグ統合ターミナルサポートがデフォルトターミナルを取得しない
- 77926: 「string;」と入力すると、時々「strings;」が挿入される
ありがとうございます
最後に、そしてもちろん最も重要なこととして、Visual Studio Codeをさらに良くするために協力してくれた以下の方々に、心からの感謝を申し上げます!
vscodeへの貢献者
- kaoru (@0x6b): 「Checking For Updates...」メニュー項目の「For」を小文字にする PR #77972
- Akshita Agarwal (@akshita31): dotnetビルドテンプレートの変更 PR #76318
- Angelo (@angelozerr)
- Brett Cannon (@brettcannon)
- Shiva Prasanth (@cedric05): 複数のgitリポジトリのワークスペースで、
source control provider viewで上矢印キーとEnterキーを押しても変更を閲覧/フォーカスできない PR #73139 - Christian Oliff (@coliff): 'Untitled'のtypoを修正 PR #78272
- Connor Peet (@connor4312): fix(sash): iframeを含む拡張機能でドラッグが困難になる問題を修正 PR #77121
- Connor Shea (@connorshea): .rbiファイル拡張子をRubyファイルタイプとして追加 PR #75155
- Daniel Schildt (@d2s): fix: スペルミスの修正 PR #77618
- Dave Alongi (@dalongi): URIを処理する権限のある拡張機能を記憶するための設定+UI PR #70844
- Eric Amodio (@eamodio)
- Gabriel DeBacker (@GabeDeBacker): カスタム実行に正しい解決済みTDOとタスクを使用 PR #77759
- George Batalinski (@georgebatalinski): search-widget(aria-live)の結果ステータス PR #77031
- Haneef Mohammed (@haneefdm): デバッグ変数ビューでツリーの状態を保持する PR #76476
- Harry Hedger (@hedgerh): onDidExecuteCommand API PR #72345
- Hung-Wei Hung (@hwhung0111)
- @ironyman: HCでタブとブレッドクラムの間にボーダーを追加 PR #76157
- Julien Brianceau (@jbrianceau)
- Jean Pierre (@jeanp413)
- Joel Day (@joelday): TaskProvider.resolveTaskのサポートを追加 PR #71027
- Malige Julien (@JulienMalige): #42382 検索と置換中に大文字/小文字を保持する PR #60311
- Justin Grant (@justingrant): JSDocのタイプミスを修正: "beginPattern" -> "beginsPattern" PR #73141
- Kamran Ayub (@kamranayub)
- Kostya Bushuev (@kostyabushuev): #71134 を修正 PR #71500
- Maik Riechert (@letmaik): cpuUsage.shでの変数のインクリメントを修正 PR #77512
- Leonardo Carreiro (@lmcarreiro): #48403 マークダウン画像の壊れたUNCパスを修正 PR #74332
- Mason Liu (@masliu): プレビュー用にresourceColumnを保存、#74008を修正 PR #76647
- Mathieu Plourde (@matpl): isInDOM関数にシャドウルートサポートを追加 PR #72313
- @mflan48: Issue #71683のプルリクエスト PR #72381
- @Neonit: Markdownプレビューのコードタブサイズを4に調整 PR #77745
- Ryo Nishimura (@niharu): typo transitionDisposables を修正 PR #76723
- Orta (@orta): seti-uiの最新アイコンテーマに更新 PR #76890
- Dima Ovcharenko (@ovcharenko-di): idをdisplayNameに変更、#77141を修正 PR #77147
- @pi1024e
- Robert Ancell (@robert-ancell): snapcaft.yaml: SnapメタデータにAppStream IDを設定する PR #76432
- @sharkykh: リネーム時に現在のgitブランチ名を値として設定 PR #72957
- Prabhanjan S Koushik (@skprabhanjan)
- Fix-72650 シェルパスは曖昧なエラーを防ぐために起動前に検証されるべき - $Pathチェック PR #76349
- Fix-75259 - 検索結果のファイルを操作する PR #78337
- Fix-76141 画像プレビューの画像にボーダーを追加 PR #76387
- Fix-76662 *.hpp.inをファイル関連付けに最初から追加 PR #76680
- Fix-74281 標準テーマがSourceControlResourceGroupのタイトルを大文字に強制する PR #76286
- Fix-73341 拡張機能ページからの拡張機能のインストール「インストール」ボタンが右下の通知バルーンを保持し続ける PR #74795
- Fix-75259 - 検索結果のファイルを操作する PR #76828
- Fix-76315 *.podspec をファイル関連付けに追加 PR #76447
- @tomkv: 地域が必要なロケールにskを追加 PR #77942
- Tony Xia (@tony-xia)
- Alexander (@usernamehw): 「Webviewでスムーズスクロールを無効にするCLIフラグを追加」を元に戻す PR #76944
- Vanessa Phipps (@vlmphipps): 置換: すべて置換する際にpreserveCaseを尊重する PR #78003
- Wesley Wigham (@weswigham): 他のすべてのフォルダと一致するようにビルドフォルダでより新しいバージョンの@types/nodeを使用する PR #77784
- Xhulio Hasani (@xuhas): タブタイトルにgit HEAD情報 PR #76329
- Zero (@ZhangDezhi): extensionTestsLocationURI.fsPath はパスを正規化するので避ける (#69 のため)... PR #74214
問題追跡への貢献者
- John Murray (@gjsjohnmurray)
- Alexander (@usernamehw)
- Eric Amodio (@eamodio)
- Jean Pierre (@jeanp413)
- Danny Tuppeny (@DanTup)
受信した問題の管理にご協力いただける場合は、コミュニティ問題追跡ページをご覧ください。
language-server-protocolへの貢献者
debug-adapter-protocolへの貢献者
- Pierson Lee (@pieandcakes): C/C++データを更新 PR #64
- Jonah Graham (@jonahgraham): バージョンをchangelogの最新エントリと一致させるように更新 PR #67
vscode-generator-codeへの貢献者
- Tomáš Hübelbauer (@TomasHubelbauer): このジェネレータがrequire.resolveで動作するようにする PR #179
- Yoichi Kawasaki (@yokawasa): ext-command-tsテンプレートのクイックスタートページを更新 PR #178
vscode-vsceへのコントリビューション
- Eric Amodio (@eamodio): prepublishステップで--yarnフラグを尊重する PR #376
- Leo Hanisch (@HaaLeo): GitHub Issue Links をサポート PR #345
- James George (@jamesgeorge007): 簡潔なコードになるように軽微なリファクタリング PR #370
inno-updaterへの貢献
- Ta Thanh Dinh (@tathanhdinh): is_nullメソッドを使用してポインタがnullかどうかをチェック PR #10
localizationへの貢献
Cloud + AI Localization コミュニティには 800 人以上のメンバーが Microsoft Localization Community Platform (MLCP) を使用しており、そのうち約 100 人が Visual Studio Code に積極的に貢献しています。新しい翻訳の提供、翻訳への投票、プロセス改善の提案など、皆様のご貢献に感謝いたします。
貢献者の概要はこちらです。貢献者名リストを含むプロジェクトの詳細については、https://aka.ms/vscodeloc のプロジェクトサイトをご覧ください。
- ボスニア語: Ismar Bašanović, Ernad Husremovic.
- ブルガリア語: Hristiqn Hristov, Иван Иванов, Любомир Василев, Gheorghi Penkov.
- チェコ語: Tadeáš Cvrček, Daniel Padrta, David Jareš, Jan Hajek, Jakub Stibůrek, Michal Franc, Jan Kos, Radim Hampl, Jiří Hofman, Samuel Tulach, Jan Brudný.
- デンマーク語: René Pape, Lasse Stilvang, Allan Kimmer Jensen, Lars Vange Jørgensen, Alexander Matzen, Martin Liversage, Johan Fagerberg, Thomas Larsen, Anders Lund, Anton Ariens.
- オランダ語: Leroy Witteveen, Maxim Janssens, Luc Sieben, Hans Zoons, Jos Verlinde, Eric Algera, Damien van Gageldonk, Maxim Van Damme, Sven Klaasen, Tom Meulemans, Sujith Quintelier.
- 英語 (イギリス): Martin Littlecott, Alexander Ogilvie, Tobias Collier, William Wood, Fabio Zuin, Mohit Nain, Dan Jacobs, Sulkhan Ninidze, Giorgi Jambazishvili, alshyab wa3ed, YASHU MITTAL, Tejas kale, Mohammad Idrees, Chris Dias.
- フィンランド語: Petri Niinimäki, Kiti Suupohja, Lasse Leppänen, Sebastian de Mel, Riku Riikonen, Valtteri Vatanen.
- フランス語: Antoine Griffard, Thierry DEMAN-BARCELÒ, Corwin D'Ambre, Mohamed Sahbi, Rodolphe NOEL, Maxime Coquerel, Steven Dugois, Cédric M., Michael VAUDIN, Bastien Boussouf, franto.
- ドイツ語: Julian Pritzi, Jakob von der Haar, Frank Lindecke, Dejan Dinic, Florian Erbs, Patrick Burke, Mario Koschischek, Florian Berger, Christof Opresnik, Hans Meiser, Carsten Kneip, Ettore Atalan, Thorsten Hans, Meghana Garise, Sebastian Seidl.
- ギリシャ語: Δημήτρης Παπαϊωάννου, Sotiris Koukios-Panopoulos, Jim Spentzos, Θοδωρής Τσιρπάνης, Stratos Kourtzanidis, Charalampos Fanoulis, John D, Vassilis Vouvonikos.
- ヘブライ語: חיים לבוב, Shalom Craimer, Matan Amos, Eyal Ellenbogen, Snir Broshi, Kyle Orin.
- ヒンディー語: Satish Yadav, Amit Gusain, Sanyam Jain, Abhirav Kushwaha, Ashok Kumar Rathore, nirav adatiya, Rajeev Desai, shaswat rungta, Kumar Vaibhav, Pramit Das, Jagjeet Singh, Pratishek PII, Kiren Paul, Chethana S, Kishan K, Dhanvi Kapila.
- ハンガリー語: Levente Borbély, Péter Nagy, Levente Hallai Seiler, Dániel Tar, Richard Borcsik, Boldi Kemény.
- 中国語 (簡体字): Tingting Yi, 斌 项, paul cheung, Yiting Zhu, 建东 薛, feiyun0112 feiyun0112, Joel Yang, 刘瑞恒 刘瑞恒, Edi Wang, Junzhe Liu, Dave Young, 张锐, Yizhi Gu, Fan Su, 昊宇 周, Justin Liu, Pluwen, Tony Xia, Yu Zhang, XIANG ZUO, 少民 谈, 彦佐 刘, Zhiqiang Li, 福永 叶, G.Y. Z, Hao Hu, 志乐 龚, meng shao, Horie Yuan, Xiangrui Kong, Liam Kennedy, 王文杰, 赵畅畅, 松阳 樊, anson zhang, Young Bige, Shi Liu, Wang Debang, Jessica Zhang, Licheng Ren, 驰 雷, sun qing, xiong Fu, Lynne Dong, zhao yu, 吉姆 舒, 红东 黄, 游 尤, 剑秋 陶, Hanlin Yang, , bh wu, Bravo Yeung, Michael Zhang, Hanyu ZHANG, Y F, WangCG duoduobear, ziqiang sun, 越 郑, 正元 刘, Jiang LI, 擎 钟, peng wei, 涛 徐, 逍遥 许, Charles Lee, 瑜 周, WL, 伟 全, rsy iridescent, Simon Chan, 海龙 黄, 仁松 陈, Jieting Xu, panda small, 翼 张, Chen Yang, Wang Weixuan, 舜杰 杨, Ludi Fang, 雨齐 刘, 建 周, 涛 罗, cuibty wong, 立飞 李, LI ZHAO, 九鼎 谭.
- 中国語 (繁体字): 謝政廷, Winnie Lin, LikKee 沥祺 Richie, Martin Lau, Jeremy, 奕濬 潘, 小克, 煾 雪.
- インドネシア語: Jakka Prihatna, Septian Adi, Arif Fahmi, Laurensius Dede Suhardiman, maziyank, Heston Sinuraya, Hendra Widjaja, Don Nisnoni, Rachmat Wahidi, Franky So, Bervianto Leo Pratama, Eriawan Kusumawardhono, Rifani Arsyad, Afnizar Nur Ghifari, Christian Elbrianno, Pradipta Hendri, Azhe Kun.
- イタリア語: Alessandro Alpi, Bruni Luca, Luigi Bruno, Andrea Dottor, Riccardo Cappello, Aldo Donetti, andrea falco, Emanuele Meazzo, Michael Longo, Marco Dal Pino.
- 日本語: EbXpJ6bp -, nh, Kyohei Uchida, Yoshihisa Ozaki, Hasefumi, TENMYO Masakazu, Takayuki Fuwa, Michihito Kumamoto, Koichi Makino, Seiji Momoto, Aya Tokura, Yosuke Sano, Makoto Sakaguchi, Kyohei Moriyama, 裕子 知念, Rie Moriguchi, Fujio Kojima, 美穂 山本, taniokae, 太郎 西岡, Hiroomi Kurosawa, Kazuya Ujihara, Yasuaki Matsuda.
- 韓国語: Hongju, 우현 조, Jong Heun Shin, 형섭 이, Kyunghee Ko, Youngjae Kim, siin lee, Jae Yong Kum, Hoyeon Han, Kevin Lee, SeungJin Jeong, Hong Kwon.
- ラトビア語: Kaspars Bergs, Andris Vilde.
- リトアニア語: Andrius Svylas, Augustas Grikšas, Tautvydas Derzinskas, Karolis Kundrotas, Martynas J..
- ノルウェー語: Andreas Rødland, Cookius Monsterius, Dag H. Baardsen, Ole Kristian Losvik, Stephan Eriksen.
- ポーランド語: Warchlak, Wojciech Maj, Marcin Weksznejder, Rafał Całka, Tomasz Świstak, Tomasz Wiśniewski, Marek Biedrzycki, Szymon Seliga, Michal Szulc, Jakub Żmidziński, Bartek PL, Igor 05, Rafał Wolak, Tomasz Chojnacki, Piotr Grędowski, Czech Kaczmarek, Artur Pelczar, Marcin Floryan, Paweł Modrzejewski, Jakub Jedryszek, Michał Stojke, Artur Zdanowski.
- ポルトガル語 (ブラジル): Alessandro Trovato, Thiago Dupin Ugeda, Weslei A. de T. Marinho, Rafael Lima Teixeira, Gerardo Magela Machado da Silva, Marcos Albuquerque, Loiane Groner, Alessandro Fragnani, Judson Santiago, Andrei Bosco, Fábio Corrêa, Roberto Fonseca, Fabio Lux, Emmanuel Gomes Brandão, Guilherme Pais, Rodrigo Vieira, André Gama.
- ポルトガル語(ポルトガル): Ana Rebelo, Nuno Carapito, Pedro Daniel, Pedro Teixeira, João Carvalho, Diogo Barros, José Rodrigues, Sandro Pereira, Vitor Barbosa, Tiago Antunes.
- ルーマニア語: Mihai Marinescu, Stefan Gabos, Alexandru Staicu.
- ロシア語: Andrey Veselov, Дмитрий Кирьянов, michael v, Иван Лещенко, nata kazakova, Анатолий Калужин, Валерий Батурин, Эдуард Тихонов.
- セルビア語: Milos Zivkovic, Radovan Skendzic.
- スペイン語: Andy Gonzalez, Alvaro Enrique Ruano, Engel Aguilar, Carlos Mendible, José María Aguilar, David Fernández Aldana, Ricardo Rubio, Thierry DEMAN, julian3xl, Ing. Sergio Uziel Tovar Lemus, Mario Mendieta, Jorge Serrano Pérez, Ricardo Estrada Rdez.
- スウェーデン語: Johan Spånberg, Notetur Nomen.
- タミル語: Merbin J Anselm, Kondasamy Jayaraman, Mani M, Boopesh Kumar, Vignesh Rajendran, Jeyanthinath Muthuram, Jaganathan B, Nithun Harikrishnan, Purusothaman Ramanujam, Krishna Pravin, Jeffin R P, Karunakaran Samayan, Vetri ..
- トルコ語: Meryem Aytek, BlueAngel-MG, Fıratcan Sucu, Ahmetcan Aksu, Ömer Sert, Mehmet Yönügül, Anıl MISIRLIOĞLU, Sinan Açar, Misir Jafarov, Umut Can Alparslan, Yakup Ad, Hüseyin Fahri Uzun, S. Ferit Arslan, Mesut Pişkin, Okan Çetin, Bruh Moment, Muhammed Emin TİFTİKÇİ, Burak Göksel.
- ウクライナ語: Dmytro Kutianskyi, Arthur Murauskas, Sviatoslav Ivaskiv, Yaroslav Y, George Molchanyuk, Did Kokos, Alexander Varchenko, Вадим Шашков, Евгений Коростылёв.
- ベトナム語: Khôi Phạm, Van-Tien Hoang, Belikhun, Việt Anh Nguyễn, Spepirus Shouru, Vuong Bui, Chủ Tất.