prettier / prettier-vscode

Visual Studio Code extension for Prettier
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
MIT License
5.04k stars 446 forks source link

Extension doesn't ignore formatting for gitignored files #3063

Open SuperchupuDev opened 10 months ago

SuperchupuDev commented 10 months ago

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. ```
github-actions[bot] commented 8 months ago

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

niklasholm commented 8 months ago

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

jordanbtucker commented 8 months ago

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.

github-actions[bot] commented 6 months ago

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

SuperchupuDev commented 6 months ago

keeping the issue open

github-actions[bot] commented 4 months ago

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

kachkaev commented 4 months ago

not stale

SamuelBrucksch commented 3 months ago

i also have the same issue

github-actions[bot] commented 2 weeks ago

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

Den-dp commented 2 weeks ago

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

still relevant to me

ssbarnea commented 1 week ago

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)