---
Order: 74
TOCTitle: February 2022
PageTitle: Visual Studio Code February 2022
MetaDescription: Learn what is new in the Visual Studio Code February 2022 Release (1.65)
MetaSocialImage: 1_65/release-highlights.png
Date: 2022-3-2
DownloadVersion: 1.65.0
---
# February 2022 (version 1.65)
Welcome to the Insiders build. These are the preliminary notes for the February 1.65 release of Visual Studio Code. As we get closer to the release date, you'll find details below about new features and important fixes.
Until the February milestone release notes are available, you can still track our progress:
* **[February iteration plan](https://github.com/microsoft/vscode/issues/142359)** - Review what's planned for the milestone.
* **[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+milestone%3A%22February+2022%22+is%3Aclosed)** - Resolved bugs and implemented feature requests in the milestone.
We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new.
If you find issues or have suggestions, you can enter them in the [VS Code repository](https://github.com/Microsoft/vscode/issues) on GitHub.
## Workbench
### New editor history navigation
The editor history navigation feature in VS Code drives some popular commands, such as **Go Back** and **Go Forward**. Numerous feature requests accumulated over time to improve this feature and also add more capabilities to it. This milestone editor history navigation was rewritten from scratch to address most of these requests.
**Editor group aware navigation**
Editor groups are now taken into account when navigating in the editor history. Navigating back and forward in editor history will activate and focus editors in exactly those editor groups as they were. When an editor group is removed, all associated history entries are discarded.
![Editor history group aware](images/1_65/history-group-aware.gif)
_Theme: [GitHub Light](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
In the above example, previously `extension.ts` in the second group would not be opened, but rather the first group would become active.
**New setting to scope navigation to editor group or editor**
A new setting `workbench.editor.navigationScope` makes it possible to scope editor history navigation to just the active editor group or even editor. Supported values are:
* `default`: Editor navigation works across all opened editor groups and editors.
* `editorGroup`: Editor navigation is limited to opened editors of the active editor group.
* `editor`: Editor navigation is limited to the active editor.
If you configure the scope to `editorGroup` or `editor`, each editor group or editor will have their own navigation stack that can be navigated individually.
**Notebook support**
You can now navigate between cells you have selected in any notebook. This works across editors, in the same way as you can navigate between cursor locations in a text editor.
![Navigate in notebooks](images/1_65/history-notebooks.gif)
_Theme: [GitHub Light](https://marketplace.visualstudio.com/items?itemName=GitHub.github-vscode-theme)_
**New commands to navigate edit locations or navigation locations**
By default, editor navigation locations are added whenever you navigate across editors but also when navigating within editors (for example, when switching notebook cells or changing selection in text editors). If you feel that too many locations are being recorded, new commands have been added that reduce locations to either:
* Navigation locations (for example when using **Go to Definition**)
* Edit locations (whenever an editor is changed, for example when typing in a text editor)
You can assign your favorite keybinding to these commands to change your navigation accordingly:
* `workbench.action.navigateForwardInEditLocations`: Go forward in edit locations
* `workbench.action.navigateBackInEditLocations`: Go back in edit locations
* `workbench.action.navigatePreviousInEditLocations`: Go previous in edit locations
* `workbench.action.navigateToLastEditLocation`: Go to last edit location (this already existed before)
* `workbench.action.navigateForwardInNavigationLocations`: Go forward in navigation locations
* `workbench.action.navigateBackInNavigationLocations`: Go back in navigation locations
* `workbench.action.navigatePreviousInNavigationLocations`: Go previous in navigation locations
* `workbench.action.navigateToLastNavigationLocation'`: Go to last navigation location
Associated context keys have been added to make assigning keybindings more powerful:
* `canNavigateBackInNavigationLocations`: Whether it is possible to go back in navigation locations
* `canNavigateForwardInNavigationLocations`: Whether it is possible to go forward in navigation locations
* `canNavigateToLastNavigationLocation`: Whether it is possible to go to the last navigation location
* `canNavigateBackInEditLocations`: Whether it is possible to go back in edit locations
* `canNavigateForwardInEditLocations`: Whether it is possible to go forward in edit locations
* `canNavigateToLastEditLocation`: Whether it is possible to go to the last edit location
### Light High Contrast Theme
A new light hight contrast theme has been added to improve legibility and readability of the editor.
![Light High Contrast Theme](images/1_65/light-hc-theme.png)
### Settings editor split view
The Settings editor now uses a split view to separate the table of contents from the settings list.
![Settings editor split view](./images/1_65/settings-editor-split-view.gif)
## VS Code for the Web
### Reopen local files and folders
The list of recently opened local files and folders is now available when you access [vscode.dev](https://vscode.dev) or [insiders.vscode.dev](https://insiders.vscode.dev) with a browser that supports the [web file system access API](https://developer.mozilla.org/docs/Web/API/File_System_Access_API). Selecting a local file will open it in an editor and selecting a local folder will update the File Explorer to show its contents. You may be asked by the browser to confirm local file access before the contents are revealed.
![Open recent in web](./images/1_65/web-local-recent.gif)
## Notebooks
### Built-in output renderers update
We moved the text, image, HTML and code renderers from the core to a built-in output renderer extension. With this change, we can now search text on these output types.
![Search keyword in text output](images/1_65/notebook-search-in-text-output.gif)
## Extension authoring
### Language status items
We have finalized the API for language status items. This API shows language specific information for the active editor. This can be general information about the project or toolset version but can also display errors and warnings.
![JSON language status linking to schema used for validation](images/1_65/language-status.png)
The API resembles the Status bar API and can be accessed via `vscode.languages.createLanguageStatusItem(...)`. A language status item should be created with a document selector so that VS Code can show and hide it whenever the active editor changes.
### Inlay Hints
The Inlay Hint provider API is now finalized. It allows to inlay additional information with source code. The capture below shows how TypeScript added an inlay hint for an inferred type.
![TypeScript inferred variable type shown as inlay hint](images/1_65/inlay-hints.png)
The API is built around the `InlayHintsProvider`. It provides `InlayHint` objects, which have a couple of interesting features:
* An inlay hint can have a tooltip and a command.
* The label of a hint can be composed of multiple parts, which again can have a tooltip and command.
* The label parts can also have an associated source location that enables language features such as **Go To Definition** for this part.
### Status bar focus borders
We made it easier and more accessible to navigate the status bar by adding focus borders to the status bar and status bar items.
![Status bar focus borders](images/1_65/status-bar-focus-borders.gif)
Theme authors can customize the border colors by configuring the two new theme colors:
- `statusBar.focusBorder`: The border color of the entire status bar when focused.
- `statusBarItem.focusBorder`: The border color the status bar items when focused.
### vscode-test package renamed to @vscode/test-electron
The `vscode-test` package has been renamed to `@vscode/test-electron`. Extension authors should update the entry in their extension's `package.json` file `devDependencies`, if they are including that package. The [@vscode/test-electron](https://www.npmjs.com/package/@vscode/test-electron) package helps run integration tests for VS Code extensions. You can learn more at the [vscode-test repository](https://github.com/microsoft/vscode-test).
## Proposed extension APIs
Every milestone comes with new proposed APIs and extension authors can try them out. As always, we want your feedback. Here are the steps to try out a proposed API:
1. [Find a proposal that you want to try](https://github.com/microsoft/vscode/tree/main/src/vscode-dts) and add its name to `package.json#enabledApiProposals`.
1. Use the latest [vscode-dts](https://www.npmjs.com/package/vscode-dts) and run `vscode-dts dev`. It will download the corresponding `d.ts` files into your workspace.
1. You can now program against the proposal.
You cannot publish an extension that uses a proposed API. There may be breaking changes in the next release and we never want to break existing extensions.
### Notebook aware document selectors
The `vscode.DocumentSelector` type allows you to associate language features like **Go to Definition** to specific documents. This drives the UI and also decides if the corresponding provider is asked for results. We have added a new API proposal that allows to also select notebook types, like `{ language: 'python', notebookType: 'jupyter-notebook'}` targets all python documents that are embedded in Jupyter notebooks. This is the [current proposal](https://github.com/microsoft/vscode/blob/8a3b1f4c4c24064273efb3417a5c2e229ba78481/src/vscode-dts/vscode.proposed.notebookDocumentSelector.d.ts) - give it a try and let us know what you think.
## Notable fixes
* [107748](https://github.com/microsoft/vscode/issues/107748) Voice over does not read that a setting is ignored to sync
* [123399](https://github.com/microsoft/vscode/issues/123399) Emmet doesn't add the class with tag A in jsx and html files.
* [141680](https://github.com/microsoft/vscode/issues/141680) Searching for @tags in settings is slow
* [141977](https://github.com/microsoft/vscode/issues/141977) Settings editor: Folder action item not handling keyup properly
* [142462](https://github.com/microsoft/vscode/issues/142462) File writes can hang when write locks are not cleared up