rogerxu / rogerxu.github.io

Roger Xu's Blog
2 stars 2 forks source link

Visual Studio Code - 70+ #270

Open rogerxu opened 1 year ago

rogerxu commented 1 year ago

Release version 1.70

Visual Studio Code July 2022

Title bar customization

Hide/show menu bar, Command Center, or layout control.

You can now right-click the title bar to access a context menu that toggles the menu bar (not shown on macOS desktop), Command Center, and layout controls.

title bar context menu

Fold selection

Create your own folded regions in the editor.

The command Create Manual Folding Ranges from Selection (K+,) creates a folding range from the currently selected lines and collapses it. The range is called a manual folding range and goes on top of the ranges computed by folding providers.

Manual folding ranges can be removed again with the command Remove Manual Folding Ranges (K+.).

Search multi-select

Select and then act on multiple search results.

Tree view search and filtering

Find and filter in tree views such as the Find Explorer.

Terminal improvements

Shell integration on by default, extended PowerShell keybindings.

Terminal Shell Integration in Visual Studio Code

Command line option --merge

Use the 3-way merge editor as your default merge tool.

.gitconfig

[merge]
    tool = code
[mergetool "code"]
    cmd = code --wait --merge $REMOTE $LOCAL $BASE $MERGED

Notebooks: Go to Most Recently Failed Cell

Jump directly to notebook errors.

Python Get started experience

Quickly install and configure Python within VS Code.

Sticky scroll preview

New scrolling UI shows current source code scope.

Enable sticky scroll with the editor.experimental.stickyScroll.enabled setting.

Dev container CLI topic

Learn about the updated development container CLI.

The dev container CLI lets you build and run dev containers and is an open-source reference implementation of the Development Containers Specification

rogerxu commented 1 year ago

Release version 1.71

Visual Studio Code August 2022

Merge editor improvements

Easier transition between text and merge editors.

A file that has a conflict will now automatically show an Open in Merge Editor button to transition between the text and merge editors.

Expanded codecs support

To help display embedded audio and video in notebooks and webviews.

File rename selection

Pressing F2 selects filename, whole name, or file extension.

Sticky Scroll

Sticky scroll shows the current scope at the top of the view port. The feature can be enabled through the settings with editor.stickyScroll.enabled.

New Code Action UI

Quickly find the Code Action you're looking for.

The new Code Action control showing Quick Fixes and refactorings

Configure suggest matching

When the editor.suggest.matchOnWordStartOnly setting is disabled, filtering takes any match into account.

Terminal smooth scrolling

Shell integration for Fish and Git Bash, new smooth scrolling.

"terminal.integrated.smoothScrolling": true

Live Preview extension

Live Preview now supports multi-root web projects.

rogerxu commented 1 year ago

Release version 1.72

Visual Studio Code September 2022

Tool bar customization

Hide/show tool bar actions.

Merge editor

For files with conflicts, users can now select Resolve in Merge Editor to open the 3-way merge editor:

A screenshot of a file with conflicts, showing the "Resolve in Merge Editor" button

Built-in preview for some audio and video files

VS Code now supports previewing some audio and video file formats:

Previewing an MP4 video in VS Code

The following audio formats are currently supported:

And the following video formats can be previewed:

Better editor autoscrolling

Scrolling speed tuned to cursor location.

The editor autoscrolls at a more manageable speed of about one viewport per second when the mouse is close to the edges, and faster when the mouse is further from the editor, independent of the FPS.

Extensions view updates

Highlights extensions with updates or needing attention.

Recently updated extensions

VS Code now shows extensions updated during the last 7 days in a Recently Updated section of Updates in the Extensions view.

Recently Updated section in the Extensions view

Extensions requiring attention

VS Code now shows extensions requiring attention sorted to the top of the default Installed section of the Extensions view. This includes extensions that have a pending update or have been updated or disabled and require VS Code to reload.

Extensions requiring attention are displayed at the top of the Extensions view

The badge on the Extensions icon in the Activity Bar now shows the number of extensions requiring attention.

Search results in a tree view

Review search results in either list or tree view.

Nested Git repo support

Detects and displays nested Git submodules.

Terminal Quick Fixes

Suggestions to correct command typos and set an upstream remote.

Pin frequently used tasks

Pin tasks to the top of the Run Task dropdown for quick access.

Pinned items are the top category in the Run Task list

Markdown link validation

Automatically check header, file, and image links.

Set "markdown.validate.enabled": true. VS Code will now analyze Markdown links to headers, images, and other local files. Invalid links will be reported as either warnings or errors.

A warning shown in the editor when linking to a file that does not exist

