Skip to content

linter: vscode extension findFiles timeout #17578

Description

@MIreland

What version of Oxlint are you using?

1.36.0

What command did you run?

I am using the vscode extension

What does your .oxlintrc.json config file look like?

{
  "plugins": [
    "react",
    "react-perf",
    "jsx-a11y"
  ],
  "rules": {
    "react-perf/jsx-no-new-array-as-prop": "off",
    "react-perf/jsx-no-new-function-as-prop": "off",
    "react-perf/jsx-no-jsx-as-prop": "off",
    "react-perf/jsx-no-new-object-as-prop": "off",
    "react/jsx-key": "error",
    "react/self-closing-comp": "error",
    "react/jsx-curly-brace-presence": ["error", { "props": "always", "children": "ignore" }],
    "react/rules-of-hooks": "error"
  },
  "ignorePatterns": [
    "**/node_modules/**",
    "**/dist/**",
    "**/build/**",
    "**/typecheck/**",
    "**/artifacts/**",
    "**/public/**"
  ]
}
  

What happened?

The oxc extension has not been working in our large internal pnpm monorepo. It works in other projects for me.

I added a bunch of debugging statements to the codebase, and it appears to be isolated to this:

https://github.com/oxc-project/oxc/blob/main/editors/vscode/client/ConfigService.ts#L123-L127

Here's cursor's analysis of the work it needs to do:

Analysis of workspace.findFiles() Operation

Search parameters
Pattern: **/node_modules/.bin/oxlint (recursive)
Max results: 1 (stops after first match)
Workspace: /Users/user/WebstormProjects/oweb-deleted/orthlyweb
Timeout: 10 seconds

Workspace statistics

  • Total size: 10GB
  • node_modules directories: 5,741
  • .bin directories: 687
  • Total files in .bin: 2,963
  • oxlint binaries found: 78 instances

How many files/directories are checked?

  • workspace.findFiles() with maxResults: 1 stops after the first match, but it still needs to traverse the directory tree to find it.
  • Estimated scope:
  • Best case: checks ~1 directory (if found in root node_modules/.bin/)
  • Average case: checks 50–200 directories (depends on traversal order and where the first match is)
  • Worst case: checks up to 687 .bin directories (if the first match is deep)
    Since there are 78 instances, the first match is likely found before checking all directories, but the search still needs to traverse a significant portion of the tree.

vscode extension output.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-editorArea - Editor and Language Server

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions