prettier-vscode: Formatting after VS Code find and replace is using wrong file content

Summary

When running VS Code find and replace across multiple files, with format on save enabled, the full file content is sometimes replaced with the content of a different file. This seems to only happen when the workspace includes multiple packages, each with their own installation of Prettier, and there are files being changed via find and replace in more than one package. Observed on both Windows and mac.

Github Repository to Reproduce Issue

https://github.com/bob-difronzo/prettier-plugin-repro

Steps To Reproduce:

  1. Open the search panel in VS Code.
  2. Type “1.0.0” in the “Search” input and “2.0.0” in the “Replace” input.
    • There should be 6 results across 4 files.
  3. Click the “Replace All” button.

Expected result

Each of the files should have the same content as before, with only “1.0.0” replaced with “2.0.0”.

Actual result

Sometimes, files in one package are replaced with files from another package. For example, pkg-b/package.json may have it’s full contents replaced with the contents of pkg-a/package-lock.json.

Additional information

Screenshots

Find and replace pkg-b/package.json replaced with pkg-a/package-lock.json pkg-b/package-lock.json replaced with pkg-a/package.json

VS Code Version:

Version: 1.79.2 (user setup) Commit: 695af097c7bd098fbf017ce3ac85e09bbc5dda06 Date: 2023-06-14T08:57:04.379Z Electron: 22.5.7 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.22621

and

Version: 1.79.2 (Universal) Commit: 695af097c7bd098fbf017ce3ac85e09bbc5dda06 Date: 2023-06-14T08:58:52.392Z Electron: 22.5.7 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Darwin x64 21.6.0

Prettier Extension Version:

v9.15.0 (with Prettier v2.8.8) for both OSes

and

v9.16.0 (with Prettier v3.0.0-alpha.12) on Windows (not tested on macOS)

OS and version:

Windows 11 Enterprise 22H2 with WSL2 Ubuntu 20.04.5 LTS

and

macOS Monterey 12.6.6

Prettier Log Output

