How do you determine which formatter is being used for VS Code?
Look at https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
ctrl-shift-p > search "open json"
Add
{
"editor.defaultFormatter": null,
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
}
Starting with the 1.33 release (March 2019), attempting to format a file for which there are multiple formatters registered results in a popup like this:
Note that the notification is "silent" if formatting happened implicitly via "format on save" or "format on paste", meaning that you need to click the bell in the lower right for it to show up:
The Configure...
menu then lists all the formatters available for the current language. One of them can be selected as a default formatter for Format Document
and Format Selection
:
Picking for instance "Prettier" here results in this being added to the global settings.json
:
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
There are also two new commands for formatting a file with a specific formatter, Format Document With...
and Format Selection With...
. This can be useful for formatting a specific file with a formatter that's not set as the default formatter. The former is also available from the context menu:
In addition to the answer given by Gama11
You can got to settings.json
on below given path
C:\Users\<username>\AppData\Roaming\Code\User\settings.json
I am using "prettier"
formatter for my html
files,
also you can find the formatter been used for other extensions if configured.
The default-level formater mentioned in rofrol's answer will soon be better managed, from issue 126187
It should be deprecated and banished for the sanity of developers everywhere.
Few days ago I ventured off the path of JS/TS/CSS/HTML/JSON and thought I try VScode with something new, ReScript.
I installed the plugin https://marketplace.visualstudio.com/items?itemName=chenglou92.rescript-vscode
But the formatting didn’t work.
Tried the same with a python formatter plugin, same problem.After a little investigation I found that I had this configured at the top level of my
settings.json
. It also has a nice GUI pulldown."editor.defaultFormatter": "esbenp.prettier-vscode",
And this was apparently overriding the ReScript and python plugins.
It might have been overriding ALL plugins, even for languages that prettier is not even registered to use, which is a diabolical thing to do.After some googling I found that I could add this and fix my problem
"[rescript]": { "editor.defaultFormatter": "chenglou92.rescript-vscode" }
Or I could just set
defaultFormatter
back tonull
and let the plugins take over.But I was wondering how many users have had this same problem? And how many plugins have to deal with this? And why did I think adding a defaultFormatter to the top level was a good idea?
Well, with VSCode 1.61 (Sept. 2021), this will now show a modal dialog.
The "Configure
" action will make you configure a default formatter for that specific language, not for all languages.
See commit afc8ab1