GitHub Enterprise Server authentication

Improved login workflow no longer requires PAT.

Dev Containers Features

Easily add and share functionality for development containers.

Features (containers.dev)

VS Code Community Discussions

Connect with other VS Code extension authors.

Discussions · microsoft/vscode-discussions (github.com)

rogerxu commented 1 year ago

Release version 1.73

Visual Studio Code October 2022

Include and exclude folders from Search

Quickly set folders to include/exclude in the tree view.

Command Center mode shortcuts

Displays commonly used modes before recent files list.

Merge editor improvements

Access Combination option to auto merge conflicts.

Markdown automatic link updates

File and image links updated on rename/move.

More audio cues

Task completed or failed, Terminal Quick Fix available.

vscode.dev protected branch workflow

Create new branch when committing to protected branch.

Dev Container Templates

Create new Dev Containers based on existing templates.

rogerxu commented 1 year ago

Release version 1.74

Visual Studio Code November 2022

Customize Explorer auto reveal

Decide which files scroll into view in the Explorer.

Hide Activity bar and Panel badges

Simplify the editor UI by toggling state badges.

Audio cues for notebooks and diff view

Sounds for cell run results, added or removed lines.

Merge editor Undo/Redo

Quickly revert or reapply merge conflict actions.

Manage unsafe repositories

Prevent Git operations on folders not owned by you.

JavaScript console.profile collection

Easily create CPU profiles for viewing in VS Code.

The resulting .cpuprofile file will be saved in your workspace folder, and can be opened and viewed using VS Code's built-in profile viewer.

Go to Definition from return

JavaScript and TypeScript now support running Go to Definition on the return keyword to quickly jump to the top of the function being returned from.

Remote Tunnels

Create a connection to any machine, without needing SSH.

To enable remote tunnel access, you can either:

Jupyter notebook "Just My Code" debugging

Avoid stepping into Python library code.

Dev Container GPU support

Request a GPU when creating a Dev Container.

rogerxu commented 1 year ago

Release version 1.75

Visual Studio Code January 2023

Accessibility improvements

Terminal screen reader mode, new keyboard shortcuts.

Profiles

Create and share profiles to configure extensions, settings, keyboard shortcuts, UI state, tasks, and user snippets.

The following image demonstrates a folder opened with a Work profile that is customized for a work setup.

Folder opened in Work profile

You can also export and import profiles to share them with your colleagues, friends, or students to help them get started with VS Code.

Easier multi-view resizing

Drag layout corners to resize multiple views at once.

Restore defaults from the Customize Layout command

When working the custom Customize Layout command either via triggering the command or using the layout controls in the custom title bar, you can Restore Defaults using the revert arrow button in the top right of the layout control.

Customize layout control showing the new Restore Defaults button

Tree view search history

The Find control inside tree views now supports history navigation. You can use the Up/Down arrow keys to navigate through the history of your previous searches.

File watcher supports files.watcherExclude glob patterns

The files.watcherExclude setting supports glob patterns for powerful exclusion rules of the file watcher. However, glob patterns had not been supported natively by the library used for file watching. In this milestone, we contributed support for glob patterns for exclusions for more efficient resource usage, especially on Linux.

Show extensions contributing keybindings

The Keyboard Shortcuts editor now shows the extension that contributes a keybinding in the Source column. You can select the extension name to open the extension's details page.

Source column shows extensions contributing keybindings

Search for keybindings with chords

Keyboard shortcuts editor now supports searching for keybindings with chords. For example, "Ctrl+K" will also show all keybindings with Ctrl+K as the first chord.

Better Terminal link detection

Detect links containing spaces, brackets, line and column formats.

The Open Detected Link command (O) is the keyboard-accessible way of opening terminal links. The command opens a Quick Pick with all available links in the terminal's viewport.

Ctrl+Shift+O will open a Quick Pick with a categorized list of links found

Go to Recent Directory (G) opens a Quick Pick with recent directories, picked up by shell integration. It supports pinning and fuzzy matching.

Directories are presented in a Quick Pick, split up by the current and previous sessions.

G is the new way to send G directly to the shell.

Run Recent Command (R) opens a Quick Pick with recent commands that have been run, modeled after most shell's reverse index search (R) but in a more accessible and more functional package. It supports pinning and fuzzy matching.

Commands previously run are split up by current and previous sessions and also pulled in from the shell's history file

"Unsafe" profile detection

Detection of the Cygwin shell on Windows is back in a safer form and also detect more shell profiles, including Cygwin, Cmder and MSYS2. To mitigate the security problem, before one of these profiles is used, it must be configured via the Select Default Profile command:

