<!-- Changes that affect Black's preview style -->
+- Format hex code in unicode escape sequences in string literals (#2916)
+- Add parentheses around `if`-`else` expressions (#2278)
+- Improve the performance on large expressions that contain many strings (#3467)
- Fix a crash in preview style with assert + parenthesized string (#3415)
- Fix crashes in preview style with walrus operators used in function return annotations
and except clauses (#3423)
+- Fix a crash in preview advanced string processing where mixed implicitly concatenated
+ regular and f-strings start with an empty span (#3463)
+- Fix a crash in preview advanced string processing where a standalone comment is placed
+ before a dict's value (#3469)
+- Fix an issue where extra empty lines are added when a decorator has `# fmt: skip`
+ applied or there is a standalone comment between decorators (#3470)
- Do not put the closing quotes in a docstring on a separate line, even if the line is
too long (#3430)
- Long values in dict literals are now wrapped in parentheses; correspondingly
unnecessary parentheses around short values in dict literals are now removed; long
string lambda values are now wrapped in parentheses (#3440)
+- Fix two crashes in preview style involving edge cases with docstrings (#3451)
+- Exclude string type annotations from improved string processing; fix crash when the
+ return type annotation is stringified and spans across multiple lines (#3462)
+- Wrap multiple context managers in parentheses when targeting Python 3.9+ (#3489)
+- Fix several crashes in preview style with walrus operators used in `with` statements
+ or tuples (#3473)
+- Fix an invalid quote escaping bug in f-string expressions where it produced invalid
+ code. Implicitly concatenated f-strings with different quotes can now be merged or
+ quote-normalized by changing the quotes used in expressions. (#3509)
### Configuration
<!-- Changes to Black's terminal output and error messages -->
+- Calling `black --help` multiple times will return the same help contents each time
+ (#3516)
- Verbose logging now shows the values of `pyproject.toml` configuration variables
(#3392)
+- Fix false symlink detection messages in verbose output due to using an incorrect
+ relative path to the project root (#3385)
### _Blackd_
<!-- For example, Docker, GitHub Actions, pre-commit, editors -->
- Move 3.11 CI to normal flow now all dependencies support 3.11 (#3446)
+- Docker: Add new `latest_prerelease` tag automation to follow latest black alpha
+ release on docker images (#3465)
### Documentation
<!-- Major changes to documentation and policies. Small docs changes
don't need a changelog entry. -->
+- Expand `vim-plug` installation instructions to offer more explicit options (#3468)
+
## 22.12.0
### Preview style