Repository navigation
Formatting doesn't work in VScode #1730
Description
Activity
Did you already try installing the plugin locally in your project? (
npm install prettier @prettier/plugin-php) It seems that making the prettier-vscode plugin work with global installations of prettier and plugins requires some configuration: https://github.com/prettier/prettier-vscode#prettier-resolutionAlso see #1721 (comment) for step-by-step instructions.
Hi Czosel,
Yes, I tried installing the plugin locally, but the same issue still exists.
"dependencies": { "@prettier/plugin-php": "^0.16.3", "gulp-cache": "^1.1.3", "node-sass": "^5.0.0", "prettier": "^2.3.0" }Same problem.
On terminal Prettier formats without problems, but VSCode's extension doesn't recognize the plugin. Even specifying the global or local node_modules in
pluginSearchDirs. Prettier is locally and globally installed.My local
.prettierrc:{ "phpVersion": "7.0", "tabWidth": 4, "useTabs": false, "singleQuote": true, "trailingCommaPHP": true, "pluginSearchDirs": [ "/HDExterno/Langs/PHP/plugin/html/wp-content/themes/api/node_modules", "./node_modules", "node_modules" ], "plugins": [ "@prettier/plugin-php" ], "parser": "php" }My
settings.json:{ // ... "editor.defaultFormatter": "esbenp.prettier-vscode", "[php]": { "editor.formatOnSave": true }, // ... }Reacted by Pierre, Luca Di Fazio and Jason Marlin@D1360-64RC14 setting pluginSearchDirs, plugins and parser is not necessary if prettierrc is in the same path as your node_modules folder.
I was also having trouble with the global installation.
Adding this to my vscode user
settings.jsonmade it work!:"prettier.resolveGlobalModules": trueReacted by Andrew Nagy@kjoedion makes sense. For me I install prettier php for every project individually
Reacted by Chris SeufertThe solutions I found across the various tickets here didn't work for me unfortunately, but appreciate everyones efforts to come up with a solution.
I had to extend the prettier document selectors within VS Code to get it to run on PHP files:
.vscode/settings.json
"prettier.documentSelectors": [ "**/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php}" ]I also added
parserto the prettier config and ended up with this:
.prettierrc{ "parser": "php", "plugins": ["@prettier/plugin-php"], "phpVersion": "8.2" }All works fine in VS Code for me now. Hopefully this helps someone else. Thanks for this plugin, big fan of prettier and so I'm really grateful I can bring some of that experience over to the small amount of PHP work I am doing.
Related tickets are: #1721, #1640, prettier/prettier-vscode#2564
Reacted by Lukas Vanagas, Radoš and Sahil Rajput@WazzaJB thanks for the write-up! If this is reproducible in a fresh VScode installation, I'd be happy to add this to our documentation 👍
In that case I shall raise a PR and try to prepare a codespace you can trial this in :)
.prettierrc
Thanks a lot, @WazzaJB. Your solution works perfectly. Thanks for sharing.
Reacted by Warren BickleyThanks, @WazzaJB !
prettier.documentSelectorsdid the work for me.Reacted by Warren Bickley

My setup looks like this:
VS Code (latest version - no updates available)
Prettier code formatter (6.4.0) - Installed via VS Code extensions
Prettier/plugin-php - installed globally using:
npm install --global prettier @prettier/plugin-phpMy VS code setting.json file looks like this:
Yes when I try to format a .php file, using either format on save or smd-shift-p nothing happens, it has zero functionality. What am I doing wrong here? Is there an installation set that I missed?
Prettier is currently working as expected for .js files, it is only plug-php that I am having issues with.