Select Default Profile is available via the terminal view dropdown or the Command Palette

The newly detected profiles appear in a "detected" section at the bottom of the Quick Pick

When selected, a warning will appear before being added to your settings.json file and acting like a regular profile:

The notification explains the path is potentially unsafe as it could be modified by another user

Bracketed paste mode used in "Run Selected Text In Active Terminal"

The Run Selected Text In Active Terminal command will now run the text using "bracketed paste mode" in supporting shells, so a multi-line selection will be treated as a single input, rather than multiple commands. This makes running actual scripts much more intuitive with fewer errors occurring.

Before:

Previously, running two echo statements would be run one after the one with 2 separate prompts

After:

Running two echo statements will now run in a single prompt

New Git commands

Stash staged changes and delete remote tags from within VS Code.

Git 2.35 introduced a new --staged mode for the git stash command. This new mode allows you to easily stash only the changes that are staged. If you have a version of Git that supports this new mode, you can take advantage of it using the new Git: Stash Staged command.

VS Code already had support for deleting a local tag using the Git: Delete Tag command. This milestone we enabled the deletion of remote tags using the new Git: Delete Remote Tag command.

Improved Node.js startup performance

The 'breakpoint predictor' used for Node.js debugging has been rewritten and improved to dramatically increase speed for large projects.

JavaScript React language label is now JavaScript JSX

The JavaScript React language mode has been renamed to JavaScript JSX to reflect that JSX syntax is used by more than just React. TypeScript React has also been renamed to TypeScript JSX.

Note that only the language names shown in the UI have been changed. The internal language IDs (javascriptreact and typescriptreact) remain unchanged for compatibility reasons.

VS Marketplace signing

Published extensions now code signed by default.

AI Tools in VS Code

Learn about AI-powered completions with GitHub Copilot.

Dark+ and Light+ V2 themes

Try the experimental color themes and let us know what you think.

rogerxu commented 1 year ago

Release version 1.76

Visual Studio Code February 2023

Profiles

Active profile badge, quickly switch profiles via the Command Palette.

VS Code now indicates the current custom profile by showing the first two letters of the profile name as a profile badge on the Manage Activity bar icon.

Two profile badges showing the first two letters of the profiles

You can now quickly switch between profiles with the Profiles: Switch Profile command in the Command Palette, which presents a dropdown listing your available profiles.

Switch Profile command dropdown listing available profiles

You can now create and customize profiles that include remote extensions and switch between them in Remote Development workspaces.

Moveable Explorer view

Place the Explorer in the secondary side bar or a panel.

Markdown header link suggestions

Easily link to headers in files across your workspace.

To start, just type ## in a Markdown link to see a list of all Markdown headers from the current workspace:

Suggestions for all Markdown headers in the current workspace

rogerxu commented 1 year ago

Release version 1.77

Visual Studio Code March 2023

Copy GitHub deep links

Create permalinks and HEAD links from within the editor.

TS/JS switch case completions

Quickly fill in TypeScript/JavaScript switch statements.

Remote Tunnels update

Reuse existing tunnel and quickly transition from remote to desktop.

rogerxu commented 11 months ago

Release version 1.78

Visual Studio Code April 2023

New color themes

"Modern" light and dark color theme defaults.

Profile templates

Built-in templates for Python, Java, Data Science, and more.

You select a profile template through the Profiles > Create Profile... dropdown:

Create Profile dropdown with profile templates

Drag and drop selector

Choose how you'd like item links placed into the editor.

The drop selector control appears whenever you drop content and there is more than one possible way it could be inserted. You can open the control by clicking on it or using ..

Standalone color picker

Color picker UI to insert or modify color formats. To open the color picker, select Show or Focus Standalone Color Picker from the Command Palette.

Standalone color picker control adjusted to blue color

Diff algorithm improvements

You can override the default by setting diffEditor.diffAlgorithm to advanced (new diff algorithm) or legacy (default).

Quick Fixes for Source Control input

Fix spelling and other errors right in the input box.

Markdown drag and drop videos

Easily add video tags in Markdown files.

Git LFS and VS Code for the Web

Use vscode.dev for repos with Git Large File Storage.

rogerxu commented 11 months ago

Release version 1.79

Visual Studio Code May 2023

Read-only mode

Mark specific files and folders in your workspace as read-only.

'Paste as' options

Choose how you'd like item links pasted into the editor.

Automatic copy of external files

Drag or paste to Markdown adds new files to your workspace.

Default Git repo branch name

Use "main" as the default or override via a user setting.

Linked editing for JSX tags

Simultaneously change opening and closing JSX tags.

"editor.linkedEditing": true