prettier-vscode icon indicating copy to clipboard operation
prettier-vscode copied to clipboard

Extension doesn't ignore formatting for gitignored files

Open SuperchupuDev opened this issue 2 years ago • 15 comments
trafficstars

Summary

prettier 3.0 introduced ignoring gitignored files by default, however the vscode extension doesn't ignore them, unlike .prettierignored files. Using the prettier cli to format works fine

Github Repository to Reproduce Issue

https://github.com/h-projects/gasbot/tree/59d05a8df6a72a92a84fd0273e29c23e191eb2e7 (.prettierignore file is still in there)

Steps To Reproduce:

  1. Have a .prettierignore file and a .gitignore file, both with the same contents
  2. Enable formatting on save (with the extension) in vscode
  3. Try to modify and save a file mentioned in .prettierignore (it doesn't get formatted, good)
  4. Delete the .prettierignore file
  5. Try to save the same file

Expected result

The file doesn't get formatted, just like if .prettierignore was present

Actual result

The file gets formatted

Additional information

VS Code Version: 1.79.2

Prettier Extension Version: 9.19.0

OS and version: Windows 10 22H2, prettier 3.0.0

Prettier Log Output

Before removing `.prettierignore`
["INFO" - 12:36:11 PM] Formatting file:///c%3A/Users/Superchupu/OneDrive/Documentos/Programaci%C3%B3n/discordbot/gasbot/dist/index.js
["INFO" - 12:36:11 PM] Using config file at 'c:\Users\Superchupu\OneDrive\Documentos\Programación\discordbot\gasbot\.prettierrc.json'
["INFO" - 12:36:11 PM] PrettierInstance:
{
  "modulePath": "c:\\Users\\Superchupu\\OneDrive\\Documentos\\Programación\\discordbot\\gasbot\\node_modules\\prettier\\index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 48,
  "version": "3.0.0"
}
["INFO" - 12:36:11 PM] Using ignore file (if present) at c:\Users\Superchupu\OneDrive\Documentos\Programación\discordbot\gasbot\.prettierignore
["INFO" - 12:36:11 PM] File Info:
{
  "ignored": true,
  "inferredParser": null
}
["INFO" - 12:36:11 PM] File is ignored, skipping.
After removing the `.prettierignore` file, but still having the affected file gitignored
["INFO" - 12:32:52 PM] Formatting file:///c%3A/Users/Superchupu/OneDrive/Documentos/Programaci%C3%B3n/discordbot/gasbot/dist/index.js
["INFO" - 12:32:52 PM] Using config file at 'c:\Users\Superchupu\OneDrive\Documentos\Programación\discordbot\gasbot\.prettierrc.json'
["INFO" - 12:32:52 PM] PrettierInstance:
{
  "modulePath": "c:\\Users\\Superchupu\\OneDrive\\Documentos\\Programación\\discordbot\\gasbot\\node_modules\\prettier\\index.cjs",
  "importResolver": {},
  "callMethodResolvers": {},
  "currentCallMethodId": 41,
  "version": "3.0.0"
}
["INFO" - 12:32:52 PM] Using ignore file (if present) at c:\Users\Superchupu\OneDrive\Documentos\Programación\discordbot\gasbot\.prettierignore
["INFO" - 12:32:52 PM] File Info:
{
  "ignored": false,
  "inferredParser": "babel"
}
["INFO" - 12:32:52 PM] Detected local configuration (i.e. .prettierrc or .editorconfig), VS Code configuration will not be used
["INFO" - 12:32:52 PM] Prettier Options:
{
  "filepath": "c:\\Users\\Superchupu\\OneDrive\\Documentos\\Programación\\discordbot\\gasbot\\dist\\index.js",
  "parser": "babel",
  "arrowParens": "avoid",
  "endOfLine": "auto",
  "printWidth": 120,
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "none"
}
["INFO" - 12:32:52 PM] Formatting completed in 13ms.

SuperchupuDev avatar Jul 06 '23 10:07 SuperchupuDev

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

github-actions[bot] avatar Sep 05 '23 01:09 github-actions[bot]

This is still an issue. The extension should be consistent with the prettier cli.

niklasholm avatar Sep 05 '23 03:09 niklasholm

This is a bigger task than it seems. This extension relies on the Prettier API, but since there were issues integrating with Prettier v3, they had to revert back to Prettier v2. This won't be fixed until Prettier v3 is supported again.

jordanbtucker avatar Sep 16 '23 03:09 jordanbtucker

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

github-actions[bot] avatar Nov 16 '23 01:11 github-actions[bot]

keeping the issue open

SuperchupuDev avatar Nov 16 '23 08:11 SuperchupuDev

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

github-actions[bot] avatar Jan 16 '24 01:01 github-actions[bot]

not stale

kachkaev avatar Jan 16 '24 02:01 kachkaev

i also have the same issue

SamuelBrucksch avatar Feb 07 '24 14:02 SamuelBrucksch

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

github-actions[bot] avatar Apr 29 '24 01:04 github-actions[bot]

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

still relevant to me

Den-dp avatar May 01 '24 16:05 Den-dp

In my case .prettierignore is a symlink pointing to .gitignore file inside the same directory and based on the errors I seen logged, I suspect that it might not be properly loaded as these filenames are supposed to be ignored.

2024-04-30 12:42:41.822 [error] Error: ENOENT: no such file or directory, stat '/Users/ssbarnea/c/a/ansible-lint/examples/roles/name_prefix/tasks/test.tmp.yml'
	at statSync (node:fs:1692:3)
	at t.statSync (node:electron/js2c/node_init:2:5052)
	at n.statSync (/Users/ssbarnea/.vscode/extensions/esbenp.prettier-vscode-10.4.0/dist/extension.js:1:3435)
	at o.value (/Users/ssbarnea/.vscode/extensions/redhat.ansible-24.4.1783911/out/client/src/extension.js:2:428454)
	at s.y (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:82:659)
	at s.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:82:876)

ssbarnea avatar May 06 '24 08:05 ssbarnea

This issue has been labeled as stale due to inactivity. Reply to keep this issue open.

github-actions[bot] avatar Jul 06 '24 01:07 github-actions[bot]

It looks like for now, we have only 2 options:

  • keep in sync .gitignore and .prettierignore
  • downgrade extension to v10.0.0 (since this is the only version of the prettier-vscode that uses prettier@3 API required to ignore gitignored files)

Den-dp avatar Jul 06 '24 08:07 Den-dp