Summary
When using the Prettier VSCode extension with prettier-plugin-sh, I receive the message "There is no formatter for 'shellscript' files installed." when running the command "Format Document" on a .sh file.
Github Repository to Reproduce Issue
https://github.com/markuslewin/prettier-sh-no-formatter
Steps To Reproduce:
- Run
npm install
- Open
file.sh in VSCode
- Run command "Format Document"
- "There is no formatter for 'shellscript' files installed."
Expected result
The file file.sh should be formatted.
Actual result
I receive the message "There is no formatter for 'shellscript' files installed.".
Additional information
It seems like the problem is that some of the plugin's language objects include functions that cause the calls to postMessage to throw here and here.
Related issue in the Prettier repo: un-ts/prettier#489.
VS Code Version:
Version: 1.104.3 (user setup)
Commit: 385651c938df8a906869babee516bffd0ddb9829
Date: 2025-10-02T12:30:51.747Z
Electron: 37.3.1
ElectronBuildId: 12404162
Chromium: 138.0.7204.235
Node.js: 22.18.0
V8: 13.8.258.31-electron.0
OS: Windows_NT x64 10.0.26100
Prettier Extension Version: 11.0.0
Prettier Log Output
["INFO" - 3:53:59 PM] Extension Name: esbenp.prettier-vscode.
["INFO" - 3:53:59 PM] Extension Version: 11.0.0.
["DEBUG" - 3:53:59 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" - 3:54:05 PM] Local prettier module path: /home/markus/projects/prettier-sh-no-formatter/node_modules/prettier/index.cjs
["DEBUG" - 3:54:05 PM] Using prettier version 3.6.2
["INFO" - 3:54:05 PM] Using config file at /home/markus/projects/prettier-sh-no-formatter/.prettierrc
["ERROR" - 3:54:05 PM] Error handling text editor change
["ERROR" - 3:54:05 PM] function({ filepath }) {
const basename = path.basename(filepath);
return basename === ".env" || ba...<omitted>... } could not be cloned.
DataCloneError: function({ filepath }) {
const basename = path.basename(filepath);
return basename === ".env" || ba...<omitted>... } could not be cloned.
at new DOMException (node:internal/per_context/domexception:66:5)
at p (/home/markus/.vscode-server/extensions/esbenp.prettier-vscode-11.0.0/dist/worker/prettier-instance-worker.js:1:657)
at /home/markus/.vscode-server/extensions/esbenp.prettier-vscode-11.0.0/dist/worker/prettier-instance-worker.js:1:914
Summary
When using the Prettier VSCode extension with
prettier-plugin-sh, I receive the message "There is no formatter for 'shellscript' files installed." when running the command "Format Document" on a.shfile.Github Repository to Reproduce Issue
https://github.com/markuslewin/prettier-sh-no-formatter
Steps To Reproduce:
npm installfile.shin VSCodeExpected result
The file
file.shshould be formatted.Actual result
I receive the message "There is no formatter for 'shellscript' files installed.".
Additional information
It seems like the problem is that some of the plugin's language objects include functions that cause the calls to
postMessageto throw here and here.Related issue in the Prettier repo: un-ts/prettier#489.
VS Code Version:
Prettier Extension Version: 11.0.0
Prettier Log Output