All notable changes to the "prettier-vscode" extension will be documented in this file.
- Security: Fixed config resolution in untrusted workspaces to prevent JavaScript config files (
.prettierrc.js,prettier.config.js, etc.) from being executed. Previously, even when workspace trust was enforced for module resolution, Prettier's config resolution could stillrequire()/import()JS config files, allowing arbitrary code execution. Reported by Hector Ruiz Ruiz.
- Watch
.prettierignorefor changes to invalidate cache (#3942)
- Fixed
source.fixAll.prettiercode action running even wheneditor.defaultFormatterwas set to a different extension (#3908). The code action now respects the user's formatter choice and only runs when Prettier is the default formatter or whensource.fixAll.prettieris explicitly enabled.
- Fixed module resolution when
prettierPathpoints to a file (e.g.,.yarn/sdks/prettier/index.cjsin Yarn PnP SDK setups)
- [BREAKING CHANGE] Bundled Prettier upgraded from v2.8.8 to v3.x
- [BREAKING CHANGE] Updated
trailingCommadefault from"es5"to"all"to match Prettier 3 - Maintained backward compatibility with projects using Prettier v2.x (projects with explicit Prettier v2 dependencies will continue to use their local version)
- Fixed Prettier v3 plugin loading
- Fixed parser detection for custom file extensions with config overrides
- Fixed parser detection fallback when using plugins with Prettier v3
- Added new Prettier v3 options:
objectWrap,experimentalOperatorPosition - Added support for TypeScript config files (
.prettierrc.ts,.prettierrc.cts,.prettierrc.mts,prettier.config.ts, etc.) introduced in Prettier 3.5.0 - Thanks to @dr2009 - Added
source.fixAll.prettiercode action for use witheditor.codeActionsOnSaveto run Prettier before other formatters like ESLint (#1277) - Fixed issue where unnecessary TextEdits were applied when document was already formatted, which could cause spurious changes or cursor positioning issues (#3232)
- [BREAKING CHANGE] Prevent
.editorconfigfrom satisfying therequireConfigsetting (#2708) - Thanks to @redoPop - Fix issue where formatting multiple files in a workspace with multiple instances of Prettier could result in files being overwritten with the contents of other files (#3423, #3040) - Thanks to @bob-difronzo
- Added Language Status Item for Prettier
- Add support for
experimentalTernariesoption
- Extend list of Prettier config files by ECMAScript module extensions
- Fixed config resolution that caused plugins to be ignored when using Prettier 3.1.1 or later. (#3252)
- Module path can be a dir when loading prettier version
- Add language-override support for VSCode configuration.
- Fixed the issue where VSCode was misrecognizing the path in output panel due to added quotes.
- Fix module resolution with
prettierPathsetting
Reverts back to prettier 2.x by default due to issues with extension
Use Prettier 3.0 by default. Change default configuration for trailingComma to all to match Prettier 3.0.
- Reverts change to
prettierPathresolution. (#3045)
- Support new config file types when using Prettier 3.0
- Support for Prettier 3.0 plugin resolution
- Fix plugins
parsernot inferred - Thanks to @u3u - Fix module resolution with
prettierPathsetting
- Run only Prettier v3 in worker_threads. Run v2 in main thread.
- Run Prettier in worker_threads for v3.
- Fixes a bug in Remote SSH that had been occurring since VSCode 1.79.
- Prettier 2.8.8
- Fix typo in translations for zh-cn - Thanks to @fisker
- Support Prettier v3. Not shipped by default, requires project install - Thanks to @sosukesuzuki
- Improved translations for zh-tw and zh-cn - Thanks to @fisker and @Mrbunker
- Prettier 2.8.7
- Update description of vueIndentScriptAndStyle option
- Prettier 2.8.0
- Updated dependencies
- Use theme colors on status bar background for errors and warnings (@zardoy)
- Reduce extension size (@kidonng)
- Added VS Code sponsorship link
- Use config from
.prettierrcwhen formatting VS Code usersettings.json. Fixes [#2226]. - Improved support for pnpm (@fz6m)
- Improved support for global modules (@ehoogeveen-medweb)
- Disallow range formatting for Vue and Handlebars as Prettier doesn't support that
- Added
singleAttributePerLinesetting (Prettier 2.6.0) - Added
bracketSameLinesetting (Prettier 2.4.0) - Added deprecation notice for
jsxBracketSameLinesetting (Prettier 2.4.0) - Allow formatting ranges in
vue.
- Prettier 2.7.1
- Register
mongodbinvscodeLanguageIdsto support formatting mongodb queries in VS Code - Search for ignore file in all containing workspace folders, not just innermost
- Fix wrong time unit in log.
- Allow formatting ranges in
jsonc(JSON with Comments). - Fix support for using a globally installed version of prettier.
- Fix
"editor.formatOnSaveMode": "modifications"/"modificationsIfAvailable"
- Prettier 2.6.1
- Remove
.gtsand.gjsfrom Handlebars extensions
- Clear cache on reload (#2371)
- Changed build target to ES2020 to reduce module size
- Upgraded to Prettier 2.5.1
- Handlebars support (@lifeart)
- Changed schemastore.com URLs to use HTTPS
- Support for browser VS Code
- Support for virtual file systems
- Updated Prettier to 2.4.1
- VS Code version to 1.60.0
- Setting
requireConfigno longer accepts.editorconfigas a valid config.
- Forced version of vsce on build
- Updated Prettier to 2.3.1
- Minimum supported VS Code version is now 1.57.0
- Added
idandnameproperties to status bar (#2003) - Uses VS Code Workspace Trust
- Revert bad changes from 7.0.0, will republish as 8.0.0
- Bad release, do not use.
- Updated Prettier to 2.3.0
- Forced mode now ignores
requirePragmaconfig - Fix mismatch of option name
ignorein description of HTML Whitespace Sensitivity (#1941)
- Removed loading status bar state
- Updates to formatter registration
- Removed notifications, all messages logged with status icon update.
- Fixed regressions where VS Code settings
settings.jsoncould not be formatted
- Stable 6.0 release, see Beta releases for changes
- Added command to force formatting regardless of ignores
Format Document (Forced)
- Automatically detect package manager
- Delayed prettier registration to improve performance on large projects
- Status bar state and icons updates
- Prompt to allow Prettier module to load
- Added debug mode for logging
- Removed config for
disabledLanguages
- Reverted automatical detection of package manager
- Removed Status bar color
- Automatically detect package manager
- Move check mark in status bar to left side to match ESLint
- Status bar background to
statusBarItem.errorBackgroundcolor on error
- Updated prettier to 2.2.0
- Updated prettier to 2.1.2
- Log the location of the prettier config file
- Updated prettier to 2.1.1
- Activation on
onStartupFinishedto reduce impact on VS Code start.
- Added enable setting.
- Added Embedded Language Formatting option.
- Throttling of reloads on watched files to improve performance on large projects.
- Refactoring of how the extension registers formatters to support file extension that don't have a language ID.
- Added support for custom document selectors to provide formatting on custom languages/extensions.
- Support for additional configuration file extensions (
toml,cls).
- Updated prettier to 2.1.0
- Improved error output of certain plugin exceptions.
- Added error logging for unusual prettier exceptions.
- Resolves issue where untitled JSON files were resolved to
json-stringifyparser. (#1435)
- Updated modules
- New build process
- Removed support for legacy linter integration. See documentation on how to configure linters.
- Adds support for formatting VS Code settings files (settings.json). (#1343)
- Update loading implicit Prettier dep from
node_modulesto only occur if explicitpackage.jsondep is not found in a parent directory - Show a custom error message / notification in the case where
prettier.prettierPathdoes not reference an instance of Prettier
- Updated prettier to 2.0.5
- Reverted change that attempts to resolve config based on prettier version.
- Removed AppInsights telemetry as its no longer needed
- Updated instructions on how to use linters
- Added log warning about legacy linter integrations
- Use default configuration based on the version of prettier
- Updated prettier to 2.0.4
- Support loading Prettier from
node_moduleseven if it doesn't appear as a direct dependency in apackage.json - Honor project-scoped config when loading module (#1222, #950)
- Added configuration option
withNodeModulesto enable processing of files in thenode_modulesfolder - Updated prettier to 2.0.3 (#1289)
- Updated prettier to 2.0 - See changes here
- Change default configuration for
trailingCommatoes5to match Prettier 2.0 - Change default configuration for
arrowParenstoalwaysto match Prettier 2.0 - Change default configuration for
endOfLinetolfto match Prettier 2.0 - Updated module dependencies
- Removed deprecated configuration options
- No longer loads prettier when
requireConfigistrueand no config is found. (#1161) - Minor logging improvements
- Notifications only show when running formatter
- Removed logs for status bar events
- Fixed a bug with the prettier output open command
- Upgraded module dependencies
- Due to performance issues, global module resolution is now off by default. Enable by setting
prettier.resolveGlobalModulestotrue
- Show error when prettier configuration file is invalid
- Removed unused debug tracer on module resolution
- Always format untitled files, even when
requireConfigsetting is enabled
- Fixed an issue with global module resolution
- Added support for global module resolution
- Added setting
packageManagerto determine which package manager to use for global module resolution - Fixed issue where unsaved HTML files were resolved as Angular
- Reverted range filter on formatter registration due to problems, needs more investigation
- Added additional details to description of
requireConfigurationoption
- Additional logging for errors loading config
- Updated status icon to not error states
- Added setting
prettier.useEditorConfig(defaults totrue) to allow disabling resolving.editorconfigfor Prettier config - Added additional logging
- Added
patternfilter to formatter registrations to avoid registering incorrectly on multi-workspace projects - Removed some unused localization code
- Improved error logging.
- Bumped dependencies and type definitions to latest
- More information in readme about configuration
- Fixed issue where VS Code and local config where merged. If local config is present, only it will be used. #1074
- Removed deprecation message from
requireConfig(Was added by mistake). #1056 - Sets
resolveConfig: trueto allow parser overrides on Prettier 1.19+. #1067 - Fix for finding local
prettiermodule in packages located innode_modulesdirs - Added doc on what languages support range formatting
- Added back status bar button
- Add command
Prettier: Create Configuration Fileto create a basic.prettierrcfile
- Fixed issue resolving user home files on mac. i.e. (
~/.prettierrc) (#1045) - Improved tests for config resolution
- Adds back VS Code config
- Bug fixes
- Change telemetry metric names
- Removed support for Prettier versions older than 1.13.0.
- No longer bundling linters with extension - to use install them in your package.json.
- Use Prettier as default resolver of formatter instead of VS Code.
- Use Prettier to determine if a file is ignored or not instead of custom logic.
- Support for formatting of untitled files when the language is set by VS Code.
- Set file path config on format to assist with parser resolution.
- Less fallbacks - if you have local prettier installed it will always use that. Before if your local prettier didn't support things we would fall back to bundled prettier - this caused many errors and inconsistent behavior.
- Removed toolbar button.
- Deprecated linter configuration settings.
- Enhanced logging.
- Extension built with webpack.
- Memoize package path lookup to improve perf of repeated calls to same file.
- Shows error message when outdated versions of prettier are used.
- Refreshes modules without restart for cases where prettier version or plugins are installed locally.
- Registers
.graphqlfiles asgraphqllanguage in order to provide formatting. (#989) - Ignore files are only read from the workspace root folder to behave the same as prettier.
- Added configuration option
prettier.prettierPathto override module resolution. - Added configuration option
prettier.configPathto override configuration file resolution.
- Updated VS Code Version to 1.34.0
- Changed App Insights api key
- Added App Insights telemetry to track feature usage.
- Deprecated support for ESLint, TSLint, and Stylelint. See documentation
- Fixed issue where error output was used before initialized (#918)
- Localization support for
zh-cnandzh-tw - Fixed issue where text-fixtures were bundled in the extension.
- Prettier 1.18
- Docs now explain how to lint TypeScript code with ESLint.
- Improve supported language resolution with local Prettier instances
- Prettier Plugin Support
- prettier-eslint 9.0.0
- Prettier 1.17
- New setting
quoteProps. (prettier 1.17)
- Prettier 1.16
- prettier-tslint 0.4.2
- Validate the
"prettier"key inpackage.jsonusing the prettier settings schema - Prettier 1.15
- New options: jsxSingleQuote, htmlWhitespaceSensitivity and endOfLine (More info in readme).
- disableLanguages only in User / Workspace settings (no more in folder settings).It allows to register formatters for every supported language.
- Prettier 1.14
- New option: tslintIntegration (boolean) use
prettier-tslintinstead ofprettier
- Revert notification popup: remove it.
- fix parser inference
- prettier 1.13.4
- prettier-stylelint 0.4.2
- Improve prettier resolution algorithm for monorepos
- prettier-eslint@8.8.1
vueis now disabled by default. Opt-in by removingvuefrom disableLanguages setting
- prettier-eslint@8.3.1 revert previous update
- prettier-eslint@8.7.5
- Disabling a language
disableLanguagesnow allows to use an other formatter. NOT when disabling in a sub workspace folder (noop) - Prettier 1.10,
vuejsoncpostcsssupport.
- Prettier 1.9
- New option: requireConfig (boolean) Format only files which have a prettier config (.prettierrc, ...)
- Don't merge editor's options into prettier config
- Multi-root support.
- Removed all
*Enablesettings, these are now inferred from Prettier itself. Use scopededitor.formatOnSaveto disable formatting some languages on save. (See README) - Markdown support
- Prettier 1.8.2
- new setting, ignorePath. Ignore files.
- Eslint now also runs on TypeScript files.
- new setting, stylelintIntegration. prettier + stylelint.
- Prettier 1.7
- Prettier 1.6.1
- Read configuration from files.
- Prettier 1.6
- Changed Status bar: hide/show depending on active editor.
- Fix local resolution.
- Reworked error messages. They are now in a dedicated output channel.
- Prettier 1.5
- Added JSON and GraphQL formatting (Range formatting disabled)
- Disable range formatting with postcss parser (broken)
- Fix sass language id (sass -> scss)
- Update prettier to 1.4.4
- Update prettier-eslint to 6.3.0
- Option to select language ids prettier will run on.
- Prettier 1.4.2
- Prettier 1.4
- Now also formats CSS and TypeScript
- Format Selection highly improved.
- Bump dependencies.
jsxlanguage support in addition tojavascriptandjavascriptreact.
- New setting eslintIntegration. Use
prettier-eslintunder the hood.
- Bundled with prettier 1.1.0
- New setting
useTabs. (prettier 1.0) - New setting
semi. (prettier 1.0)
- Local prettier has to be explicitly installed (dependencies or devDependencies)
- Resolve 'prettier' against formatted file. Nearest upward node_modules/prettier
- New setting
jsxBracketSameLine. (prettier 0.17.0) - Changed
trailingCommasetting['none', 'es5', 'all'](prettier 0.19.0)
- Removed
Prettieraction. - Use vscode actions
Format DocumentandFormat Selection. - Removed
prettier.formatOnSavesetting in favor of the more general settingeditor.formatOnSave - Deprecated
useFlowParsersetting. Introducedparsersetting. (Since prettier 0.0.10)
- Initial release