From 18dc465d616d3aef9a3d9aba21cf3e36d1903cff Mon Sep 17 00:00:00 2001 From: Nick Trogh <1908215+ntrogh@users.noreply.github.com> Date: Mon, 9 Dec 2024 21:49:35 +0100 Subject: [PATCH] Verify 1.96 release notes in insiders --- .../images/1_96/add-file-to-edits.png | 3 + release-notes/images/1_96/chat-edits.mp4 | 3 + release-notes/images/1_96/chat-move.png | 3 + .../images/1_96/context_folder_chat.mp4 | 3 + .../images/1_96/context_folder_edits.mp4 | 3 + .../1_96/context_symbols_completion.mp4 | 3 + .../images/1_96/context_symbols_dnd.mp4 | 3 + .../images/1_96/context_symbols_sym.mp4 | 3 + release-notes/images/1_96/copilot-debug.mp4 | 3 + release-notes/images/1_96/copilot-debug.png | 3 + .../1_96/copilot-release-highlights.png | 3 + .../images/1_96/copilot-usage-chart.png | 3 + .../images/1_96/editor-find-history.mp4 | 3 + .../1_96/editor-paste-kind-intellisense.png | 3 + .../images/1_96/expandable-hover.mp4 | 3 + .../images/1_96/explorer_find_empty_space.png | 3 + .../images/1_96/explorer_find_filter.mp4 | 3 + .../images/1_96/explorer_find_highlight.mp4 | 3 + .../1_96/extension-memory-usage-on-disk.png | 3 + .../images/1_96/extension-search-order.png | 3 + .../images/1_96/extensions-download.png | 3 + release-notes/images/1_96/git-blame.mp4 | 3 + .../images/1_96/inline-chat-nl-hint.png | 3 + .../images/1_96/jsts-paste-widget.png | 3 + .../images/1_96/jsts-update-imports-paste.mp4 | 3 + release-notes/images/1_96/move-views.mp4 | 3 + release-notes/images/1_96/nav-controls.png | 3 + .../notebook-md-toolbar-run-in-section.mp4 | 3 + .../1_96/notebook-select-all-occurrences.mp4 | 3 + .../1_96/notebook-selection-highlight.mp4 | 3 + .../1_96/notebook-verbose-execution-time.png | 3 + release-notes/images/1_96/overtype.mp4 | 3 + .../images/1_96/per-test-coverage.mp4 | 3 + .../images/1_96/release-highlights.png | 3 + .../images/1_96/showingBrokerOSDialog.png | 3 + .../source-control-graph-title-actions.png | 3 + .../images/1_96/terminal-completions.gif | 3 + .../images/1_96/terminal-ligatures.png | 3 + .../1_96/terminal-run-recent-command.png | 3 + .../images/1_96/terminal_shellCommand.png | 3 + .../images/1_96/terminal_shellPromptInput.png | 3 + release-notes/images/1_96/test-errors.png | 3 + .../images/1_96/valueSelectionQuickPick.png | 3 + release-notes/v1_96.md | 792 +++++++++++++++++- 44 files changed, 913 insertions(+), 8 deletions(-) create mode 100644 release-notes/images/1_96/add-file-to-edits.png create mode 100644 release-notes/images/1_96/chat-edits.mp4 create mode 100644 release-notes/images/1_96/chat-move.png create mode 100644 release-notes/images/1_96/context_folder_chat.mp4 create mode 100644 release-notes/images/1_96/context_folder_edits.mp4 create mode 100644 release-notes/images/1_96/context_symbols_completion.mp4 create mode 100644 release-notes/images/1_96/context_symbols_dnd.mp4 create mode 100644 release-notes/images/1_96/context_symbols_sym.mp4 create mode 100644 release-notes/images/1_96/copilot-debug.mp4 create mode 100644 release-notes/images/1_96/copilot-debug.png create mode 100644 release-notes/images/1_96/copilot-release-highlights.png create mode 100644 release-notes/images/1_96/copilot-usage-chart.png create mode 100644 release-notes/images/1_96/editor-find-history.mp4 create mode 100644 release-notes/images/1_96/editor-paste-kind-intellisense.png create mode 100644 release-notes/images/1_96/expandable-hover.mp4 create mode 100644 release-notes/images/1_96/explorer_find_empty_space.png create mode 100644 release-notes/images/1_96/explorer_find_filter.mp4 create mode 100644 release-notes/images/1_96/explorer_find_highlight.mp4 create mode 100644 release-notes/images/1_96/extension-memory-usage-on-disk.png create mode 100644 release-notes/images/1_96/extension-search-order.png create mode 100644 release-notes/images/1_96/extensions-download.png create mode 100644 release-notes/images/1_96/git-blame.mp4 create mode 100644 release-notes/images/1_96/inline-chat-nl-hint.png create mode 100644 release-notes/images/1_96/jsts-paste-widget.png create mode 100644 release-notes/images/1_96/jsts-update-imports-paste.mp4 create mode 100644 release-notes/images/1_96/move-views.mp4 create mode 100644 release-notes/images/1_96/nav-controls.png create mode 100644 release-notes/images/1_96/notebook-md-toolbar-run-in-section.mp4 create mode 100644 release-notes/images/1_96/notebook-select-all-occurrences.mp4 create mode 100644 release-notes/images/1_96/notebook-selection-highlight.mp4 create mode 100644 release-notes/images/1_96/notebook-verbose-execution-time.png create mode 100644 release-notes/images/1_96/overtype.mp4 create mode 100644 release-notes/images/1_96/per-test-coverage.mp4 create mode 100644 release-notes/images/1_96/release-highlights.png create mode 100644 release-notes/images/1_96/showingBrokerOSDialog.png create mode 100644 release-notes/images/1_96/source-control-graph-title-actions.png create mode 100644 release-notes/images/1_96/terminal-completions.gif create mode 100644 release-notes/images/1_96/terminal-ligatures.png create mode 100644 release-notes/images/1_96/terminal-run-recent-command.png create mode 100644 release-notes/images/1_96/terminal_shellCommand.png create mode 100644 release-notes/images/1_96/terminal_shellPromptInput.png create mode 100644 release-notes/images/1_96/test-errors.png create mode 100644 release-notes/images/1_96/valueSelectionQuickPick.png diff --git a/release-notes/images/1_96/add-file-to-edits.png b/release-notes/images/1_96/add-file-to-edits.png new file mode 100644 index 0000000000..a4a0e73fd4 --- /dev/null +++ b/release-notes/images/1_96/add-file-to-edits.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ade1758fe8910fc0ddf96af95eac9257068623018f8fe7953d1120435e9e9816 +size 684859 diff --git a/release-notes/images/1_96/chat-edits.mp4 b/release-notes/images/1_96/chat-edits.mp4 new file mode 100644 index 0000000000..9292307b8b --- /dev/null +++ b/release-notes/images/1_96/chat-edits.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6663900956538044d6c46908c090b39e3e536ef436e1e36774f3e8b501e73616 +size 1977637 diff --git a/release-notes/images/1_96/chat-move.png b/release-notes/images/1_96/chat-move.png new file mode 100644 index 0000000000..73eb8eea3f --- /dev/null +++ b/release-notes/images/1_96/chat-move.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:deff458c7719d660e4be1fdb1b6ec05e39df8da1816b891e63dd024480660bf2 +size 287948 diff --git a/release-notes/images/1_96/context_folder_chat.mp4 b/release-notes/images/1_96/context_folder_chat.mp4 new file mode 100644 index 0000000000..a99cf8d817 --- /dev/null +++ b/release-notes/images/1_96/context_folder_chat.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:267d6d6bcab009100929efcdf63f408c310a751b7e3f828856ca49c590110cc0 +size 1393145 diff --git a/release-notes/images/1_96/context_folder_edits.mp4 b/release-notes/images/1_96/context_folder_edits.mp4 new file mode 100644 index 0000000000..bfcba460c2 --- /dev/null +++ b/release-notes/images/1_96/context_folder_edits.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6391cf2cf3d9aa72ec7cd83fe1de5de31630ff5791c45747459fdf26e0820d02 +size 270352 diff --git a/release-notes/images/1_96/context_symbols_completion.mp4 b/release-notes/images/1_96/context_symbols_completion.mp4 new file mode 100644 index 0000000000..36ac3267ba --- /dev/null +++ b/release-notes/images/1_96/context_symbols_completion.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5afe9a083de1531e5716531be53515550aa3b1e28058f563292c87b0448e76d9 +size 950090 diff --git a/release-notes/images/1_96/context_symbols_dnd.mp4 b/release-notes/images/1_96/context_symbols_dnd.mp4 new file mode 100644 index 0000000000..f2212f3f2a --- /dev/null +++ b/release-notes/images/1_96/context_symbols_dnd.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b31bc07d9bf75589acc51e2f82480e5ba615950f47dacbb98d76e007c6104e28 +size 1393994 diff --git a/release-notes/images/1_96/context_symbols_sym.mp4 b/release-notes/images/1_96/context_symbols_sym.mp4 new file mode 100644 index 0000000000..e194dfa510 --- /dev/null +++ b/release-notes/images/1_96/context_symbols_sym.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:807ff904869c8fed99692322bf4c94412180d4794ce8c2c46a26b2b6821727e6 +size 473013 diff --git a/release-notes/images/1_96/copilot-debug.mp4 b/release-notes/images/1_96/copilot-debug.mp4 new file mode 100644 index 0000000000..fb85c37b5a --- /dev/null +++ b/release-notes/images/1_96/copilot-debug.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ca3b0af5ce221845c350bd342501c65092c1cf9f748d5b42e6825d0eff015dc +size 158330 diff --git a/release-notes/images/1_96/copilot-debug.png b/release-notes/images/1_96/copilot-debug.png new file mode 100644 index 0000000000..c1ba99174a --- /dev/null +++ b/release-notes/images/1_96/copilot-debug.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27128f1c4458999b84854f0f5164d7eee6a956f2a1df07974d39fb4547a9b6ec +size 24193 diff --git a/release-notes/images/1_96/copilot-release-highlights.png b/release-notes/images/1_96/copilot-release-highlights.png new file mode 100644 index 0000000000..1bebc8715b --- /dev/null +++ b/release-notes/images/1_96/copilot-release-highlights.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c3666ab6308d9e000537557531447e318fce56018032bc68254b0b213c004d0 +size 36083 diff --git a/release-notes/images/1_96/copilot-usage-chart.png b/release-notes/images/1_96/copilot-usage-chart.png new file mode 100644 index 0000000000..b80074da87 --- /dev/null +++ b/release-notes/images/1_96/copilot-usage-chart.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:097339f49594ae10f0d65c22c5169f4865699c7f4028bef16aa0412f83cfdb10 +size 127085 diff --git a/release-notes/images/1_96/editor-find-history.mp4 b/release-notes/images/1_96/editor-find-history.mp4 new file mode 100644 index 0000000000..a5c87a15ab --- /dev/null +++ b/release-notes/images/1_96/editor-find-history.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:307d1651cccc8dbf5fcd391c49af81b083d4f3d6dfa32e22398dfc7bd172578e +size 619000 diff --git a/release-notes/images/1_96/editor-paste-kind-intellisense.png b/release-notes/images/1_96/editor-paste-kind-intellisense.png new file mode 100644 index 0000000000..534909b7b2 --- /dev/null +++ b/release-notes/images/1_96/editor-paste-kind-intellisense.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a021faa57158f1b4f675f5db8e9c410ede9cff7d0141da2aaa16cb94ca47162 +size 151757 diff --git a/release-notes/images/1_96/expandable-hover.mp4 b/release-notes/images/1_96/expandable-hover.mp4 new file mode 100644 index 0000000000..cfc349b155 --- /dev/null +++ b/release-notes/images/1_96/expandable-hover.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23c71d349cc8cffbfc763dac75c6ae44d17b8126436efd43ffc90f3078455027 +size 1275069 diff --git a/release-notes/images/1_96/explorer_find_empty_space.png b/release-notes/images/1_96/explorer_find_empty_space.png new file mode 100644 index 0000000000..3c3921621b --- /dev/null +++ b/release-notes/images/1_96/explorer_find_empty_space.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0f9664679db34a7703159a0e72b84a45aac9b17f43ba9d68b202a1550cd659 +size 33402 diff --git a/release-notes/images/1_96/explorer_find_filter.mp4 b/release-notes/images/1_96/explorer_find_filter.mp4 new file mode 100644 index 0000000000..a41e53bad0 --- /dev/null +++ b/release-notes/images/1_96/explorer_find_filter.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631ac33e94a06ec34953200e32318c6d69d00073cd539c6ab1bc0837f3bfc0f8 +size 772605 diff --git a/release-notes/images/1_96/explorer_find_highlight.mp4 b/release-notes/images/1_96/explorer_find_highlight.mp4 new file mode 100644 index 0000000000..8b961d1b70 --- /dev/null +++ b/release-notes/images/1_96/explorer_find_highlight.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5df8b5d8cebda0b37a0611c4cb956a2b828c4d47aac2c4abf91c9d2dc0615f8a +size 542954 diff --git a/release-notes/images/1_96/extension-memory-usage-on-disk.png b/release-notes/images/1_96/extension-memory-usage-on-disk.png new file mode 100644 index 0000000000..c790b87a86 --- /dev/null +++ b/release-notes/images/1_96/extension-memory-usage-on-disk.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2e91102297be2fb3889e8048c9aa8aac8806ef848917311825f525bb49faf1f +size 1080611 diff --git a/release-notes/images/1_96/extension-search-order.png b/release-notes/images/1_96/extension-search-order.png new file mode 100644 index 0000000000..278e378ecf --- /dev/null +++ b/release-notes/images/1_96/extension-search-order.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e9560a3129ee91bc51374dafc05c3197b3d9cbc06c0815cda0a032fb7a10696 +size 176500 diff --git a/release-notes/images/1_96/extensions-download.png b/release-notes/images/1_96/extensions-download.png new file mode 100644 index 0000000000..98d4585117 --- /dev/null +++ b/release-notes/images/1_96/extensions-download.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23a9664f03eb5beeb2837977e809aaf06fee0a7d4d8d85e4c232cb568e83cca9 +size 233766 diff --git a/release-notes/images/1_96/git-blame.mp4 b/release-notes/images/1_96/git-blame.mp4 new file mode 100644 index 0000000000..47a7c9f760 --- /dev/null +++ b/release-notes/images/1_96/git-blame.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:406bc49049fc282aad488f8dfcc460ab9706a7648cda0d82fea23ebdb83ccf8a +size 222346 diff --git a/release-notes/images/1_96/inline-chat-nl-hint.png b/release-notes/images/1_96/inline-chat-nl-hint.png new file mode 100644 index 0000000000..1d675838c2 --- /dev/null +++ b/release-notes/images/1_96/inline-chat-nl-hint.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7bd993253eff9d0d6402ea7218c259532713649f07434b5536f7f1f3bfcd65b +size 133633 diff --git a/release-notes/images/1_96/jsts-paste-widget.png b/release-notes/images/1_96/jsts-paste-widget.png new file mode 100644 index 0000000000..3741c61c8a --- /dev/null +++ b/release-notes/images/1_96/jsts-paste-widget.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e486a12917758e030c336b2a02243ca95805ac750c93226b872bb64087e6869 +size 87458 diff --git a/release-notes/images/1_96/jsts-update-imports-paste.mp4 b/release-notes/images/1_96/jsts-update-imports-paste.mp4 new file mode 100644 index 0000000000..f1125b5039 --- /dev/null +++ b/release-notes/images/1_96/jsts-update-imports-paste.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce1f11fc027929ae66c9686339e4d15d78f43630b014dbf1f9a8bcc93d25c0c7 +size 355837 diff --git a/release-notes/images/1_96/move-views.mp4 b/release-notes/images/1_96/move-views.mp4 new file mode 100644 index 0000000000..231d07dda5 --- /dev/null +++ b/release-notes/images/1_96/move-views.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4104777dff8c414d63ed2df875df722678dd7c15caf9ac3932775670d4973bf +size 160926 diff --git a/release-notes/images/1_96/nav-controls.png b/release-notes/images/1_96/nav-controls.png new file mode 100644 index 0000000000..d0b3689128 --- /dev/null +++ b/release-notes/images/1_96/nav-controls.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de677e020035bbbcdafffa2f1880d89c04b983665119f055ae5feeb345d13f1c +size 12270 diff --git a/release-notes/images/1_96/notebook-md-toolbar-run-in-section.mp4 b/release-notes/images/1_96/notebook-md-toolbar-run-in-section.mp4 new file mode 100644 index 0000000000..c39754d57a --- /dev/null +++ b/release-notes/images/1_96/notebook-md-toolbar-run-in-section.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66cd1da3b29a038f545ae111b3efba1f9f94f8e90f4e14e60a1f30f77e919220 +size 332076 diff --git a/release-notes/images/1_96/notebook-select-all-occurrences.mp4 b/release-notes/images/1_96/notebook-select-all-occurrences.mp4 new file mode 100644 index 0000000000..6d54184da5 --- /dev/null +++ b/release-notes/images/1_96/notebook-select-all-occurrences.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faafd2b4df165b2be134ccbf04e8225c811df944f3eb5b336c4ac31f79d3c137 +size 237667 diff --git a/release-notes/images/1_96/notebook-selection-highlight.mp4 b/release-notes/images/1_96/notebook-selection-highlight.mp4 new file mode 100644 index 0000000000..c65903fb68 --- /dev/null +++ b/release-notes/images/1_96/notebook-selection-highlight.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb56fc0ecaffc8168d335774854c2fecc9f344d6783123e1fbfd709c5adcc8ed +size 180971 diff --git a/release-notes/images/1_96/notebook-verbose-execution-time.png b/release-notes/images/1_96/notebook-verbose-execution-time.png new file mode 100644 index 0000000000..d03d2006b5 --- /dev/null +++ b/release-notes/images/1_96/notebook-verbose-execution-time.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efc4211d495ed1b897dcd944090fa02b048c0a14376c461bfac3b7640fbab378 +size 83360 diff --git a/release-notes/images/1_96/overtype.mp4 b/release-notes/images/1_96/overtype.mp4 new file mode 100644 index 0000000000..933b0731c3 --- /dev/null +++ b/release-notes/images/1_96/overtype.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b4a3ecdce02be3cb6979f8dc456d6ef32f14fa59e062e447f59990433cab5fa +size 288935 diff --git a/release-notes/images/1_96/per-test-coverage.mp4 b/release-notes/images/1_96/per-test-coverage.mp4 new file mode 100644 index 0000000000..c9eb4d7beb --- /dev/null +++ b/release-notes/images/1_96/per-test-coverage.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b2401cd0939e4bfef83c22c0f2cbd9b238ba291fcdf4ccd5dc345095d53b7f4 +size 419640 diff --git a/release-notes/images/1_96/release-highlights.png b/release-notes/images/1_96/release-highlights.png new file mode 100644 index 0000000000..7d59a08ccd --- /dev/null +++ b/release-notes/images/1_96/release-highlights.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:837528fac889a53c214e8fdeea81412dc8d1620d1f3a0e630d5a5ee78db8c85c +size 36525 diff --git a/release-notes/images/1_96/showingBrokerOSDialog.png b/release-notes/images/1_96/showingBrokerOSDialog.png new file mode 100644 index 0000000000..a252503eaa --- /dev/null +++ b/release-notes/images/1_96/showingBrokerOSDialog.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d3e34314d9ab0daf0b9e8115d896304c5f1b7ebd8de2dca2f91aa731801c96e +size 218854 diff --git a/release-notes/images/1_96/source-control-graph-title-actions.png b/release-notes/images/1_96/source-control-graph-title-actions.png new file mode 100644 index 0000000000..1ef56fa1c4 --- /dev/null +++ b/release-notes/images/1_96/source-control-graph-title-actions.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12c2eec0740931f2cd1ba0ece0f67775330817456c3935b2b6d339bb978af204 +size 189820 diff --git a/release-notes/images/1_96/terminal-completions.gif b/release-notes/images/1_96/terminal-completions.gif new file mode 100644 index 0000000000..9c8cc56fa6 --- /dev/null +++ b/release-notes/images/1_96/terminal-completions.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b37f0346b9230d4ec026739e09e6270978c23f94bbc28d15558c952f5edecc1b +size 213740 diff --git a/release-notes/images/1_96/terminal-ligatures.png b/release-notes/images/1_96/terminal-ligatures.png new file mode 100644 index 0000000000..7310b4f02d --- /dev/null +++ b/release-notes/images/1_96/terminal-ligatures.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a7bc40d8626b5c2fb35bf343a11ef777ee97e96292315c3f7d029e743bcfb88 +size 9548 diff --git a/release-notes/images/1_96/terminal-run-recent-command.png b/release-notes/images/1_96/terminal-run-recent-command.png new file mode 100644 index 0000000000..c110aae5c3 --- /dev/null +++ b/release-notes/images/1_96/terminal-run-recent-command.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f410ba1e91d4b408070cd6910cb78c6c52deafa119a1c25f6a23dc1f4cd06a96 +size 16728 diff --git a/release-notes/images/1_96/terminal_shellCommand.png b/release-notes/images/1_96/terminal_shellCommand.png new file mode 100644 index 0000000000..dbc110f659 --- /dev/null +++ b/release-notes/images/1_96/terminal_shellCommand.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:838edb1165b95f700cb3c568b03dc2eb82830a8d9aeed13b1afef58ef4674a01 +size 21733 diff --git a/release-notes/images/1_96/terminal_shellPromptInput.png b/release-notes/images/1_96/terminal_shellPromptInput.png new file mode 100644 index 0000000000..10789184ae --- /dev/null +++ b/release-notes/images/1_96/terminal_shellPromptInput.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b172cadf433d589622065712726515fbedc3c1102d7c0f51e56f8b9d43cbb61c +size 9253 diff --git a/release-notes/images/1_96/test-errors.png b/release-notes/images/1_96/test-errors.png new file mode 100644 index 0000000000..b7dfc21df9 --- /dev/null +++ b/release-notes/images/1_96/test-errors.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab01a27363374be99d646cb87b33791e5f7c4c99f4ae4a767f0f2db0c20d1b6 +size 38809 diff --git a/release-notes/images/1_96/valueSelectionQuickPick.png b/release-notes/images/1_96/valueSelectionQuickPick.png new file mode 100644 index 0000000000..8164350834 --- /dev/null +++ b/release-notes/images/1_96/valueSelectionQuickPick.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fb90159bce32e297d23158ed5a1da68a2a2da737ec45af2bb37244c3db69640 +size 21547 diff --git a/release-notes/v1_96.md b/release-notes/v1_96.md index 65ad7ef7eb..7ae8d55a9b 100644 --- a/release-notes/v1_96.md +++ b/release-notes/v1_96.md @@ -4,7 +4,7 @@ TOCTitle: November 2024 PageTitle: Visual Studio Code November 2024 MetaDescription: Learn what is new in the Visual Studio Code November 2024 Release (1.96) MetaSocialImage: 1_96/release-highlights.png -Date: 2024-11-27 +Date: 2024-12-11 DownloadVersion: 1.96.0 --- # November 2024 (version 1.96) @@ -13,16 +13,792 @@ DownloadVersion: 1.96.0 --- -Welcome to the Insiders build. These are the preliminary notes for the November 1.96 release of Visual Studio Code. As we get closer to the release date, you'll find details below about new features and important fixes. +Welcome to the November 2024 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: -Until the November milestone release notes are available, you can still track our progress: +* [Overtype mode](#overtype-mode) - Switch between overwrite or insert mode in the editor +* [Add imports on paste](#configure-paste-and-drop-behavior) - Automatically add missing TS/JS imports when pasting code +* [Test coverage](#attributable-coverage) - Quickly filter which code is covered by a specific test +* [Move views](#move-views-between-primary-and-secondary-side-bar) - Easily move views between the Primary and Secondary Side Bar +* [Terminal ligatures](#ligature-support) - Use ligatures in the terminal +* [Extension allow list](#configure-allowed-extensions) - Configure which extensions can be installed in your organization +* [Debug with Copilot](#debugging-with-copilot) - Use `copilot-debug` terminal command to start a debugging session +* [Chat context](#add-context) - Add symbols and folders as context Chat and Edits +* [Move from chat to Copilot Edits](#copilot-edits) - Switch to Copilot Edits to apply code suggestions from Chat -* **[Commit log](https://github.com/Microsoft/vscode/commits/main)** - GitHub commits to the vscode open-source repository. -* **[Closed issues](https://github.com/Microsoft/vscode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%22November+2024%22)** - Resolved bugs and implemented feature requests in the milestone. +>If you'd like to read these release notes online, go to [Updates](https://code.visualstudio.com/updates) on [code.visualstudio.com](https://code.visualstudio.com). +**Insiders:** Want to try new features as soon as possible? You can download the nightly [Insiders](https://code.visualstudio.com/insiders) build and try the latest updates as soon as they are available. -We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new. +## GitHub Copilot + +### Copilot Edits + +Last milestone, we introduced [Copilot Edits](https://code.visualstudio.com/docs/copilot/copilot-edits) (currently in preview), which allows you to quickly edit multiple files at once using natural language. Since then, we've continued to iterate on the experience. You can try out Copilot Edits by opening the Copilot menu in the Command Center, and then selecting Open Copilot Edits, or by triggering `kb(workbench.action.chat.openEditSession)`. + +#### Progress and editor controls + +Copilot Edits can make multiple changes across different files. You can now more clearly see its progress as edits stream in. And with the editor overlay controls, you can easily cycle through all changes and accept or discard them. + + + +#### Move chat session to Copilot Edits + +You might use the Chat view to explore some ideas for making changes to your code. Instead of applying individual code blocks, you can now move the chat session to Copilot Edits to apply all code suggestions from the session. + +![Edit with Copilot showing for a chat exchange.](images/1_96/chat-move.png) + +#### Working set suggested files + +In Copilot Edits, the working set determines the files that Copilot Edits can suggest changes for. To help you add relevant files to the working set, for a Git repo, Copilot Edits can now suggest additional files based on the files you've already added. For example, Copilot Edits will suggest files that are often changed together with the files you've already added. + +These suggestions also appear in `#` completions in the chat input box. + +#### Restore Edit sessions after restart + +Edit sessions are now fully restored after restarting VS Code. This includes the working set, acceptance state, as well as the file state of all past edit steps. + +#### Add to working set from Explorer, Search, and editor + +You can add files to your Copilot Edits working set with the new **Add File to Copilot Edits** context menu action for search results in the Search view and for files in the Explorer view. Additionally, you can also attach a text selection to Copilot Edits from the editor context menu. + +![Add a file from the explorer view to Copilot Edits](images/1_96/add-file-to-edits.png) + +### Debugging with Copilot + +Configuring debugging can be tricky, especially when you're working with a new project or language. This milestone, we're introducing a new `copilot-debug` terminal command to help you debug your programs using VS Code. You can use it by prefixing the command that you would normally run with `copilot-debug`. For example, if you normally run your program using the command `python foo.py`, you can now run `copilot-debug python foo.py` to start a debugging session. + + + +After your program exits, you are given options to rerun your program or to view, save, or regenerate the VS Code [launch configuration](https://code.visualstudio.com/docs/editor//debugging#launch-configurations) that was used to debug your program. + +![The terminal shows options to rerun, regenerate, save, or the launch config after a debugging session.](./images/1_96/copilot-debug.png) +_Theme: [Codesong](https://marketplace.visualstudio.com/items?itemName=connor4312.codesong) (preview on [vscode.dev](https://vscode.dev/editor/theme/connor4312.codesong))_ + +#### Tasks Support + +Copilot's debugging features, including `copilot-debug` and the `/startDebugging` intent, now generate `preLaunchTask`s as needed for code that needs a compilation step before debugging. This is often the case for compiled languages, such as Rust and C++. + +### Add Context + +We’ve added new ways to include symbols and folders as context in Copilot Chat and Copilot Edits, making it easier to reference relevant information during your workflow. + +#### Symbols + +Symbols can now easily be added to Copilot Chat and Copilot Edits by dragging and dropping them from the Outline View or Breadcrumbs into the Chat view. + + + +We’ve also introduced symbol completion in the chat input. By typing `#` followed by the symbol name, you’ll see suggestions for symbols from files you've recently worked on. + + + +To reference symbols across your entire project, you can use `#sym` to open a global symbols picker. + + + +#### Folders + +Folders can now be added as context by dragging them from the Explorer, Breadcrumbs, or other views into Copilot Chat. + + + +When a folder is dragged into Copilot Edits, all files within the folder are included in the working set. + + + +### Copilot usage graph + +VS Code extensions can use the VS Code API to [build on the capabilities of Copilot](https://code.visualstudio.com/docs/copilot/copilot-extensibility-overview). You can now see a graph of an extension's Copilot usage in the Runtime Status view. This graph shows the number of chat requests that were made by the extension over the last 30 days. + +![Copilot usage graph in the Runtime Status view](images/1_96/copilot-usage-chart.png) + +### Custom instructions for commit message generation + +Copilot can help you generate commit messages based on the changes you've made. This milestone, we added support for custom instructions when generating a commit message. For example, if your commit messages need to follow a specific format, you can describe this in the custom instructions. + +You can use the `setting(github.copilot.chat.commitMessageGeneration.instructions)` setting to either specify the custom instructions or specify a file from your workspace that contains the custom instructions. These instructions are appended to the prompt that is used to generate the commit message. Get more information on how to [use custom instructions](https://code.visualstudio.com/docs/copilot/copilot-customization). + +### Inline Chat + +This milestone, we have further improved the user experience of Inline Chat: we made the progress reporting more subtle, while streaming in changes squiggles are disabled, and detected commands are rendered more nicely. + +Also, we have continued to improve our pseudo-code detection and now show a hint that you can continue with Inline Chat when a line is mostly natural language. This functionality lets you type pseudo code in the editor, which is then used as a prompt for Inline Chat. You can also trigger this flow by pressing `kb(inlineChat.startWithCurrentLine)`. + +![Inline Chat hint for a line that is dominated by natural language.](images/1_96/inline-chat-nl-hint.png) + +Additionally, there is a new, experimental, setting to make an Inline Chat hint appear on empty lines. This setting can be enabled via `setting(inlineChat.lineEmptyHint)`. By default, this setting is disabled. + +### Terminal Chat + +TODO@Tyriar + +## Accessibility + +### Code Action accessibility signals + +Some code actions can take a long time to complete, for example a quick fix that calls an external service to generate image alt text. It might not be obvious when they were triggered or when they're fully applied. Therefore, we added accessibility signals to indicate that a code action was triggered or applied. + +You can enable these signals with the `setting(accessibility.signals.codeActionTriggered)` and `setting(accessibility.signals.codeActionApplied)` settings. + +### Automatic focus management in the REPL + +We introduced a new setting to improve accessibility when working in the REPL. With `setting(accessibility.replEditor.autoFocusReplExecution)`, you can now specify whether focus remains unchanged (`none`), moves to the input box (`input`), or shifts to the most recently executed cell (`lastExecution`) whenever code is executed. By default, the focus moves to the input box. + +## Workbench + +### Improved extension search results + +When you search for extensions using free-form text in the Extensions view, installed extensions now appear at the top of the search results. This makes it easier to find and manage your installed extensions when searching through the Marketplace. + +![Installed extensions shown at top of search results.](images/1_96/extension-search-order.png) + +### Download extensions from the Extensions view + +You can now download extensions directly from VS Code by using the download action in the context menu of an extension in the Extensions view. This can be useful if you want to download an extension without installing it. + +![Context menu option to download an extension from the Extensions view.](images/1_96/extensions-download.png) + +### Extension disk space + +You can now see the memory usage of an extension on disk in the Extensions editor. This can help you understand how much disk space an extension is using. + +![Extension memory usage on disk shown in the Extensions view.](images/1_96/extension-memory-usage-on-disk.png) + +### Find in Explorer improvements + +In the September release, we introduced the ability to find files in the Explorer across the entire project, a capability that was previously unavailable. However, this update temporarily removed highlight mode and limited certain actions. + +In this release, we’re bringing back highlight mode. This feature allows you to easily locate files and folders across your workspace, with matching results highlighted for better visibility. Additionally, we’ve introduced a new visual indicator on collapsed folders, showing if matches are hidden within them. + + + +The filter toggle remains available, enabling you to focus only on files and folders that match your query by hiding non-matching items. We also reenabled all context menu actions we had to disable in a previous release. + + + +We’ve also improved the user experience when using the find control. When scrolled to the top of the file explorer, additional space is created at the top, ensuring the control doesn’t obstruct your search results. + +![The find control is rendered above the first file or folder in the explorer when scrolled to the top.](images/1_96/explorer_find_empty_space.png) + +### Move views between Primary and Secondary Side Bar + +You could already [move a view container](https://code.visualstudio.com/docs/editor/custom-layout#_drag-and-drop-views-and-panels) to another location by using drag and drop or by using the **Move View** command. You can now directly use the Move To context menu action on a view container to move it between the Primary Side Bar, Secondary Side Bar, or Panel area. + + + +### Hide navigation controls in the title area + +Some people prefer to keep the title area as clean as possible. We added a new setting `setting(workbench.navigationControl.enabled)` that enables you to hide the back/forward buttons in the title area. + +You can also access this setting by right-clicking in the title area, and selecting **Navigation Controls**. + +![Navigation Controls context menu when right-clicking the VS Code title area.](images/1_96/nav-controls.png) + +## Editor + +### Configure paste and drop behavior + +When you drag and drop or copy & paste a file into a text editor, VS Code provides multiple ways to insert it into that file. By default, VS Code tries to insert the file's workspace relative path. Now you can use the drop/paste control to switch how the resource is inserted. Extensions can also provide customized edits, such as in Markdown, which [provides edits that insert Markdown links](https://code.visualstudio.com/updates/v1_67#_markdown-drop-into-editor-to-create-link). + +With the new `setting(editor.pasteAs.preferences)` and `setting(editor.dropIntoEditor.preferences)` settings, you can now specify a preference for which edit type will be used by default. For example, if you'd like copy/paste to always insert the absolute path of pasted files, just set: + +```json +"editor.pasteAs.preferences": [ + "uri.path.absolute" +] +``` + +These settings are ordered lists of edit kinds. The first matching edit of a preferred kind is applied by default. You can still use the drop/paste control to change to a different type of edit after the default edit is applied. + +These new settings play nicely with our [new copy and paste with imports support in JavaScript and TypeScript](#paste-with-imports-for-javascript-and-typescript). This feature automatically adds imports when copy and pasting code across JavaScript or TypeScript files. To avoid disrupting your workflows, by default, we decided that paste just inserts plain text and `paste with imports` is offered as an option in the paste control. However, if you'd like VS Code to always try to paste with imports, just set: + +```json +"editor.pasteAs.preferences": [ + "text.updateImports" +] +``` + +Now, VS Code automatically tries to paste with imports when possible, falling back to pasting plain text if no paste with imports edit is available. Right now, this only works for JavaScript and TypeScript, but we hope additional languages will adopt support over time. + +Finally, you can now also specify a preferred paste style when setting up a `editor.action.pasteAs` keybinding. The keybinding below will always try pasting and updating imports: + +```json +{ + "key": "ctrl+shift+v", + "command": "editor.action.pasteAs", + "args": { + "preferences": [ + "text.updateImports" + ] + } +} +``` + +### Persist editor find history + +The Find control now can persist the search history across sessions and restores it across VS Code restarts. The search history is stored per workspace and can be disabled via the `setting(editor.find.history)` setting. + + + +### Overtype mode + +On popular request, we added overtype mode to overwrite text in the editor instead of inserting it when typing. A useful scenario for this is when editing Markdown tables, where you want to keep the table cell boundaries nicely aligned. + +This mode can be toggled with the command **View: Toggle Overtype/Insert Mode**. When you're in overtype mode, the Status Bar shows an `OVR` indicator. In addition, there is a setting `setting(editor.overtypeOnPaste)`, which determines whether pasting in overtype mode should overwrite or insert. The default behavior is to insert pasted text. + + + +It is possible to change the cursor style while in overtype mode by using the setting `setting(editor.overtypeCursorStyle)`. + +## Source Control + +### Git blame information (Experimental) + +This milestone, we have added experimental support for displaying blame information using editor decorations and a Status Bar item. You can enable this functionality by using the `setting(git.blame.editorDecoration.enabled:true)` and `setting(git.blame.statusBarItem.enabled:true)` settings. You can hover over the blame information to see more commit details. + + + +You can customize the format of the message that is shown in the editor and in the Status Bar with the `setting(git.blame.editorDecoration.template)` and `setting(git.blame.statusBarItem.template)` settings. You can use variables for the most common information. For example, the following template shows the subject of the commit, the author's name, and the author's date relative to now: + +```json +{ + "git.blame.editorDecoration.template": "${subject}, ${authorName} (${authorDateAgo})" +} +``` + +If you would like to adjust the color of the editor decoration, use the `git.blame.editorDecorationForeground` theme color. + +Give this experimental feature a try and let us know what you think. + +### Source Control Graph title actions + +Based on user feedback, we have brought back the Pull, and Push actions to the Source Control Graph view title bar. These actions are enabled if the current history item reference is shown in the Source Control Graph. + +If you do not want to use these actions, or any other actions from the Source Control Graph view title bar, you can right-click on the title bar and hide them. + +![Source Control Graph title actions and context menu to hide specific items.](images/1_96/source-control-graph-title-actions.png) + +## Notebooks + +### Selection highlight across cells + +Selection highlighting is now supported within notebooks, allowing for textual selection based highlights across multiple cells. This is controlled with the preexisting setting `setting(editor.selectionHighlight)`. + + + +### Multi Cursor: Select All Occurrences of Find Match + +Notebooks now support the keyboard shortcut for **Select All Occurrences of Find Match**. This can be found with the command id `notebook.selectAllFindMatches` and can be used by default with the keystroke `kb(notebook.selectAllFindMatches)`. + + + +### Run Cells in Section for Markdown + +Notebooks now have the **Run Cells in Section** action exposed to the cell toolbar of Markdown cells. If the Markdown cell has a header, all cells contained within the section and children sections are executed. If there is no header, this executes all cells in the surrounding section, if possible. + + + +### Cell execution time verbosity + +The execution time information within the cell status bar now has an option for increased verbosity. This can be turned on with the setting `setting(notebook.cellExecutionTimeVerbosity)` and is able to display the execution timestamp in addition to the duration. + +![Verbose cell execution time within cell status bar.](images/1_96/notebook-verbose-execution-time.png) + +## Terminal + +### Ligature support + +Ligatures are now supported in the terminal, regardless of whether [GPU acceleration](https://code.visualstudio.com/docs/terminal/appearance#_gpu-acceleration) is being used. This feature can be turned on with the setting `setting(terminal.integrated.fontLigatures)`: + +![Fonts that support ligatures like ->, ==>, and so on will now visually look like single characters](images/1_96/terminal-ligatures.png) + +In order to use this feature, make sure you also use a font that supports ligatures `setting(terminal.integrated.fontFamily)`. + +### New variables for customizing terminal tabs + +What text appears in terminal tabs is determines by the `terminal.integrated.tabs.title` and `terminal.integrated.tabs.description` settings which allow the use of a collection of variables. We now support the following new variables: + +- `${shellType}` - The detected type of shell that is being used in the terminal. This is similar the default value, but it will not change to `git` for example when running a git command. +- `${shellCommand}` - The command that is being run in the terminal. This requires [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration). + + ![alt text](images/1_96/terminal_shellCommand.png) +- `${shellPromptInput}` - The command that is being run in the terminal or the current detected prompt input. This requires [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration). + + ![Typing "echo hello" in the terminal will show "echo hello|" in the tab when configured](images/1_96/terminal_shellPromptInput.png) + +### Run recent command now shows the history source file + +The [run recent command](https://code.visualstudio.com/docs/terminal/shell-integration#_run-recent-command) shell integration feature now includes full size headers for the source of the command, including the history file where relevant and a convenient button to open it. + +![alt text](images/1_96/terminal-run-recent-command.png) + +The default keybinding for this command is `Ctrl+Alt+R`. + +### New supported link format + +Links with the format `/path/to/file.ext, ` should now be detected as links in the terminal. + +## Testing + +### Attributable coverage + +This milestone, we finalized an API that enables extensions to provide coverage on a per-test basis, so you can see exactly what code any given test executed. When attributable coverage is available, a filter button is available in the Test Coverage view, in editor actions, in the Test Coverage toolbar when toggled on (via the **Test: Test Coverage Toolbar** command), or simply by using the **Test: Filter Coverage by Test** command. + + + +_Theme: [Codesong](https://marketplace.visualstudio.com/items?itemName=connor4312.codesong) (preview on [vscode.dev](https://vscode.dev/editor/theme/connor4312.codesong))_ + +### Reworked inline failure messages + +We reworked test failure messages to be both more eye-catching and less obtrusive. This is particularly useful for busy scenarios, such as in diffs from SCM or Copilot Edits. Selecting the failure message still opens a peek control to show the complete details of the failure. + +![Image of new test error messages in the editor.](./images/1_96/test-errors.png) + +### Improvements to the continuous run UI + +Previously, the global state of continuous test runs, togglable via the "eye" icon in the Test Explorer view, would toggle on or off continuous running with the default set of run profiles. + +We reworked the continuous run UI to include a drop-down menu to turn continuous run on or off individually per-profile. Selecting the indicator toggles the last used set of run profiles on or off. + +## Languages + +### TypeScript 5.7 + +Our JavaScript and TypeScript support now uses TypeScript 5.7. This major update includes a number of language and tooling improvements, along with important bug fixes and performance optimizations. + +You can read all about the TypeScript 5.7 release on the [TypeScript blog](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/). We've also included a few tooling highlights in the following sections. + +### Paste with imports for JavaScript and TypeScript +Tired of having to add imports after moving code between files? Try the 'paste with imports' feature for TypeScript 5.7+. Now whenever you copy and paste code between JavaScript or TypeScript, VS Code can add imports for the pasted code: + + + +Notice how it not only added imports, it even added a new export for a local variable that was used in the pasted code! + +While we think this feature will be a huge time saver, we also are sensitive to disrupting your existing workflow. That's why by default we've kept it so copy and paste will always insert just the pasted text. If a `paste with imports` edit is available, you'll then see the paste widget which lets you select the `paste with imports` edit: + +![alt text](images/1_96/jsts-paste-widget.png) + +If you prefer always pasting with imports, you can [use the new `editor.pasteAs.preferences` setting](#configure-paste-and-drop-behavior): + +```json +"editor.pasteAs.preferences": [ + "text.updateImports" +] +``` + +This will always try pasting with imports if an edit is available. + +You can also setup a keybinding to paste with imports if available: + +```json +{ + "key": "ctrl+shift+v", + "command": "editor.action.pasteAs", + "args": { + "preferences": [ + "text.updateImports" + ] + } +} +``` + +If you prefer, you can even do the reverse and make paste with imports the default and add a keybinding to paste as plain text: + +```json +"editor.pasteAs.preferences": [ + "text.updateImports" +] +``` + +```json +{ + "key": "ctrl+shift+v", + "command": "editor.action.pasteAs", + "args": { + "preferences": [ + "text.plain" + ] + } +} +``` + +Finally if you want to fully disable `paste with imports`, you can use `setting(typescript.updateImportsOnPaste.enabled)` and `setting(javascript.updateImportsOnPaste.enabled)`. + +## Remote Development + +The [Remote Development extensions](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack), allow you to use a [Dev Container](https://code.visualstudio.com/docs/devcontainers/containers), remote machine via SSH or [Remote Tunnels](https://code.visualstudio.com/docs/remote/tunnels), or the [Windows Subsystem for Linux](https://learn.microsoft.com/windows/wsl) (WSL) as a full-featured development environment. + +Highlights include: + +* `remote-ssh` Copilot chat participant +* Enhanced session logging + +You can learn more about these features in the [Remote Development release notes](https://github.com/microsoft/vscode-docs/blob/main/remote-release-notes/v1_96.md). + +## Enterprise support + +### Configure allowed extensions + +You can now control which extensions can be installed in VS Code using the `setting(extensions.allowed)` setting. This setting allows you to specify allowed or blocked extensions by publisher, specific extensions and versions. If an extension or version is blocked, it will be disabled if already installed. You can specify the following types of extension selectors: + +* Allow or block all extensions from a publisher +* Allow or block specific extensions +* Allow specific extension versions +* Allow specific extension versions and platforms +* Allow only stable versions of an extension +* Allow only stable extension versions from a publisher + +The following JSON snippet shows examples of the different setting values: + +```json +"extensions.allowed": { + // Allow all extensions from the 'microsoft' publisher. If the key does not have a '.', it means it is a publisher ID. + "microsoft": true, + + // Allow all extensions from the 'github' publisher + "github": true, + + // Allow prettier extension + "esbenp.prettier-vscode": true, + + // Do not allow docker extension + "ms-azuretools.vscode-docker": false, + + // Allow only version 3.0.0 of the eslint extension + "dbaeumer.vscode-eslint": ["3.0.0"], + + // Allow multiple versions of the figma extension + "figma.figma-vscode-extension": ["3.0.0", "4.2.3", "4.1.2"] + + // Allow version 5.0.0 of the rust extension on Windows and macOS + "rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"] + + // Allow only stable versions of the GitHub Pull Requests extension + "github.vscode-pull-request-github": "stable", + + // Allow only stable versions from redhat publisher + "redhat": "stable", +} +``` + +Specify publishers by their publisher ID. If a key does not have a period (`.`), it is considered a publisher ID. If a key has a period, it is considered an extension ID. The use of wildcards is currently not supported. + +You can use `microsoft` as the publisher ID to refer to all extensions published by Microsoft, even though they might have different publisher IDs. + +Version ranges are not supported. If you want to allow multiple versions of an extension, you must specify each version individually. To further restrict versions by platform, use the `@` symbol to specify the platform. For example, `"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]`. For more details, refer to the [enterprise documentation](https://code.visualstudio.com/docs/setup/enterprise#configure-allowed-extensions). + +Administrators can also configure this setting via group policy on Windows. For more information, see the [Group Policy on Windows](https://code.visualstudio.com/docs/setup/enterprise#group-policy-on-windows) section in the enterprise documentation. + +## Set up VS Code with preinstalled extensions + +You can set up VS Code with a set of preinstalled extensions (*bootstrap*). This functionality is useful in cases where you prepare a machine image, virtual machine, or cloud workstation where VS Code is preinstalled and specific extensions are immediately available for users. + +> **Note**: Support for preinstalling extensions is currently only available on Windows. + +Follow these steps to bootstrap extensions: + +1. Create a folder `bootstrap\extensions` in the VS Code installation directory. + +1. Download the [VSIX files](https://code.visualstudio.com/docs/editor/extension-marketplace#_can-i-download-an-extension-directly-from-the-marketplace) for the extensions that you want to preinstall and place them in the `bootstrap\extensions` folder. + +1. When a user launches VS Code for the first time, all extensions in the `bootstrap\extensions` folder are installed silently in the background. + +Users can still uninstall extensions that were preinstalled. Restarting VS Code after uninstalling an extension will not reinstall the extension. + +## Contributions to extensions + +### Python + +#### Python Environments extension + +In this release we are introducing the Python Environments extension, now available in preview on the Marketplace. + +This extension simplifies Python environment management, offering a UI to create, delete, and manage environments, along with package management for installing and uninstalling packages. + +Designed to integrate seamlessly with your preferred environment managers via various APIs, it supports Global Python interpreters, venv, and Conda by default. Developers can build extensions to add support for their favorite Python environment managers and integrate with our extension UI, enhancing functionality and user experience. + +#### Python testing enhancements + +* The `--rootdir` argument for pytest is now dynamically adjusted based on the presence of a `python.testing.cwd` setting in your workspace. +* Restarting a test debugging session now reruns only the specified tests. +* Coverage support updated to handle `NoSource` exceptions. +* `pytest-describe` plugin is supported with test detection and execution in the UI. +* Testing Rewrite now leverages FIFO instead of UDS for interprocess communication allowing users to harness pytest plugins like `pytest_socket` in their own testing design. +* **Rewrite Nearing Default Status:** This release addresses [the final known issue](https://github.com/microsoft/vscode-python/issues/23279) in the testing rewrite, and unless further issues arrive, the rewrite experiment will be turned off and the rewrite set to default in early 2025. + +#### Python REPL enhancements + +* Leave focus on editor after smart-send to Native REPL +* Improved handling after reload for Native REPL +* Fix indentation error issues with Python 3.13 in VS Code terminal + +#### Pylance "full" language server mode + +The `python.analysis.languageServerMode` setting now also supports `full` mode, enabling you to take advantage of the complete range of Pylance's functionality and the most comprehensive IntelliSense experience. It's worth noting that this comes at the cost of lower performance, as it can cause Pylance to be resource-intensive, particularly in large codebases. + +The `python.analysis.languageServerMode` setting now changes the default values of the following settings, depending on whether it's set to `light`, `default` or `full`: + +| Setting | light | default | full | +|--------------------------------------------------------|----------|---------|------| +| python.analysis.exclude | \["**"\] | [] | [] | +| python.analysis.useLibraryCodeForTypes | false | true | true | +| python.analysis.enablePytestSupport | false | true | true | +| python.analysis.indexing | false | true | true | +| python.analysis.autoImportCompletions | false | false | true | +| python.analysis.showOnlyDirectDependenciesInAutoImport | false | false | true | +| python.analysis.packageIndexDepths | ```[ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ]``` | ```[ { "name": "sklearn", "depth": 2 }, { "name": "matplotlib", "depth": 2 }, { "name": "scipy", "depth": 2 }, { "name": "django", "depth": 2 }, { "name": "flask", "depth": 2 }, { "name": "fastapi", "depth": 2 } ]``` | ```{ "name": "", "depth": 4, "includeAllSymbols": true }``` | +| python.analysis.regenerateStdLibIndices | false | false | true | +| python.analysis.userFileIndexingLimit | 2000 | 2000 | -1 | +| python.analysis.includeAliasesFromUserFiles | false | false | true | +| python.analysis.functionReturnTypes | false | false | true | +| python.analysis.pytestParameters | false | false | true | +| python.analysis.supportRestructuredText | false | false | true | +| python.analysis.supportDocstringTemplate | false | false | true | + +### TypeScript + +#### TypeScript expandable hover (Experimental) + +This milestone, we made it possible to view expanded/contracted information from the TS server. The extension uses the Expandable Hover API to show `+` and `-` markers in the editor hover to display more or less information. + + + +The experimental setting can be enabled using `setting(typescript.experimental.expandableHover)`. For this setting to work, you must be on TypeScript version 5.8 or above. You can change the TypeScript version by using the `TypeScript: Select TypeScript Version...` command. + +### Microsoft Account now uses MSAL (with WAM support on Windows) + +In order to ensure a strong security baseline for Microsoft authentication, we've adopted the [Microsoft Authentication Library](https://github.com/AzureAD/microsoft-authentication-library-for-js) in the Microsoft Account extension. + +One of the stand out features of this work is WAM (Web Account Manager... also known as [Broker](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-node/docs/brokering.md)) integration. Put simply, rather than going to the browser for Microsoft authentication flows, we now talk to the OS directly, which is the recommended way of acquiring a Microsoft authentication session. Additionally, it's faster since we're able to leverage the accounts that you're already logged into on the OS. + +![An authentication popup that the OS shows over VS Code.](images/1_96/showingBrokerOSDialog.png) + +Let us know if you see any issues with this new flow. If you do see a major issue and need to revert back to the old Microsoft authentication behavior, you can do so with `setting(microsoft-authentication.implementation)` (setting it to `classic`, and restarting VS Code) but do keep in mind that this setting won't be around for much longer. So, open an issue if you are having trouble with the MSAL flow. + +## Extension Authoring + +### @vscode/chat-extension-utils + +We've had our [chat](https://code.visualstudio.com/api/references/vscode-api#chat) and [language model](https://code.visualstudio.com/api/references/vscode-api#lm) extension APIs available for several months to let extension authors integrate with GitHub Copilot. But we've found that working with LLMs and building high-quality chat extensions is inherently complex, especially if you want to make use of tool calling. + +We've published an npm package, `@vscode/chat-extension-utils`, that aims to make it as easy as possible to get a chat participant up and running. It takes over several things that you would otherwise have to do yourself, so that your chat participant can be implemented in a just a few lines of code. The package also contains a collection of useful, high-quality elements to use with [@vscode/prompt-tsx](https://github.com/microsoft/vscode-prompt-tsx). + +You can view the full documentation in the [`chat-extension-utils` repository](https://github.com/microsoft/vscode-chat-extension-utils/blob/main/README.md) and see it in action in the [sample chat extension](https://github.com/microsoft/vscode-extension-samples/tree/main/chat-sample). Our new [LanguageModelTool API docs](https://code.visualstudio.com/api/extension-guides/tools) also describe how to use it. + +### Attributable Coverage API + +The test coverage APIs now enable extensions to provide coverage information on a per-test basis. To implement this API, populate the the `includesTests?: TestItem[]` property on the `FileCoverage` to indicate which tests executed code in that file, and implement `TestRunProfile.loadDetailedCoverageForTest` to provide statement and declaration coverage. + +See the [Attributable Coverage section above](#attributable-coverage) for an example of what this looks like for users. + +### Contributing to a JavaScript Debug Terminal + +The JavaScript debugger now has a mechanism for other extensions to participate in the creation of JavaScript Debug Terminals. This enables frameworks, or runtimes aside from Node.js, to enable debugging in the same familiar place. Refer to the [JavaScript Debugger documentation](https://github.com/microsoft/vscode-js-debug/blob/main/EXTENSION_AUTHORS.md#extension-api) for more information. + +### Proxy support for Node.js `fetch` API + +The global `fetch` function now comes with proxy support enabled (`setting(http.fetchAdditionalSupport)`). This is similar to the `https` module, which already had proxy support. + +## Preview Features + +### Paste code to attach chat context + +Previously, you could already attach files as context to Copilot Chat. For more fine-grained control over the context, you can now paste a code fragment to attach it as context for chat. This adds the necessary file information and corresponding line numbers. You can only paste code coming from files in the current workspace. + +To try this out, copy some code and paste it in Inline Chat, Quick Chat, or the Chat view. Select the paste control that shows up and select `Pasted Code Attachment.` Alternatively, you can set the `setting(editor.pasteAs.preferences)` setting: + +```json +"editor.pasteAs.preferences": [ + "chat.attach.text" +] +``` + +### Terminal completions for more shells + +We added experimental support for terminal completions in `pwsh` in prior iterations. This release, we have started working on expanding this to other shells. Specifically targeting `bash` and `zsh` for now, but since this new approach is powered by an extension host API, we plan on having general support for most shells. + +You can try out the current work in progress by setting `setting(terminal.integrated.suggest.enabled)` and +`setting(terminal.integrated.suggest.enableExtensionCompletions)`. Currently only `cd`, `code`, and `code-insiders` arguments are supported. + +![The command `code` is typed on the terminal, which shows suggestions. Then `--` is typed and options are provided, `--locale` is selected. Completions are requested with ctrl+space and all locales are shown. `e` is typed and the list is filtered to `en` and `es`.](images/1_96/terminal-completions.gif) + +## Proposed APIs + +### Proposed Value Selection API on Quick Pick + +For `InputBox` you have been able to set the "value selection", which enables you to programmatically select part or all of the input. This milestone, we added a proposed API for value selection in a QuickPick. + +Here's an example of what that might look like: + +```ts +const qp = vscode.window.createQuickPick(); +qp.value = '12345678'; +qp.valueSelection = [4, 6]; +qp.items = [ + { label: '12345678', description: 'desc 1' }, + { label: '12345678', description: 'desc 2' }, + { label: '12345678', description: 'desc 3' }, +]; +qp.show(); +``` + +![A couple of characters are selected in the quick pick's input box.](images/1_96/valueSelectionQuickPick.png) + +Try out the [valueSelectionInQuickPick proposal](https://github.com/microsoft/vscode/blob/008340a55c6391f9b333010951455ee71b338787/src/vscode-dts/vscode.proposed.valueSelectionInQuickPick.d.ts) and let us know what you think [in this GitHub issue](https://github.com/microsoft/vscode/issues/233274)! + +### Proposed Native Window Handle API + +This milestone, we added a new proposed API to retrieve the native window handle of the focused window. The native window handle is an OS concept that essentially provides a pointer to a particular window. This is useful if you are interacting with native code and need to, for example, render a native dialog on top of a window. + +```ts +declare module 'vscode' { + + export namespace window { + /** + * Retrieves the native window handle of the current active window. + * This will be updated when the active window changes. + */ + export const nativeHandle: Uint8Array | undefined; + } +} +``` + +This was added specifically for Microsoft Authentication's [adoption of MSAL](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-node/docs/brokering.md#window-parenting), so that we could pass the native handle down to the OS so it could render an auth dialog overtop VS Code. + +If you have a use case or feedback for the [nativeWindowHandle proposal](https://github.com/microsoft/vscode/blob/008340a55c6391f9b333010951455ee71b338787/src/vscode-dts/vscode.proposed.nativeWindowHandle.d.ts), let us know what you think [in this GitHub issue](https://github.com/microsoft/vscode/issues/233106)! + +## Engineering + +### Optimized extension updates with vscode-unpkg service + +To reduce the load on the Marketplace infrastructure, VS Code now uses the newly added endpoint from the `vscode-unpkg` service to check for extension updates. The service implements server-side caching with a 10-minute TTL, which significantly reduces the number direct requests to the Marketplace. The optimization is controlled via the `setting(extensions.gallery.useUnpkgResourceApi)` setting (enabled by default). + +If you notice issues with extension updates, you can disable this functionality with `setting(extensions.gallery.useUnpkgResourceApi:false)`, and revert back to direct Marketplace version checks. + +### Ground work for GPU acceleration in the editor + +We are excited to announce that we have started work on enabling GPU acceleration in the editor, [similar to the terminal](https://code.visualstudio.com/docs/terminal/appearance#_gpu-acceleration). The goals of this effort are to reduce input latency and improve scrolling performance. + +TODO@Tyriar + +## Notable fixes + +* [233915](https://github.com/microsoft/vscode/issues/233915) Share an extension with others by using the **Copy Link** action in the context menu of an extension in the Extensions view. +* [231542](https://github.com/microsoft/vscode/issues/231542) Frequently unable to save file or file data gets erased with error EBUSY +* [233304](https://github.com/microsoft/vscode/issues/233304) `onDidChangeCheckboxState` broken in 1.95 +* [232263](https://github.com/microsoft/vscode/issues/232263) Optimize tree view such that cross process calls are batched + +## Thank you + +Last but certainly not least, a big _**Thank You**_ to the contributors of VS Code. + +### Issue tracking + +Contributions to our issue tracking: + +* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray) +* [@RedCMD (RedCMD)](https://github.com/RedCMD) +* [@IllusionMH (Andrii Dieiev)](https://github.com/IllusionMH) +* [@sahin52 (Sahin Kasap)](https://github.com/sahin52) + +### Pull requests + +Contributions to `vscode`: + +* [@a-stewart (Anthony Stewart)](https://github.com/a-stewart): Add support for a border between sidebar and panel titles and views [PR #157318](https://github.com/microsoft/vscode/pull/157318) +* [@aravind-n (Aravind Nidadavolu)](https://github.com/aravind-n): Fix fish shell integration execution order [PR #226589](https://github.com/microsoft/vscode/pull/226589) +* [@BABA983 (BABA)](https://github.com/BABA983): Correct ShellIntegrationDecorationsEnabled in markdownDescription [PR #233387](https://github.com/microsoft/vscode/pull/233387) +* [@BenLocal (benshi)](https://github.com/BenLocal): Cli serve_web sets the path prefix to /-/, commit value parsing error [PR #233986](https://github.com/microsoft/vscode/pull/233986) +* [@BlackHole1 (Kevin Cui)](https://github.com/BlackHole1): fix: cannot open vscode when use vscode-win32-x64 in Windows [PR #233285](https://github.com/microsoft/vscode/pull/233285) +* [@BugGambit (Fredrik Anfinsen)](https://github.com/BugGambit): Add support for links 'foo, ' [PR #231775](https://github.com/microsoft/vscode/pull/231775) +* [@cachandlerdev](https://github.com/cachandlerdev): Copy extension link [PR #234210](https://github.com/microsoft/vscode/pull/234210) +* [@CrafterKolyan (Nikolai Korolev)](https://github.com/CrafterKolyan): Add interface for adding value selection in QuickPick for extension API [PR #233275](https://github.com/microsoft/vscode/pull/233275) +* [@davidmartos96 (David Martos)](https://github.com/davidmartos96): Fix PATH prepending when using Fish [PR #232291](https://github.com/microsoft/vscode/pull/232291) +* [@dibarbet (David Barbet)](https://github.com/dibarbet): Do not mark interpolation tokens as strings in C# [PR #232772](https://github.com/microsoft/vscode/pull/232772) +* [@duncpro (Duncan)](https://github.com/duncpro): fix: clickability of create new file/folder button [PR #232130](https://github.com/microsoft/vscode/pull/232130) +* [@elias-pap (Elias Papavasileiou)](https://github.com/elias-pap): feat: add icon for Vite [PR #234620](https://github.com/microsoft/vscode/pull/234620) +* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray) + * Add `workbench.view.showQuietly` settings object to stop extensions revealing hidden Output view (fix #105270) [PR #205225](https://github.com/microsoft/vscode/pull/205225) + * Fix `Go to Current History Item` breakage (fix #235063) [PR #235067](https://github.com/microsoft/vscode/pull/235067) + * Enable `Go to Current History Item` correctly after reference picker change (fix #235132) [PR #235134](https://github.com/microsoft/vscode/pull/235134) +* [@iisaduan (Isabel Duan)](https://github.com/iisaduan): fix typescript organizeImports settings [PR #232676](https://github.com/microsoft/vscode/pull/232676) +* [@jeanp413 (Jean Pierre)](https://github.com/jeanp413): Fixes old extensionHost process is not killed immediately after reloading vscode web tab in the browser [PR #234944](https://github.com/microsoft/vscode/pull/234944) +* [@Kannav02 (Kannav Sethi)](https://github.com/Kannav02): Change "Organize Imports" command label to "Optimize Imports" [PR #232869](https://github.com/microsoft/vscode/pull/232869) +* [@LionelJouin (Lionel Jouin)](https://github.com/LionelJouin): Fix: go grammar update (#232142) [PR #232335](https://github.com/microsoft/vscode/pull/232335) +* [@LitoMore (LitoMore)](https://github.com/LitoMore): Remove Microsoft-related logos [PR #215758](https://github.com/microsoft/vscode/pull/215758) +* [@Logicer16 (Logicer)](https://github.com/Logicer16): Fix grammar in activeOnStart description [PR #197536](https://github.com/microsoft/vscode/pull/197536) +* [@RedCMD (RedCMD)](https://github.com/RedCMD): Add `.winget` file extension to YAML [PR #232218](https://github.com/microsoft/vscode/pull/232218) +* [@ribru17 (Riley Bruins)](https://github.com/ribru17): Render JSDoc examples as typescript code [PR #234143](https://github.com/microsoft/vscode/pull/234143) +* [@sandersn (Nathan Shively-Sanders)](https://github.com/sandersn): Revert register copilotRelated with copilot [PR #233729](https://github.com/microsoft/vscode/pull/233729) + +Contributions to `vscode-emmet-helper`: + +* [@onlurking (Diogo Felix)](https://github.com/onlurking): Add missing HTML tags to emmet [PR #90](https://github.com/microsoft/vscode-emmet-helper/pull/90) + +Contributions to `vscode-eslint`: + +* [@MariaSolOs (Maria José Solano)](https://github.com/MariaSolOs): Update contributing instructions [PR #1947](https://github.com/microsoft/vscode-eslint/pull/1947) + +Contributions to `vscode-extension-samples`: + +* [@olguzzar (Olivia Guzzardo)](https://github.com/olguzzar): Update Chat tutorial to use request.model [PR #1125](https://github.com/microsoft/vscode-extension-samples/pull/1125) +* [@phil294 (Philip Waritschlager)](https://github.com/phil294): webview-codicons: Move codicons dependency from devDependencies into dependencies [PR #1005](https://github.com/microsoft/vscode-extension-samples/pull/1005) +* [@witsaint (gaodingqiang)](https://github.com/witsaint): fix: `lsp-embedded-language-service` cleaninterval args type [PR #1126](https://github.com/microsoft/vscode-extension-samples/pull/1126) + +Contributions to `vscode-extension-telemetry`: + +* [@kmagiera (Krzysztof Magiera)](https://github.com/kmagiera): Propagate session ID metadata [PR #215](https://github.com/microsoft/vscode-extension-telemetry/pull/215) + +Contributions to `vscode-hexeditor`: + +* [@Antecer (Antecer)](https://github.com/Antecer): We need a WYSIWYG copy method [PR #540](https://github.com/microsoft/vscode-hexeditor/pull/540) +* [@Hexa3333 (Alp Yılmaz)](https://github.com/Hexa3333): Fix: DisplayContextSelection read violation (#547) [PR #548](https://github.com/microsoft/vscode-hexeditor/pull/548) +* [@jogo-](https://github.com/jogo-): Update CHANGELOG.md [PR #549](https://github.com/microsoft/vscode-hexeditor/pull/549) +* [@tomilho (Tomás Silva)](https://github.com/tomilho): fix: ctrl+f not working with caps lock active [PR #555](https://github.com/microsoft/vscode-hexeditor/pull/555) + +Contributions to `vscode-json-languageservice`: + +* [@jeremyfiel (Jeremy Fiel)](https://github.com/jeremyfiel): fix: typo in `then` description [PR #251](https://github.com/microsoft/vscode-json-languageservice/pull/251) +* [@Legend-Master (Tony)](https://github.com/Legend-Master): Fix slow large oneof validation [PR #247](https://github.com/microsoft/vscode-json-languageservice/pull/247) +* [@sumimakito (Makito)](https://github.com/sumimakito): feat(completion): support detail from schema [PR #243](https://github.com/microsoft/vscode-json-languageservice/pull/243) + +Contributions to `vscode-jupyter`: + +* [@gjsjohnmurray (John Murray)](https://github.com/gjsjohnmurray): Add `connor4312.esbuild-problem-matchers` recommendation [PR #16195](https://github.com/microsoft/vscode-jupyter/pull/16195) +* [@pwang347 (Paul)](https://github.com/pwang347): Add public API event for kernel post-initialization [PR #16214](https://github.com/microsoft/vscode-jupyter/pull/16214) + +Contributions to `vscode-mypy`: + +* [@hamirmahal (Hamir Mahal)](https://github.com/hamirmahal): fix: address dev-dependency issues reported by `npm audit` [PR #327](https://github.com/microsoft/vscode-mypy/pull/327) +* [@taesungh (Taesung Hwang)](https://github.com/taesungh): Use global settings for `ignorePatterns` default [PR #325](https://github.com/microsoft/vscode-mypy/pull/325) + +Contributions to `vscode-python-debugger`: + +* [@rchiodo (Rich Chiodo)](https://github.com/rchiodo) + * Update debugpy_info for v1.8.8 [PR #500](https://github.com/microsoft/vscode-python-debugger/pull/500) + * Update debugpy version to 1.8.9 [PR #505](https://github.com/microsoft/vscode-python-debugger/pull/505) + +Contributions to `vscode-python-tools-extension-template`: + +* [@oliversen (Oliver Olsen)](https://github.com/oliversen) + * Exclude `.dist-info` directories from extension package [PR #215](https://github.com/microsoft/vscode-python-tools-extension-template/pull/215) + * Fix glob pattern for `.pyc` files in `.vscodeignore` [PR #216](https://github.com/microsoft/vscode-python-tools-extension-template/pull/216) + * Remove duplicate code from `noxfile.py` [PR #217](https://github.com/microsoft/vscode-python-tools-extension-template/pull/217) + +Contributions to `vscode-test-web`: + +* [@Cecil0o0 (hj)](https://github.com/Cecil0o0): VS Code main has moved back to npm, we could catch it [PR #148](https://github.com/microsoft/vscode-test-web/pull/148) + +Contributions to `inno-updater`: + +* [@BlackHole1 (Kevin Cui)](https://github.com/BlackHole1): fix: dialog is show when silent is true [PR #29](https://github.com/microsoft/inno-updater/pull/29) + +Contributions to `language-server-protocol`: + +* [@EwanDubashinski (Ivan Dubashinskii)](https://github.com/EwanDubashinski): Added link to the PL/SQL language server [PR #2057](https://github.com/microsoft/language-server-protocol/pull/2057) +* [@gquerret (Gilles Querret)](https://github.com/gquerret): Add OpenEdge ABL in language servers list [PR #2056](https://github.com/microsoft/language-server-protocol/pull/2056) +* [@orbitalquark](https://github.com/orbitalquark): Added link to client implementation for Textadept. [PR #2058](https://github.com/microsoft/language-server-protocol/pull/2058) ->If you'd like to read release notes for previous VS Code versions, go to [Updates](https://code.visualstudio.com/updates) on [code.visualstudio.com](https://code.visualstudio.com). - \ No newline at end of file +