Skip to content

ripgrep patch in vscode package breaks some extensions depending on @vscode/ripgrep #52958

@loukamb

Description

@loukamb

Is this a new report?

Yes

System Info

Void 6.11.6_1 x86_64 GenuineIntel uptodate rrFFFF

Package(s) Affected

vscode-1.91.1_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

No response

Expected behaviour

Extensions such as Todo Tree import @vscode/ripgrep to perform searches across files. The tool should be able to locate ripgrep through the @vscode/ripgrep import.

Actual behaviour

Error

This error occurs because the vscode template patches out @vscode/ripgrep and points vscode to the locally installed ripgrep. This works for vscode itself, but not for extensions that make use of @vscode/ripgrep. The template cannot remove @vscode/ripgrep from installed extensions, so an alternative must be found.

Steps to reproduce

  1. Install latest version of vscode
  2. Install Todo Tree
  3. Observe as the extensions fails to locate @vscode/ripgrep

You can duct-tape fix this behavior by going in Todo Tree's settings and manually pointing the extention to /usr/bin/rg. However, this should not happen, breaks any extension depending on vscode's built-in ripgrep, and has only occurred on Void Linux and no other distribution in my experience (working fine on Gentoo, Arch, Fedora, and Linux Mint). Other distributions that apply a similar patch to Void's (or sandboxes vscode) could also face this problem, but Void Linux in this case introduces a breaking change that prevents some extensions from working properly.

Suggested action

Several module aliasing libraries exist on npm. If acceptable and possible (and reasonably doable from the package), one of those should be pulled and used to alias @vscode/ripgrep to Void's own module across the entirety of vscode at runtime, not only in the files of its codebase. If not realistic, alternative ways should be investigated to fix this problem, including alterations of the patch or perhaps a shim for the @vscode/ripgrep module.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds-testingTesting a PR or reproducing an issue needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions