No description
Find a file
renovate[bot] 6b2d6ccaae
chore(deps): update vscode npm packages (#3598)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`^20.11.5` ->
`^20.14.2`](https://renovatebot.com/diffs/npm/@types%2fnode/20.13.0/20.14.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.13.0/20.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.13.0/20.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@vscode/vsce](https://code.visualstudio.com)
([source](https://togithub.com/Microsoft/vsce)) | [`^2.22.0` ->
`^2.27.0`](https://renovatebot.com/diffs/npm/@vscode%2fvsce/2.26.1/2.27.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vscode%2fvsce/2.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vscode%2fvsce/2.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vscode%2fvsce/2.26.1/2.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vscode%2fvsce/2.26.1/2.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [esbuild](https://togithub.com/evanw/esbuild) | [`^0.21.0` ->
`^0.21.5`](https://renovatebot.com/diffs/npm/esbuild/0.21.4/0.21.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.21.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.21.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.21.4/0.21.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.21.4/0.21.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [ovsx](https://open-vsx.org)
([source](https://togithub.com/eclipse/openvsx/tree/HEAD/cli)) |
[`^0.9.0` ->
`^0.9.1`](https://renovatebot.com/diffs/npm/ovsx/0.9.1/0.9.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ovsx/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ovsx/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ovsx/0.9.1/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ovsx/0.9.1/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`^3.2.4` ->
`^3.3.1`](https://renovatebot.com/diffs/npm/prettier/3.3.0/3.3.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.3.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.3.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`^5.3.3` ->
`^5.4.5`](https://renovatebot.com/diffs/npm/typescript/5.4.5/5.4.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.4.5/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.4.5/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [vscode](https://togithub.com/microsoft/vscode) | [`^1.80.0` ->
`^1.90.0`](https://renovatebot.com/diffs/npm/vscode/1.80.0/1.90.0) |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/vscode/1.90.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/vscode/1.90.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/vscode/1.80.0/1.90.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/vscode/1.80.0/1.90.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| engines | minor |

---

### Release Notes

<details>
<summary>Microsoft/vsce (@&#8203;vscode/vsce)</summary>

###
[`v2.27.0`](https://togithub.com/microsoft/vscode-vsce/releases/tag/v2.27.0)

[Compare
Source](https://togithub.com/Microsoft/vsce/compare/v2.26.1...v2.27.0)

#### Changes:

##### Bugs:

- [#&#8203;981](https://togithub.com/Microsoft/vsce/issues/981): ERROR
No translation found for %abc%

##### Others:

- [#&#8203;991](https://togithub.com/Microsoft/vsce/issues/991): set
pipeline name
- [#&#8203;990](https://togithub.com/Microsoft/vsce/issues/990): fix:
paths with spaces
- [#&#8203;988](https://togithub.com/Microsoft/vsce/issues/988): fix
executing sign tool
- [#&#8203;987](https://togithub.com/Microsoft/vsce/issues/987): fix
sign tool arg
- [#&#8203;986](https://togithub.com/Microsoft/vsce/issues/986): enable
signing in vsce using script
- [#&#8203;983](https://togithub.com/Microsoft/vsce/issues/983): Fix "No
translation found" error when executing `vsce package`

This list of changes was [auto
generated](https://dev.azure.com/monacotools/Monaco/\_build/results?buildId=276769\&view=logs).

</details>

<details>
<summary>evanw/esbuild (esbuild)</summary>

###
[`v0.21.5`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0215)

[Compare
Source](https://togithub.com/evanw/esbuild/compare/v0.21.4...v0.21.5)

- Fix `Symbol.metadata` on classes without a class decorator
([#&#8203;3781](https://togithub.com/evanw/esbuild/issues/3781))

This release fixes a bug with esbuild's support for the [decorator
metadata
proposal](https://togithub.com/tc39/proposal-decorator-metadata).
Previously esbuild only added the `Symbol.metadata` property to
decorated classes if there was a decorator on the class element itself.
However, the proposal says that the `Symbol.metadata` property should be
present on all classes that have any decorators at all, not just those
with a decorator on the class element itself.

- Allow unknown import attributes to be used with the `copy` loader
([#&#8203;3792](https://togithub.com/evanw/esbuild/issues/3792))

Import attributes (the `with` keyword on `import` statements) are
allowed to alter how that path is loaded. For example, esbuild cannot
assume that it knows how to load `./bagel.js` as type `bagel`:

    ```js
// This is an error with "--bundle" without also using
"--external:./bagel.js"
    import tasty from "./bagel.js" with { type: "bagel" }
    ```

Because of that, bundling this code with esbuild is an error unless the
file `./bagel.js` is external to the bundle (such as with `--bundle
--external:./bagel.js`).

However, there is an additional case where it's ok for esbuild to allow
this: if the file is loaded using the `copy` loader. That's because the
`copy` loader behaves similarly to `--external` in that the file is left
external to the bundle. The difference is that the `copy` loader copies
the file into the output folder and rewrites the import path while
`--external` doesn't. That means the following will now work with the
`copy` loader (such as with `--bundle --loader:.bagel=copy`):

    ```js
// This is no longer an error with "--bundle" and "--loader:.bagel=copy"
    import tasty from "./tasty.bagel" with { type: "bagel" }
    ```

- Support import attributes with glob-style imports
([#&#8203;3797](https://togithub.com/evanw/esbuild/issues/3797))

This release adds support for import attributes (the `with` option) to
glob-style imports (dynamic imports with certain string literal patterns
as paths). These imports previously didn't support import attributes due
to an oversight. So code like this will now work correctly:

    ```ts
    async function loadLocale(locale: string): Locale {
const data = await import(`./locales/${locale}.data`, { with: { type:
'json' } })
      return unpackLocale(locale, data)
    }
    ```

Previously this didn't work even though esbuild normally supports
forcing the JSON loader using an import attribute. Attempting to do this
used to result in the following error:

✘ [ERROR] No loader is configured for ".data" files: locales/en-US.data

            example.ts:2:28:
2 │ const data = await import(`./locales/${locale}.data`, { with: {
type: 'json' } })
                ╵                             ~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition, this change means plugins can now access the contents of
`with` for glob-style imports.

- Support `${configDir}` in `tsconfig.json` files
([#&#8203;3782](https://togithub.com/evanw/esbuild/issues/3782))

This adds support for a new feature from the upcoming TypeScript 5.5
release. The character sequence `${configDir}` is now respected at the
start of `baseUrl` and `paths` values, which are used by esbuild during
bundling to correctly map import paths to file system paths. This
feature lets base `tsconfig.json` files specified via `extends` refer to
the directory of the top-level `tsconfig.json` file. Here is an example:

    ```json
    {
      "compilerOptions": {
        "paths": {
          "js/*": ["${configDir}/dist/js/*"]
        }
      }
    }
    ```

You can read more in [TypeScript's blog post about their upcoming 5.5
release](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-rc/#the-configdir-template-variable-for-configuration-files).
Note that this feature does not make use of template literals (you need
to use `"${configDir}/dist/js/*"` not `` `${configDir}/dist/js/*` ``).
The syntax for `tsconfig.json` is still just JSON with comments, and
JSON syntax does not allow template literals. This feature only
recognizes `${configDir}` in strings for certain path-like properties,
and only at the beginning of the string.

- Fix internal error with `--supported:object-accessors=false`
([#&#8203;3794](https://togithub.com/evanw/esbuild/issues/3794))

This release fixes a regression in 0.21.0 where some code that was added
to esbuild's internal runtime library of helper functions for JavaScript
decorators fails to parse when you configure esbuild with
`--supported:object-accessors=false`. The reason is that esbuild
introduced code that does `{ get [name]() {} }` which uses both the
`object-extensions` feature for the `[name]` and the `object-accessors`
feature for the `get`, but esbuild was incorrectly only checking for
`object-extensions` and not for `object-accessors`. Additional tests
have been added to avoid this type of issue in the future. A workaround
for this issue in earlier releases is to also add
`--supported:object-extensions=false`.

</details>

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.3.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#331)

[Compare
Source](https://togithub.com/prettier/prettier/compare/3.3.0...3.3.1)

[diff](https://togithub.com/prettier/prettier/compare/3.3.0...3.3.1)

##### Preserve empty lines in front matter
([#&#8203;16347](https://togithub.com/prettier/prettier/pull/16347) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
---
foo:
  - bar1

  - bar2

  - bar3
---
Markdown

<!-- Prettier 3.3.0 -->

---
foo:
  - bar1
  - bar2
  - bar3
---

Markdown

<!-- Prettier 3.3.1 -->
---
foo:
  - bar1

  - bar2

  - bar3
---

Markdown
```

##### Preserve explicit language in front matter
([#&#8203;16348](https://togithub.com/prettier/prettier/pull/16348) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
---yaml
title: Hello
slug: home
---

<!-- Prettier 3.3.0 -->
---
title: Hello
slug: home
---

<!-- Prettier 3.3.1 -->
---yaml
title: Hello
slug: home
---
```

##### Avoid line breaks in import attributes
([#&#8203;16349](https://togithub.com/prettier/prettier/pull/16349) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };

// Prettier 3.3.0
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type:
  "json" };

// Prettier 3.3.1
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
```

</details>

<details>
<summary>microsoft/vscode (vscode)</summary>

###
[`v1.90.0`](https://togithub.com/microsoft/vscode/releases/tag/1.90.0):
May 2024

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.89.1...1.90.0)

Welcome to the May 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:

- [Editor tabs
multi-select](https://code.visualstudio.com/updates/v1\_90#editor-tabs-multi-select)
- Select and perform actions on multiple tabs simultaneously.
-
[Profiles](https://code.visualstudio.com/updates/v1\_90#configure-custom-profile-for-new-window)
- Open new windows with your preferred profile.
- [Editor
actions](https://code.visualstudio.com/updates/v1\_90#always-show-editor-actions)
- Immediately access editor actions across editor groups.
- [Copilot
extensibility](https://code.visualstudio.com/updates/v1\_90#chat-and-language-model-api)
- Build AI into your extensions with the Chat and Language Model API.
- [VS Code
Speech](https://code.visualstudio.com/updates/v1\_90#vs-code-speech) -
Automatically read out Copilot Chat responses with text-to-speech.
- [Find in
notebooks](https://code.visualstudio.com/updates/v1\_90#find-in-cell-selection)
- Restrict search to selected cells in notebooks.
- [Chat
context](https://code.visualstudio.com/updates/v1\_90#attach-context-to-chat)
- Quickly attach different types of context in chat.
- [IntelliSense in chat
responses](https://code.visualstudio.com/updates/v1\_90#intellisense-in-chat-code-blocks)
- Better understand generated code with IntelliSense.

> 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.

###
[`v1.89.1`](https://togithub.com/microsoft/vscode/releases/tag/1.89.1):
April 2024 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.89.0...1.89.1)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22April+2024+Recovery+1%22+is%3Aclosed+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_89) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.89.0`](https://togithub.com/microsoft/vscode/releases/tag/1.89.0):
April 2024

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.88.1...1.89.0)

Welcome to the April 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:

- [Preview Markdown images &
videos](https://code.visualstudio.com/updates/v1\_89#\_hover-to-preview-images-and-videos-in-markdown)
- Hover over a link to preview images & videos in Markdown.
- [Enhanced branch
switching](https://code.visualstudio.com/updates/v1\_89#\_saverestore-open-editors-when-switching-branches)
- Restore open editors seamlessly when switching between branches.
- [Middle-click paste
support](https://code.visualstudio.com/updates/v1\_89#\_configure-middle-click-to-paste)
- Paste text quickly in the terminal using a mouse middle-click.
- [WSL over Remote -
SSH](https://code.visualstudio.com/updates/v1\_89#\_remote-development)
- Use WSL when connected to a remote machine via Remote - SSH.
- [Accessible
View](https://code.visualstudio.com/updates/v1\_89#\_accessible-view) -
Navigate through comments, chat code blocks & terminal commands from the
Accessible View.
- [Keyboard shortcuts for UI
actions](https://code.visualstudio.com/updates/v1\_89#\_customize-keybindings)
- Customize keybindings for UI actions directly with a right-click.
- [Quick
Search](https://code.visualstudio.com/updates/v1\_89#\_quick-search) -
Search for text across your workspace with Quick Search.
- [AI-powered rename
suggestions](https://code.visualstudio.com/updates/v1\_89#\_copilot-powered-rename-suggestions-button)
- Get intelligent rename suggestions in the editor with Copilot.
- [Copilot content
exclusion](https://code.visualstudio.com/updates/v1\_89#\_content-exclusions)
- Exclude files from being used in the Copilot context.
- [Local workspace
extension](https://code.visualstudio.com/updates/v1\_89#\_local-workspace-extensions)
- Include and install extensions directly in your workspace.

> 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.

###
[`v1.88.1`](https://togithub.com/microsoft/vscode/releases/tag/1.88.1):
March 2024 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.88.0...1.88.1)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22March+2024+Recovery+1%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_88) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.88.0`](https://togithub.com/microsoft/vscode/releases/tag/1.88.0):
March 2024

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.87.2...1.88.0)

Welcome to the March 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:

- [Apply custom editor
labels](https://code.visualstudio.com/updates/v1\_88#custom-labels-for-open-editors)
- Distinguish between editors with same file names.
- [Locked
scrolling](https://code.visualstudio.com/updates/v1\_88#locked-scrolling)
- Compare editors side-by-side with synchronized scrolling.
- [Extension update
improvements](https://code.visualstudio.com/updates/v1\_88#extensions-update-improvements)
- Restart extensions without reload & update extensions with VS Code
releases.
- [Test Coverage
API](https://code.visualstudio.com/updates/v1\_88#test-coverage) -
Native code coverage support in VS Code.
- [Folding markers in
minimap](https://code.visualstudio.com/updates/v1\_88#minimap-section-headers)
- Easily identify and navigate to code sections from minimap.
- [Quick Search
improvements](https://code.visualstudio.com/updates/v1\_88#quick-search-improvements)
- Sticky file path separators and separator buttons.
- [Notebook Run cells in
section](https://code.visualstudio.com/updates/v1\_88#run-cells-in-section)
- Quickly run all cells in a notebook section.
- [Copilot
improvements](https://code.visualstudio.com/updates/v1\_88#github-copilot)
- Improved inline chat UI, commit messages, and used references.
- [Python auto-detect
improvements](https://code.visualstudio.com/updates/v1\_88#python) -
Detect startup files for Flask & Django, discover Hatch environments.
- [Preview: Terminal inline
chat](https://code.visualstudio.com/updates/v1\_88#preview-terminal-inline-chat)
- Start a Copilot inline chat conversation directly from the terminal.

> 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.

###
[`v1.87.2`](https://togithub.com/microsoft/vscode/releases/tag/1.87.2):
February 2024 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.87.1...1.87.2)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%22February+2024+Recovery+2%22+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_87) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.87.1`](https://togithub.com/microsoft/vscode/releases/tag/1.87.1):
February 2024 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.87.0...1.87.1)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%22February+2024+Recovery+1%22+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_87) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.87.0`](https://togithub.com/microsoft/vscode/releases/tag/1.87.0):
February 2024

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.86.2...1.87.0)

Welcome to the February 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:

- **[Voice dictation in
editor](https://code.visualstudio.com/updates/v1\_87#\_use-dictation-in-the-editor)**
- Use your voice to dictate directly in the editor.
- **[Multi-cursor inline
suggestions](https://code.visualstudio.com/updates/v1\_87#\_inline-completions-for-multiple-cursors)**
- Review and accept inline suggestions for multiple cursors.
- **[Copilot-powered rename
suggestions](https://code.visualstudio.com/updates/v1\_87#\_rename-suggestions)**
- Get rename suggestions for symbols from Copilot.
- **[Side-by-side preview
refactoring](https://code.visualstudio.com/updates/v1\_87#\_refactor-preview-in-multi-diff-editor)**
- Preview refactorings across files with multi diff editor.
- **[Smarter Python
imports](https://code.visualstudio.com/updates/v1\_87#\_improvements-for-adding-missing-imports)**
- Improvements for adding missing Python imports.
- **[Sticky scroll in
editor](https://code.visualstudio.com/updates/v1\_87#\_editor-sticky-scroll)**
- Sticky scroll is enabled by default in the editor.
- **[Multi-language support for
speech](https://code.visualstudio.com/updates/v1\_87#\_multiple-languages-supported-for-speech-recognition)**
- Multiple languages supported for speech recognition.
- **[Copilot suggestions for dev
containers](https://code.visualstudio.com/updates/v1\_87#\_remote-development)**
- Get template and feature suggestions for dev container configurations.

> 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.

###
[`v1.86.2`](https://togithub.com/microsoft/vscode/releases/tag/1.86.2):
January 2024 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.86.1...1.86.2)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%22December+%2F+January+2024+Recovery+2%22+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_86) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.86.1`](https://togithub.com/microsoft/vscode/releases/tag/1.86.1):
January 2024 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.86.0...1.86.1)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A%22December+%2F+January+2024+Recovery+1%22).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_86) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.86.0`](https://togithub.com/microsoft/vscode/releases/tag/1.86.0):
January 2024

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.85.2...1.86.0)

Welcome to the January 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:

- **[Per-window zoom
levels](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#configure-zoom-levels-per-window)**
- Adjust the zoom level for each window independently.
- **[Hey Code voice
command](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#accessibility)**
- Start a chat session with a voice command.
- **[Multi-file diff
editor](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#review-multiple-files-in-diff-editor)**
- Quickly review diffs across multiple files in the diff editor.
- **[Triggered
breakpoints](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#triggered-breakpoints)**
- Efficient debugging with breakpoint dependencies.
- **[Expanded Sticky Scroll
support](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#sticky-scroll-in-tree-views)**
- Sticky Scroll in tree views and notebooks.
- **[Markdown paste
options](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#languages)**
- Rich paste support for links, video, and audio elements.
- **[Flexible Auto Save
options](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#more-powerful-and-flexible-auto-save-options)**
- Skip Auto Save on errors or save only for specific file types.
- **[Source Control
input](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#source-control)**
- Customize commit input and per-language editor settings.
- **[Extension
notifications](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#allow-disabling-notifications-per-extension)**
- Fine-grained control for disabling notifications per extension.
- **[GitHub Copilot
updates](https://togithub.com/microsoft/vscode-docs/blob/main/release-notes/v1\_86.md#github-copilot)**
- Improved default context, add file as context, AI fixes.

> 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.

###
[`v1.85.2`](https://togithub.com/microsoft/vscode/releases/tag/1.85.2):
November 2023 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.85.1...1.85.2)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22November+2023+Recovery+2%22+is%3Aclosed+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_85) on
[code.visualstudio.com](https://code.visualstudio.com/).

###
[`v1.85.1`](https://togithub.com/microsoft/vscode/releases/tag/1.85.1):
November 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.85.0...1.85.1)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22November+2023+Recovery+1%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_85) on
[code.visualstudio.com](https://code.visualstudio.com/).

###
[`v1.85.0`](https://togithub.com/microsoft/vscode/releases/tag/1.85.0):
November 2023

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.84.2...1.85.0)

Welcome to the November 2023 release of Visual Studio Code. There are
many updates in this version that we hope you'll like, some of the key
highlights include:

- **[Floating editor
windows](https://code.visualstudio.com/updates/v1\_85#\_floating-editor-windows)**
- Drag and drop editors onto your desktop.
- **[Accessible View
workflow](https://code.visualstudio.com/updates/v1\_85#\_accessibility)**
- Smoother transitions to and from the Accessible View.
- **[Finer extension update
control](https://code.visualstudio.com/updates/v1\_85#\_extension-auto-update-control)**
- Choose which extensions to auto update.
- **[Source Control incoming and outgoing
view](https://code.visualstudio.com/updates/v1\_85#\_source-control)** -
Easily review pending repository changes.
- **[JavaScript heap
snapshots](https://code.visualstudio.com/updates/v1\_85#\_javascript-debugger)**
- Visualize heap snapshots including memory object graphs.
- **[TypeScript Go to Definition from inlay
hints](https://code.visualstudio.com/updates/v1\_85#\_jump-to-definition-for-inlay-hints)**
- Jump to definition from inlay hint hovers.
- **[Python type hierarchy
display](https://code.visualstudio.com/updates/v1\_85#\_python)** -
Quickly review and navigate complex type relationships.
- **[GitHub Copilot
updates](https://code.visualstudio.com/updates/v1\_85#\_github-copilot)**
- Inline chat improvements, Rust code explanation.
- **[Preview: expanded Sticky Scroll
support](https://code.visualstudio.com/updates/v1\_85#\_preview-features)**
- Sticky Scroll in tree views and the terminal.

> 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.

###
[`v1.84.2`](https://togithub.com/microsoft/vscode/releases/tag/1.84.2):
October 2023 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.84.1...1.84.2)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22October+2023+Recovery+2%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_84) on
[code.visualstudio.com](https://code.visualstudio.com/).

###
[`v1.84.1`](https://togithub.com/microsoft/vscode/releases/tag/1.84.1):
October 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.84.0...1.84.1)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22October+2023+Recovery+1%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_84) on
[code.visualstudio.com](https://code.visualstudio.com/).

###
[`v1.84.0`](https://togithub.com/microsoft/vscode/releases/tag/1.84.0):
October 2023

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.83.1...1.84.0)

Welcome to the October 2023 release of Visual Studio Code. There are
many updates in this version that we hope you'll like, some of the key
highlights include:

[More audio
cues](https://code.visualstudio.com/updates/v1\_84#\_accessibility) -
New audio cues to indicate clear, save, and format activity.
[Activity bar
position](https://code.visualstudio.com/updates/v1\_84#\_workbench) -
Move Activity bar to the top for compact display.
[Hide editor
tabs](https://code.visualstudio.com/updates/v1\_84#\_hide-editor-tabs) -
Show multiple, single, or no editor tabs.
[Maximize Editor
Groups](https://code.visualstudio.com/updates/v1\_84#\_maximize-editor-group)
- Quickly expand the active Editor Group.
[Python
improvements](https://code.visualstudio.com/updates/v1\_84#\_python) -
Better run code in terminal, easier virtual environment creation.
[FastAPI
tutorial](https://code.visualstudio.com/updates/v1\_84#\_fastapi-tutorial)
- Learn about developing Python FastAPI apps with VS Code.
[Gradle for
Java](https://code.visualstudio.com/updates/v1\_84#\_gradle-for-java) -
Improved support for Java Gradle projects.
[Preview: GitHub
Copilot](https://code.visualstudio.com/updates/v1\_84#\_github-copilot)
- Chat "agents", generate commit messages, terminal support.

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.

###
[`v1.83.1`](https://togithub.com/microsoft/vscode/releases/tag/1.83.1):
September 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.83.0...1.83.1)

The update addresses these
[issues](https://togithub.com/microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22September+2023+Recovery+1%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_83) on
[code.visualstudio.com](https://code.visualstudio.com/).

###
[`v1.83.0`](https://togithub.com/microsoft/vscode/releases/tag/1.83.0):
September 2023

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.82.3...1.83.0)

Welcome to the September 2023 release of Visual Studio Code. There are
many updates in this version that we hope you'll like, some of the key
highlights include:

[Accessibility
improvements](https://code.visualstudio.com/updates/v1\_83#\_accessibility)
- Screen reader support for the pull request comments.
[Better Command Palette
search](https://code.visualstudio.com/updates/v1\_83#\_similar-command-results-in-the-command-palette)
- New "similar commands" list to help command discovery.
[Add custom icons to
profiles](https://code.visualstudio.com/updates/v1\_83#\_icons-for-profiles)
- Display an icon to easily identify the active profile.
[Compact editor tab
height](https://code.visualstudio.com/updates/v1\_83#\_editor-tab-height-density)
- Shrinks editor tab height for larger editor region.
[Dedicated pinned editor
row](https://code.visualstudio.com/updates/v1\_83#\_pinned-editor-tabs-on-separate-row)
- New editor tab row supports pin/unpin via drag and drop.
[Go to Symbol in
notebooks](https://code.visualstudio.com/updates/v1\_83#\_go-to-symbol-in-notebooks)
- Quickly navigate to code symbols in your notebook.
[Python debugger
updates](https://code.visualstudio.com/updates/v1\_83#\_python) -
Configure whether to step into system/library or just your code.
[Preview: GitHub
Copilot](https://code.visualstudio.com/updates/v1\_83#\_github-copilot)
- Test generation based on current framework and project conventions.

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.
For the latest Visual Studio Code news, updates, and content, follow us
on Twitter [@&#8203;code](https://twitter.com/code)!

###
[`v1.82.3`](https://togithub.com/microsoft/vscode/releases/tag/1.82.3):
August 2023 Recovery 3

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.82.2...1.82.3)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22August+2023+Recovery+3%22+is%3Aclosed),
including a fix for a security vulnerability.

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_82) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.82.2`](https://togithub.com/microsoft/vscode/releases/tag/1.82.2):
August 2023 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.82.1...1.82.2)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22August+2023+Recovery+2%22+is%3Aclosed).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_82) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.82.1`](https://togithub.com/microsoft/vscode/releases/tag/1.82.1):
August 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.82.0...1.82.1)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22August+2023+Recovery+1%22+is%3Aclosed),
including a fix for a security vulnerability.

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_82) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.82.0`](https://togithub.com/microsoft/vscode/releases/tag/1.82.0):
August 2023

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.81.1...1.82.0)

Welcome to the August 2023 release of Visual Studio Code. There are many
updates in this version that we hope you'll like, some of the key
highlights include:

- **[Accessibility
improvements](https://code.visualstudio.com/updates/v1\_82#\_accessibility)**
- Accessible View support for inline completions, updated keybindings.
- **[Built-in port
forwarding](https://code.visualstudio.com/updates/v1\_82#\_workbench)**
- Forward local server ports from within VS Code.
- **[Sticky Scroll
updates](https://code.visualstudio.com/updates/v1\_82#\_sticky-scroll)**
- Scrolls horizontally with editor, display last line in scope, folding
UI.
- **[New diff editor
features](https://code.visualstudio.com/updates/v1\_82#\_diff-editor)**
- Detect moved code, dynamically switch inline and side-by-side view.
- **[Command Center displayed by
default](https://code.visualstudio.com/updates/v1\_82#\_command-center-now-on-by-default)**
- Quickly open files or run commands from the title bar.
- **[Copy Notebook
output](https://code.visualstudio.com/updates/v1\_82#\_notebooks)** -
Easily copy cell output as well as generated images.
- **[WebAssembly
debugging](https://code.visualstudio.com/updates/v1\_82#\_javascript-debugger)**
- Decompile WASM code to step through and set breakpoints.
- **[New TypeScript
refactorings](https://code.visualstudio.com/updates/v1\_82#\_typescript-52)**
- Move to File and Inline Variables refactorings.
- **[New Python Formatting
topic](https://code.visualstudio.com/updates/v1\_82#\_python)** - Learn
how to integrate formatters such as autopep8 and Black.
- **[Preview: GitHub
Copilot](https://code.visualstudio.com/updates/v1\_82#\_github-copilot)**
- CreateWorkspace command previews file structure of proposed code.

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_82) 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.

###
[`v1.81.1`](https://togithub.com/microsoft/vscode/releases/tag/1.81.1):
July 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.81.0...1.81.1)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22July+2023+Recovery+1%22+is%3Aclosed+).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_81) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.81.0`](https://togithub.com/microsoft/vscode/releases/tag/1.81.0):
July 2023

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.80.2...1.81.0)

Welcome to the July 2023 release of Visual Studio Code. There are many
updates in this version that we hope you'll like, some of the key
highlights include:

- **[Accessibility
improvements](https://code.visualstudio.com/updates/v1\_81#accessibility)**
- Accessible View support for notifications, chat responses, and hovers.
- **[VS Code
Profiles](https://code.visualstudio.com/updates/v1\_81#profiles)** -
Finer control with partial profiles and "Apply to all profiles" options.
- **[New diff editor
features](https://code.visualstudio.com/updates/v1\_81#diff-editor)** -
Collapse unchanged regions, better diff region text alignment.
- **[Git repositories with
symlinks](https://code.visualstudio.com/updates/v1\_81#support-git-repositories-with-symbolic-links)**
- Support for repository paths with symbolic links.
- **[Notebook
updates](https://code.visualstudio.com/updates/v1\_81#notebooks)** -
Search text in closed notebooks, "sticky scroll" displays Markdown
headers.
- **[Python test
discovery](https://code.visualstudio.com/updates/v1\_81#python)** -
Error tolerant pytest discovery continues across all files.
- **[Access Jupyter servers in GitHub
Codespaces](https://code.visualstudio.com/updates/v1\_81#jupyter)** -
Connect to a remote Jupyter server in a codespace.
- **[GitHub pull request
creation](https://code.visualstudio.com/updates/v1\_81#github-pull-requests-and-issues)**
- Better base branch detection, remember previous create PR options.
- **[Preview: GitHub Copilot
UX](https://code.visualstudio.com/updates/v1\_81#github-copilot)** -
Quick Chat improvements, iterative /fix command.

> 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.

###
[`v1.80.2`](https://togithub.com/microsoft/vscode/releases/tag/1.80.2):
June 2023 Recovery 2

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.80.1...1.80.2)

The update includes this [pull
request](https://togithub.com/microsoft/vscode/pull/189089).

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_80) on
[code.visualstudio.com](https://code.visualstudio.com).

###
[`v1.80.1`](https://togithub.com/microsoft/vscode/releases/tag/1.80.1):
June 2023 Recovery 1

[Compare
Source](https://togithub.com/microsoft/vscode/compare/1.80.0...1.80.1)

The update addresses these
[issues](https://togithub.com/Microsoft/vscode/issues?q=is%3Aissue+milestone%3A%22June+2023+Recovery+1%22+is%3Aclosed+),
including a fix for a security vulnerability.

For the complete release notes go to
[Updates](https://code.visualstudio.com/updates/v1\_80) on
[code.visualstudio.com](https://code.visualstudio.com).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 10am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-09 23:24:08 +00:00
.cargo chore: add cargo oxlint command 2024-05-28 11:10:08 +08:00
.github ci: use personal access token to push tag 2024-06-08 17:05:14 +08:00
.vscode chore: add some useful informantion log (#1912) 2024-01-06 22:30:01 +08:00
apps/oxlint Release oxlint v0.4.3 (#3581) 2024-06-07 16:39:51 +08:00
crates feat(span): port over more methods from TextRange (#3592) 2024-06-10 00:59:00 +08:00
editors/vscode chore(deps): update vscode npm packages (#3598) 2024-06-09 23:24:08 +00:00
fuzz chore(fuzz): add a timeout command 2024-02-05 14:41:14 +08:00
napi/parser refactor(diagnostics): remove export of miette 2024-05-12 11:46:48 +08:00
npm Release crates v0.13.5 (#3584) 2024-06-08 16:44:50 +08:00
tasks chore(deps): update npm packages (#3593) 2024-06-09 17:50:05 +00:00
wasm/parser Release crates v0.13.5 (#3584) 2024-06-08 16:44:50 +08:00
website chore(deps): update website npm packages (#3597) 2024-06-09 22:34:30 +00:00
.git-blame-ignore-revs chore: update .git-blame-ignore-revs 2023-07-28 13:57:29 +08:00
.gitignore feat(tasks): shard benchmarks in CI (#2751) 2024-03-18 10:45:44 +08:00
.ignore chore: add just watch command for overcoming cargo-watch being slow 2023-05-16 13:22:42 +08:00
.rustfmt.toml chore: move rustfmt.toml -> .rustfmt.toml 2024-05-12 13:14:50 +08:00
.taplo.toml chore: format top level toml files 2024-06-04 16:05:08 +08:00
.typos.toml feat(linter/jsdoc): Implement require-param rule (#3554) 2024-06-07 15:58:16 +08:00
Cargo.lock chore(deps): update rust crates (#3595) 2024-06-09 17:56:49 +00:00
Cargo.toml chore(deps): update rust crates (#3595) 2024-06-09 17:56:49 +00:00
CHANGELOG.md chore: update CHANGELOG.md 2024-06-06 20:24:19 +08:00
cliff.toml chore: format toml files 2024-06-08 11:48:14 +08:00
CONTRIBUTING.md chore: change website url to https://oxc.rs 2024-06-05 22:05:08 +08:00
deny.toml chore: format top level toml files 2024-06-04 16:05:08 +08:00
justfile chore: fix build-wasm command 2024-06-07 17:05:46 +08:00
LICENSE Change license holder to @boshen 2023-11-10 14:26:11 +08:00
MAINTENANCE.md chore: update MAINTENANCE.md 2024-04-20 16:59:47 +08:00
oxc_release.toml chore: format toml files 2024-06-08 11:48:14 +08:00
README.md chore: change website url to https://oxc.rs 2024-06-05 22:05:08 +08:00
rust-toolchain.toml chore(deps): update dependency rust to v1.78.0 (#3151) 2024-05-03 00:01:42 +08:00
THIRD-PARTY-LICENSE chore(index): fork index_vec crate. (#3092) 2024-04-25 06:09:53 +00:00

OXC Logo

MIT licensed Build Status Code Coverage CodSpeed Badge Sponsors

Discord chat Playground Website

Oxc

The Oxidation Compiler is creating a collection of high-performance tools for JavaScript and TypeScript.

Oxc is building a parser, linter, formatter, transpiler, minifier, resolver ... all written in Rust.

See more at oxc-project.github.io!

🙋Who's using Oxc?

Linter Quick Start

The linter is ready to catch mistakes for you. It comes with 91 rules turned on by default (out of 340+ in total) and no configuration is required.

To get started, run oxlint or via npx:

npx oxlint@latest

To give you an idea of its capabilities, here is an example from the vscode repository, which finishes linting 4800+ files in 0.7 seconds.

Performance

  • The parser aims to be the fastest Rust-based ready-for-production parser.
  • The linter is more than 50 times faster than ESLint, and scales with the number of CPU cores.

⌨️ Rust, Node.js and Wasm Usage

Rust

Individual crates are published, you may use them to build your own JavaScript tools.

  • The umbrella crate oxc exports all public crates from this repository.
  • The AST and parser crates oxc_ast and oxc_parser are production ready.
  • The resolver crate oxc_resolver for module resolution is also production ready.
  • Example usages of these crates can be found in their respective crates/*/examples directory.

While Rust has gained a reputation for its comparatively slower compilation speed, we have dedicated significant effort to fine-tune the Rust compilation speed. Our aim is to minimize any impact on your development workflow, ensuring that developing your own Oxc based tools remains a smooth and efficient experience.

This is demonstrated by our CI runs, where warm runs complete in 3 minutes.

Node.js

Wasm


🎯 Tools

🔸 AST and Parser

Oxc maintains its own AST and parser, which is by far the fastest and most conformant JavaScript and TypeScript (including JSX and TSX) parser written in Rust.

As the parser often represents a key performance bottleneck in JavaScript tooling, any minor improvements can have a cascading effect on our downstream tools. By developing our parser, we have the opportunity to explore and implement well-researched performance techniques.

While many existing JavaScript tools rely on estree as their AST specification, a notable drawback is its abundance of ambiguous nodes. This ambiguity often leads to confusion during development with estree.

The Oxc AST differs slightly from the estree AST by removing ambiguous nodes and introducing distinct types. For example, instead of using a generic estree Identifier, the Oxc AST provides specific types such as BindingIdentifier, IdentifierReference, and IdentifierName. This clear distinction greatly enhances the development experience by aligning more closely with the ECMAScript specification.

🏆 Parser Performance

Our benchmark reveals that the Oxc parser surpasses the speed of the swc parser by approximately 3 times and the Biome parser by 5 times.

How is it so fast?
  • AST is allocated in a memory arena (bumpalo) for fast AST memory allocation and deallocation.
  • Short strings are inlined by CompactString.
  • No other heap allocations are done except the above two.
  • Scope binding, symbol resolution and some syntax errors are not done in the parser, they are delegated to the semantic analyzer.

🔸 Linter

The linter embraces convention over configuration, eliminating the need for extensive configuration and plugin setup. Unlike other linters like ESLint, which often require intricate configurations and plugin installations (e.g. @typescript-eslint), our linter only requires a single command that you can immediately run on your codebase:

npx oxlint@latest

🏆 Linter Performance

The linter is 50 - 100 times faster than ESLint depending on the number of rules and number of CPU cores used. It completes in less than a second for most codebases with a few hundred files and completes in a few seconds for larger monorepos. See bench-javascript-linter for details.

As an upside, the binary is approximately 5MB, whereas ESLint and its associated plugin dependencies can easily exceed 100.

You may also download the linter binary from the latest release tag as a standalone binary, this lets you run the linter without a Node.js installation in your CI.

How is it so fast?
  • Oxc parser is used.
  • AST visit is a fast operation due to linear memory scan from the memory arena.
  • Files are linted in a multi-threaded environment, so scales with the total number of CPU cores.
  • Every single lint rule is tuned for performance.

🔸 Resolver

Module resolution plays a crucial role in JavaScript tooling, especially for tasks like multi-file analysis or bundling. However, it can often become a performance bottleneck. To address this, we developed oxc_resolver.

The resolver is production-ready and is currently being used in Rspack and Rolldown. Usage and examples can be found in its own repository.

🔸 Transformer (Transpiler)

A transformer is responsible for turning higher versions of ECMAScript to a lower version that can be used in older browsers. We are currently focusing on the architecture. See Milestone 1 for details.

🔸 Minifier

JavaScript minification plays a crucial role in optimizing website performance as it reduces the amount of data sent to users, resulting in faster page loads. This holds tremendous economic value, particularly for e-commerce websites, where every second can equate to millions of dollars.

However, existing minifiers typically require a trade-off between compression quality and speed. You have to choose between the slowest for the best compression or the fastest for less compression. But what if we could develop a faster minifier without compromising on compression?

We are actively working on a prototype that aims to achieve this goal, by porting all test cases from well-known minifiers such as google-closure-compiler, terser, esbuild, and tdewolff-minify.

Preliminary results indicate that we are on track to achieve our objectives. With the Oxc minifier, you can expect faster minification times without sacrificing compression quality.

🔸 Formatter

While prettier has established itself as the de facto code formatter for JavaScript, there is a significant demand in the developer community for a less opinionated alternative. Recognizing this need, our ambition is to undertake research and development to create a new JavaScript formatter that offers increased flexibility and customization options.

The prototype is currently work in progress.


✍️ Contribute

See CONTRIBUTING.md for guidance.

Check out some of the good first issues or ask us on Discord.

If you are unable to contribute by code, you can still participate by:

📚 Learning Resources

🤝 Credits

This project was incubated with the assistance of these exceptional mentors and their projects:

❤ Who's Sponsoring Oxc?

My sponsors

📖 License

Oxc is free and open-source software licensed under the MIT License.

Oxc ports or copies code from other open source projects, their licenses are listed in Third-party library licenses.