Output from run for v9.15.0 on Windows with WSL:
["INFO" - 5:09:21 PM] Extension Name: esbenp.prettier-vscode.
["INFO" - 5:09:21 PM] Extension Version: 9.15.0.
["DEBUG" - 5:09:21 PM] Enabling Prettier globally
{
  "languageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["DEBUG" - 5:09:21 PM] Using bundled version of prettier.
["DEBUG" - 5:09:21 PM] Enabling Prettier for Workspace /home/difrr/dev/bug-repro/prettier-find-and-replace
{
  "languageSelector": [
    {
      "pattern": "/home/difrr/dev/bug-repro/prettier-find-and-replace/**/*.{js,_js,bones,cjs,es,es6,frag,gs,jake,javascript,jsb,jscad,jsfl,jslib,jsm,jspre,jss,mjs,njs,pac,sjs,ssjs,xsjs,xsjslib,wxs,js.flow,jsx,ts,cts,mts,tsx,importmap,json,4DForm,4DProject,avsc,geojson,gltf,har,ice,JSON-tmLanguage,mcmeta,tfstate,tfstate.backup,topojson,webapp,webmanifest,yy,yyp,jsonc,code-snippets,sublime-build,sublime-commands,sublime-completions,sublime-keymap,sublime-macro,sublime-menu,sublime-mousemap,sublime-project,sublime-settings,sublime-theme,sublime-workspace,sublime_metrics,sublime_session,json5,css,wxss,pcss,postcss,less,scss,handlebars,hbs,graphql,gql,graphqls,md,livemd,markdown,mdown,mdwn,mkd,mkdn,mkdown,ronn,scd,workbook,mdx,component.html,html,hta,htm,html.hl,inc,xht,xhtml,mjml,vue,yml,mir,reek,rviz,sublime-syntax,syntax,yaml,yaml-tmlanguage,yaml.sed,yml.mysql}",
      "scheme": "file"
    },
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["INFO" - 5:09:34 PM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package-lock.json
["INFO" - 5:09:34 PM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package.json
["INFO" - 5:09:34 PM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package-lock.json
["INFO" - 5:09:34 PM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package.json
["INFO" - 5:09:34 PM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/.prettierrc.json'
["DEBUG" - 5:09:34 PM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.js'
["INFO" - 5:09:34 PM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/.prettierrc.json'
["DEBUG" - 5:09:34 PM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.js'
["INFO" - 5:09:34 PM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/.prettierrc.json'
["DEBUG" - 5:09:34 PM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.js'
["INFO" - 5:09:34 PM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.js",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 0,
  "version": null
}
["INFO" - 5:09:34 PM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/.prettierrc.json'
["DEBUG" - 5:09:34 PM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.js'
["INFO" - 5:09:34 PM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.js",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 0,
  "version": null
}
["INFO" - 5:09:34 PM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 5:09:34 PM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["DEBUG" - 5:09:34 PM] Using prettier version 2.8.8
["DEBUG" - 5:09:34 PM] Using prettier version 2.8.8
["INFO" - 5:09:34 PM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.js",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 1,
  "version": "2.8.8"
}
["INFO" - 5:09:34 PM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.js",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 1,
  "version": "2.8.8"
}
["INFO" - 5:09:34 PM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 5:09:34 PM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 5:09:35 PM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 5:09:35 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 5:09:35 PM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package.json",
  "parser": "json-stringify"
}
["INFO" - 5:09:35 PM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 5:09:35 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 5:09:35 PM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package-lock.json",
  "parser": "json-stringify"
}
["INFO" - 5:09:35 PM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 5:09:35 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 5:09:35 PM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package-lock.json",
  "parser": "json-stringify"
}
["INFO" - 5:09:35 PM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 5:09:35 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 5:09:35 PM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package.json",
  "parser": "json-stringify"
}
["INFO" - 5:09:35 PM] Formatting completed in 380ms.
["INFO" - 5:09:35 PM] Formatting completed in 381ms.
["INFO" - 5:09:35 PM] Formatting completed in 452ms.
["INFO" - 5:09:35 PM] Formatting completed in 450ms.
["DEBUG" - 5:09:40 PM] Using bundled version of prettier.
["DEBUG" - 5:09:40 PM] Enabling Prettier for Workspace /home/difrr/dev/bug-repro/prettier-find-and-replace
{
  "languageSelector": [
    {
      "pattern": "/home/difrr/dev/bug-repro/prettier-find-and-replace/**/*.{js,_js,bones,cjs,es,es6,frag,gs,jake,javascript,jsb,jscad,jsfl,jslib,jsm,jspre,jss,mjs,njs,pac,sjs,ssjs,xsjs,xsjslib,wxs,js.flow,jsx,ts,cts,mts,tsx,importmap,json,4DForm,4DProject,avsc,geojson,gltf,har,ice,JSON-tmLanguage,mcmeta,tfstate,tfstate.backup,topojson,webapp,webmanifest,yy,yyp,jsonc,code-snippets,sublime-build,sublime-commands,sublime-completions,sublime-keymap,sublime-macro,sublime-menu,sublime-mousemap,sublime-project,sublime-settings,sublime-theme,sublime-workspace,sublime_metrics,sublime_session,json5,css,wxss,pcss,postcss,less,scss,handlebars,hbs,graphql,gql,graphqls,md,livemd,markdown,mdown,mdwn,mkd,mkdn,mkdown,ronn,scd,workbook,mdx,component.html,html,hta,htm,html.hl,inc,xht,xhtml,mjml,vue,yml,mir,reek,rviz,sublime-syntax,syntax,yaml,yaml-tmlanguage,yaml.sed,yml.mysql}",
      "scheme": "file"
    },
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["DEBUG" - 5:09:41 PM] Using bundled version of prettier.
["DEBUG" - 5:09:42 PM] Using bundled version of prettier.
["DEBUG" - 5:09:43 PM] Using bundled version of prettier.
Output from run for v9.16.0 on Windows with WSL:
["INFO" - 10:44:24 AM] Extension Name: esbenp.prettier-vscode.
["INFO" - 10:44:24 AM] Extension Version: 9.16.0.
["DEBUG" - 10:44:24 AM] Enabling Prettier globally
{
  "languageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["DEBUG" - 10:44:34 AM] Using bundled version of prettier.
["DEBUG" - 10:44:34 AM] Enabling Prettier for Workspace /home/difrr/dev/bug-repro/prettier-find-and-replace
{
  "languageSelector": [
    {
      "pattern": "/home/difrr/dev/bug-repro/prettier-find-and-replace/**/*.{js,_js,bones,cjs,es,es6,frag,gs,jake,javascript,jsb,jscad,jsfl,jslib,jsm,jspre,jss,mjs,njs,pac,sjs,ssjs,xsjs,xsjslib,wxs,js.flow,jsx,ts,cts,mts,tsx,importmap,json,4DForm,4DProject,avsc,geojson,gltf,har,ice,JSON-tmLanguage,mcmeta,tfstate,tfstate.backup,topojson,webapp,webmanifest,yy,yyp,jsonc,code-snippets,sublime-build,sublime-commands,sublime-completions,sublime-keymap,sublime-macro,sublime-menu,sublime-mousemap,sublime-project,sublime-settings,sublime-theme,sublime-workspace,sublime_metrics,sublime_session,json5,css,wxss,pcss,postcss,less,scss,handlebars,hbs,graphql,gql,graphqls,md,livemd,markdown,mdown,mdwn,mkd,mkdn,mkdown,ronn,scd,workbook,mdx,component.html,html,hta,htm,html.hl,inc,xht,xhtml,mjml,vue,yml,mir,reek,rviz,sublime-syntax,syntax,yaml,yaml-tmlanguage,yaml.sed,yml.mysql}",
      "scheme": "file"
    },
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["INFO" - 10:44:44 AM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package-lock.json
["INFO" - 10:44:44 AM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package.json
["INFO" - 10:44:44 AM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package-lock.json
["INFO" - 10:44:44 AM] Formatting file:///home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package.json
["INFO" - 10:44:44 AM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/.prettierrc.json'
["DEBUG" - 10:44:44 AM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.cjs'
["INFO" - 10:44:44 AM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/.prettierrc.json'
["DEBUG" - 10:44:44 AM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.cjs'
["INFO" - 10:44:44 AM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/.prettierrc.json'
["DEBUG" - 10:44:44 AM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.cjs'
["INFO" - 10:44:44 AM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 0,
  "version": null
}
["INFO" - 10:44:44 AM] Using config file at '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/.prettierrc.json'
["DEBUG" - 10:44:44 AM] Local prettier module path: '/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.cjs'
["INFO" - 10:44:44 AM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 0,
  "version": null
}
["INFO" - 10:44:44 AM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 10:44:44 AM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["DEBUG" - 10:44:44 AM] Using prettier version 3.0.0-alpha.12
["DEBUG" - 10:44:44 AM] Using prettier version 3.0.0-alpha.12
["INFO" - 10:44:44 AM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/node_modules/prettier/index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 1,
  "version": "3.0.0-alpha.12"
}
["INFO" - 10:44:44 AM] PrettierInstance:
{
  "modulePath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/node_modules/prettier/index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 1,
  "version": "3.0.0-alpha.12"
}
["INFO" - 10:44:44 AM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 10:44:44 AM] Using ignore file (if present) at /home/difrr/dev/bug-repro/prettier-find-and-replace/.prettierignore
["INFO" - 10:44:44 AM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 10:44:44 AM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 10:44:44 AM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package.json",
  "parser": "json-stringify"
}
["INFO" - 10:44:44 AM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 10:44:44 AM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 10:44:44 AM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package-lock.json",
  "parser": "json-stringify"
}
["INFO" - 10:44:44 AM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 10:44:44 AM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 10:44:44 AM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-a/package-lock.json",
  "parser": "json-stringify"
}
["INFO" - 10:44:44 AM] File Info:
{
  "ignored": false,
  "inferredParser": "json-stringify"
}
["INFO" - 10:44:44 AM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 10:44:44 AM] Prettier Options:
{
  "filepath": "/home/difrr/dev/bug-repro/prettier-find-and-replace/pkg-b/package.json",
  "parser": "json-stringify"
}
["INFO" - 10:44:44 AM] Formatting completed in 262ms.
["INFO" - 10:44:44 AM] Formatting completed in 262ms.
["INFO" - 10:44:44 AM] Formatting completed in 267ms.
["INFO" - 10:44:44 AM] Formatting completed in 264ms.
["DEBUG" - 10:44:44 AM] Using bundled version of prettier.
["DEBUG" - 10:44:47 AM] Using bundled version of prettier.
["DEBUG" - 10:44:47 AM] Enabling Prettier for Workspace /home/difrr/dev/bug-repro/prettier-find-and-replace
{
  "languageSelector": [
    {
      "pattern": "/home/difrr/dev/bug-repro/prettier-find-and-replace/**/*.{js,_js,bones,cjs,es,es6,frag,gs,jake,javascript,jsb,jscad,jsfl,jslib,jsm,jspre,jss,mjs,njs,pac,sjs,ssjs,xsjs,xsjslib,wxs,js.flow,jsx,ts,cts,mts,tsx,importmap,json,4DForm,4DProject,avsc,geojson,gltf,har,ice,JSON-tmLanguage,mcmeta,tfstate,tfstate.backup,topojson,webapp,webmanifest,yy,yyp,jsonc,code-snippets,sublime-build,sublime-commands,sublime-completions,sublime-keymap,sublime-macro,sublime-menu,sublime-mousemap,sublime-project,sublime-settings,sublime-theme,sublime-workspace,sublime_metrics,sublime_session,json5,css,wxss,pcss,postcss,less,scss,handlebars,hbs,graphql,gql,graphqls,md,livemd,markdown,mdown,mdwn,mkd,mkdn,mkdown,ronn,scd,workbook,mdx,component.html,html,hta,htm,html.hl,inc,xht,xhtml,mjml,vue,yml,mir,reek,rviz,sublime-syntax,syntax,yaml,yaml-tmlanguage,yaml.sed,yml.mysql}",
      "scheme": "file"
    },
    {
      "language": "javascript"
    },
    {
      "language": "mongo"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "json5"
    },
    {
      "language": "css"
    },
    {
      "language": "postcss"
    },
    {
      "language": "less"
    },
    {
      "language": "scss"
    },
    {
      "language": "handlebars"
    },
    {
      "language": "graphql"
    },
    {
      "language": "markdown"
    },
    {
      "language": "mdx"
    },
    {
      "language": "html"
    },
    {
      "language": "vue"
    },
    {
      "language": "yaml"
    },
    {
      "language": "ansible"
    },
    {
      "language": "home-assistant"
    },
    {
      "language": "jsonc",
      "scheme": "vscode-userdata"
    }
  ],
  "rangeLanguageSelector": [
    {
      "language": "javascript"
    },
    {
      "language": "javascriptreact"
    },
    {
      "language": "typescript"
    },
    {
      "language": "typescriptreact"
    },
    {
      "language": "json"
    },
    {
      "language": "jsonc"
    },
    {
      "language": "graphql"
    }
  ]
}
["DEBUG" - 10:44:48 AM] Using bundled version of prettier.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 9
  • Comments: 15

Most upvoted comments

FWIW I’m still running into this issue as (https://github.com/microsoft/vscode/issues/192617#issuecomment-1792828446) so I think this should be kept open.

I agree, this should be reopened. We are also still experiencing this issue.

Just adding one to the pile, I also seem to still be experiencing this behavior

The relevant PR is likely https://github.com/prettier/prettier-vscode/pull/3016 authored by @sosukesuzuki and approved by @fisker and @ntotten . Maybe one of them can get to the bottom of this. I do love the performance of parallelization like that (thanks for the feature!), but I fear it might have a bug.

Setting the Prettier path in my VSCode user settings fixed this:

~/Library/Application Support/Code/User/settings.json:

"prettier.prettierPath": "./node_modules/prettier",