]> git.madduck.net Git - etc/vim.git/log

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

etc/vim.git
2 years agoConvert `index.rst` and `license.rst` to markdown (#2852)
Gunung P. Wibisono [Wed, 30 Mar 2022 20:43:46 +0000 (03:43 +0700)]
Convert `index.rst` and `license.rst` to markdown (#2852)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoKeep tests working w/ upcoming aiohttp 4.0.0 (#2974)
Richard Si [Wed, 30 Mar 2022 20:40:50 +0000 (16:40 -0400)]
Keep tests working w/ upcoming aiohttp 4.0.0 (#2974)

aiohttp.test_utils.unittest_run_loop was deprecated since aiohttp 3.8
and aiohttp 4 (which isn't a thing quite yet) removes it. To maintain
compatibility with the full range of versions we declare to support,
test_blackd.py will now define a no-op replacement if it can't be
imported.

Also, mypy is painfully slow to use without a cache, let's reenable it.

2 years agoBump actions/cache from 2.1.7 to 3 (GH-2962)
dependabot[bot] [Tue, 29 Mar 2022 01:42:53 +0000 (21:42 -0400)]
Bump actions/cache from 2.1.7 to 3 (GH-2962)

Bumps [actions/cache](https://github.com/actions/cache) from 2.1.7 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.7...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoPrepare release 22.3.0 (#2968)
Jelle Zijlstra [Mon, 28 Mar 2022 19:08:29 +0000 (12:08 -0700)]
Prepare release 22.3.0 (#2968)

2 years agoFix _unicodefun patch code for Click 8.1.0 (#2966)
Jelle Zijlstra [Mon, 28 Mar 2022 19:01:13 +0000 (12:01 -0700)]
Fix _unicodefun patch code for Click 8.1.0 (#2966)

Fixes #2964

2 years agoBump sphinx from 4.4.0 to 4.5.0 in /docs (GH-2959)
dependabot[bot] [Mon, 28 Mar 2022 17:21:13 +0000 (13:21 -0400)]
Bump sphinx from 4.4.0 to 4.5.0 in /docs (GH-2959)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v4.4.0...v4.5.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoEnforce no formatting changes for PRs via CI (GH-2951)
Richard Si [Sat, 26 Mar 2022 21:22:38 +0000 (17:22 -0400)]
Enforce no formatting changes for PRs via CI (GH-2951)

Now PRs will run two diff-shades jobs, "preview-changes" which formats
all projects with preview=True, and "assert-no-changes" which formats
all projects with preview=False. The latter also fails if any changes
were made.

Pushes to main will only run "preview-changes"

Also the workflow_dispatch feature was dropped since it was
complicating everything for little gain.

2 years agoRemove unnecessary parentheses from `except` clauses (#2939)
Joe Young [Sat, 26 Mar 2022 16:56:50 +0000 (16:56 +0000)]
Remove unnecessary parentheses from `except` clauses (#2939)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoResolve new flake8-bugbear errors (B020) (GH-2950)
Joe Young [Thu, 24 Mar 2022 15:14:21 +0000 (15:14 +0000)]
Resolve new flake8-bugbear errors (B020) (GH-2950)

Fixes a couple places where we were using the same variable name as we
are iterating over.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoRemove unnecessary parentheses from tuple unpacking in `for` loops (#2945)
Joe Young [Thu, 24 Mar 2022 14:59:54 +0000 (14:59 +0000)]
Remove unnecessary parentheses from tuple unpacking in `for` loops (#2945)

2 years agoAvoid magic-trailing-comma in single-element subscripts (#2942)
Joe Young [Thu, 24 Mar 2022 02:16:09 +0000 (02:16 +0000)]
Avoid magic-trailing-comma in single-element subscripts (#2942)

Closes #2918.

2 years agoGithub now supports .git-blame-ignore-revs (GH-2948)
Richard Si [Wed, 23 Mar 2022 17:31:13 +0000 (13:31 -0400)]
Github now supports .git-blame-ignore-revs (GH-2948)

It's in beta.

https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

2 years agostub style: remove some possible future changes (#2940)
Jelle Zijlstra [Mon, 21 Mar 2022 22:20:41 +0000 (15:20 -0700)]
stub style: remove some possible future changes (#2940)

Fixes #2938.

All of these suggested future changes are out of scope for an autoformatter and should be handled by a linter instead.

2 years agodont skip formatting #%% (#2919)
Marco Edward Gorelli [Mon, 21 Mar 2022 21:51:07 +0000 (21:51 +0000)]
dont skip formatting #%% (#2919)

Fixes #2588

2 years agoUpdate pylint config docs (#2931)
Joseph Young [Wed, 16 Mar 2022 17:00:30 +0000 (17:00 +0000)]
Update pylint config docs (#2931)

2 years agoRemove power hugging formatting from preview (#2928)
Shivansh-007 [Wed, 16 Mar 2022 03:13:56 +0000 (08:43 +0530)]
Remove power hugging formatting from preview (#2928)

It is falsely placed in preview features and always formats the power operators, it was added in #2789 but there is no check for formatting added along with it.

2 years agoFarewell black-primer, it was nice knowing you (#2924)
Richard Si [Tue, 15 Mar 2022 19:57:59 +0000 (15:57 -0400)]
Farewell black-primer, it was nice knowing you (#2924)

Enjoy your retirement at https://github.com/cooperlees/black-primer

2 years agoBump mypy, flake8, and pre-commit-hooks in pre-commit (GH-2922)
Richard Si [Mon, 14 Mar 2022 23:41:46 +0000 (19:41 -0400)]
Bump mypy, flake8, and pre-commit-hooks in pre-commit (GH-2922)

2 years agoUse tomllib on Python 3.11 (#2903)
Shantanu [Tue, 8 Mar 2022 16:47:51 +0000 (08:47 -0800)]
Use tomllib on Python 3.11 (#2903)

2 years agoFix handling of Windows junctions in normalize_path_maybe_ignore (#2904)
yoerg [Tue, 8 Mar 2022 15:28:13 +0000 (16:28 +0100)]
Fix handling of Windows junctions in normalize_path_maybe_ignore (#2904)

Fixes #2569

2 years agoBump actions/setup-python from 2 to 3 (#2908)
dependabot[bot] [Mon, 7 Mar 2022 20:33:25 +0000 (12:33 -0800)]
Bump actions/setup-python from 2 to 3 (#2908)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cooper Lees <me@cooperlees.com>
2 years agoBump actions/checkout from 2 to 3 (#2909)
dependabot[bot] [Mon, 7 Mar 2022 16:44:01 +0000 (08:44 -0800)]
Bump actions/checkout from 2 to 3 (#2909)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoAllow `for`'s target expression to be starred (#2879)
Batuhan Taskaya [Sat, 5 Mar 2022 01:37:16 +0000 (04:37 +0300)]
Allow `for`'s target expression to be starred (#2879)

Fixes #2878

2 years agoBump furo from 2022.2.14.1 to 2022.3.4 in /docs (#2906)
dependabot[bot] [Sat, 5 Mar 2022 00:48:53 +0000 (16:48 -0800)]
Bump furo from 2022.2.14.1 to 2022.3.4 in /docs (#2906)

Bumps [furo](https://github.com/pradyunsg/furo) from 2022.2.14.1 to 2022.3.4.
- [Release notes](https://github.com/pradyunsg/furo/releases)
- [Changelog](https://github.com/pradyunsg/furo/blob/main/docs/changelog.md)
- [Commits](https://github.com/pradyunsg/furo/compare/2022.02.14.1...2022.03.04)

---
updated-dependencies:
- dependency-name: furo
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoMove test for g:load_black to improve plugin performance (GH-2896)
oncomouse [Sat, 5 Mar 2022 00:15:39 +0000 (18:15 -0600)]
Move test for g:load_black to improve plugin performance (GH-2896)

If a vim/neovim user wishes to suppress loading the vim plugin by
setting g:load_black in their VIMRC (for me, Arch linux automatically
adds the plugin to Neovim's RTP, even though I'm not using it), the
current location of the test comes after a call to has('python3'). This
adds, in my tests, between 35 and 45 ms to Vim load time (which I know
isn't a lot but it's also unnecessary). Moving the call to
`exists('g:load_black')` to before the call to `has('python3')` removes
this unnecessary test and speeds up loading.

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoreplace md5 with sha256 (#2905)
Tomáš Jelínek [Thu, 3 Mar 2022 17:29:48 +0000 (18:29 +0100)]
replace md5 with sha256 (#2905)

MD5 is unavailable on systems with active FIPS mode. That makes black
crash when run on such systems.

2 years agoREADME: fix "Pragmatism" link target (#2901)
Shantanu [Tue, 1 Mar 2022 04:13:34 +0000 (20:13 -0800)]
README: fix "Pragmatism" link target (#2901)

Fixes #2897

2 years agofix new formatting issue (#2895)
Jelle Zijlstra [Thu, 24 Feb 2022 03:41:42 +0000 (19:41 -0800)]
fix new formatting issue (#2895)

Race between #2889 and another PR.

2 years agoseparate CHANGELOG section for preview style (#2890)
Jelle Zijlstra [Thu, 24 Feb 2022 02:32:00 +0000 (18:32 -0800)]
separate CHANGELOG section for preview style (#2890)

2 years agoFormat ourselves in preview mode (#2889)
Jelle Zijlstra [Thu, 24 Feb 2022 02:20:59 +0000 (18:20 -0800)]
Format ourselves in preview mode (#2889)

2 years agoBump furo from 2022.1.2 to 2022.2.14.1 in /docs (GH-2892)
dependabot[bot] [Wed, 23 Feb 2022 17:00:06 +0000 (12:00 -0500)]
Bump furo from 2022.1.2 to 2022.2.14.1 in /docs (GH-2892)

Bumps [furo](https://github.com/pradyunsg/furo) from 2022.1.2 to 2022.2.14.1.
- [Release notes](https://github.com/pradyunsg/furo/releases)
- [Changelog](https://github.com/pradyunsg/furo/blob/main/docs/changelog.md)
- [Commits](https://github.com/pradyunsg/furo/compare/2022.01.02...2022.02.14.1)

---
updated-dependencies:
- dependency-name: furo
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoAdd special config verbose log case when black is using user-level config (#2861)
Shivansh-007 [Mon, 21 Feb 2022 01:59:36 +0000 (07:29 +0530)]
Add special config verbose log case when black is using user-level config (#2861)

2 years agocorrect Vim integration code (#2853)
D. Ben Knoble [Mon, 21 Feb 2022 01:37:07 +0000 (20:37 -0500)]
correct Vim integration code (#2853)

- use `Black` directly: the commands an autocommand runs are Ex commands, so no
  execute or colon is necessary.
- use an `augroup` (best practice) to prevent duplicate autocommands from
  hindering performance.

2 years agoIsolate command line tests for notebooks from user-level config (#2854)
Frédérik Paradis [Mon, 21 Feb 2022 01:17:01 +0000 (20:17 -0500)]
Isolate command line tests for notebooks from user-level config (#2854)

2 years agoFix typo in file_collection_and_discovery.md (GH-2860)
Laurent Lyaudet [Fri, 11 Feb 2022 01:32:55 +0000 (02:32 +0100)]
Fix typo in file_collection_and_discovery.md (GH-2860)

"you your" -> "your"

Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
2 years agoOrder the disabled error codes for pylint (GH-2870)
Xuan (Sean) Hu [Fri, 11 Feb 2022 01:31:28 +0000 (09:31 +0800)]
Order the disabled error codes for pylint (GH-2870)

Just make them alphabetical.

2 years agoAvoid crashing when the user has no homedir (#2814)
Joachim Jablon [Tue, 8 Feb 2022 20:13:58 +0000 (21:13 +0100)]
Avoid crashing when the user has no homedir (#2814)

2 years agoAdd Django in 'used by' section in Readme (#2875)
Paolo Melchiorre [Tue, 8 Feb 2022 19:38:39 +0000 (20:38 +0100)]
Add Django in 'used by' section in Readme (#2875)

* Add Django in 'used by' section in Readme

* Fix Readme issue

2 years agoBump sphinx-copybutton from 0.4.0 to 0.5.0 in /docs (#2871)
dependabot[bot] [Mon, 7 Feb 2022 15:31:58 +0000 (07:31 -0800)]
Bump sphinx-copybutton from 0.4.0 to 0.5.0 in /docs (#2871)

Bumps [sphinx-copybutton](https://github.com/executablebooks/sphinx-copybutton) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/executablebooks/sphinx-copybutton/releases)
- [Changelog](https://github.com/executablebooks/sphinx-copybutton/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/sphinx-copybutton/compare/v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: sphinx-copybutton
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years agoCreate indentation FAQ entry (#2855)
Felix Hildén [Wed, 2 Feb 2022 06:59:42 +0000 (08:59 +0200)]
Create indentation FAQ entry (#2855)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoUpdate description for GitHub Action `options:` argument (GH-2858)
Peter Mescalchin [Wed, 2 Feb 2022 03:17:45 +0000 (14:17 +1100)]
Update description for GitHub Action `options:` argument (GH-2858)

It was missing --diff as one of the default arguments passed.

2 years agoIsolate command line tests from user-level config (#2851)
Richard Si [Tue, 1 Feb 2022 05:29:01 +0000 (00:29 -0500)]
Isolate command line tests from user-level config (#2851)

2 years agoSurface links to Stability Policy (GH-2848)
S. Co1 [Tue, 1 Feb 2022 00:06:52 +0000 (19:06 -0500)]
Surface links to Stability Policy (GH-2848)

2 years agorelease process: formalize the changelog template (#2837)
Jelle Zijlstra [Sun, 30 Jan 2022 22:04:06 +0000 (14:04 -0800)]
release process: formalize the changelog template (#2837)

I did this manually for the last few releases and I think it's going to be
helpful in the future too. Unfortunately this adds a little more work during
the release (sorry @cooperlees).

This change will also improve the merge conflict situation a bit, because
changes to different sections won't merge conflict.

For the last release, the sections were in a kind of random order. In the
template I put highlights and "Style" first because they're most important
to users, and alphabetized the rest.

2 years agoSoft comparison of --required-version (#2832)
Frédérik Paradis [Sun, 30 Jan 2022 21:42:56 +0000 (16:42 -0500)]
Soft comparison of --required-version (#2832)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
2 years agoExclude __pypackages__ by default (GH-2836)
Jelle Zijlstra [Sun, 30 Jan 2022 20:01:56 +0000 (12:01 -0800)]
Exclude __pypackages__ by default (GH-2836)

PDM uses this as part of not-accepted-yet PEP 582.

2 years agoAdjust `--preview` documentation (#2833)
Jelle Zijlstra [Sun, 30 Jan 2022 19:53:45 +0000 (11:53 -0800)]
Adjust `--preview` documentation (#2833)

2 years agoPrepare docs for release 22.1.0 (GH-2826)
Richard Si [Sat, 29 Jan 2022 19:30:25 +0000 (14:30 -0500)]
Prepare docs for release 22.1.0 (GH-2826)

2 years agoFix changelog entries in the wrong release (#2825)
Jelle Zijlstra [Sat, 29 Jan 2022 17:32:52 +0000 (09:32 -0800)]
Fix changelog entries in the wrong release (#2825)

2 years agoFix changelog entries in the wrong release (#2825)
Jelle Zijlstra [Sat, 29 Jan 2022 17:32:26 +0000 (09:32 -0800)]
Fix changelog entries in the wrong release (#2825)

2 years agoRemove test suite from setup.py (#2824)
Jelle Zijlstra [Sat, 29 Jan 2022 16:00:59 +0000 (08:00 -0800)]
Remove test suite from setup.py (#2824)

We no longer use it

2 years agoUpdate classifiers to reflect stable (#2823)
Richard Si [Sat, 29 Jan 2022 15:37:51 +0000 (10:37 -0500)]
Update classifiers to reflect stable (#2823)

2 years agoAdd a test case to torture.py (#2822)
Shantanu [Sat, 29 Jan 2022 03:38:50 +0000 (19:38 -0800)]
Add a test case to torture.py (#2822)

Co-authored-by: hauntsaninja <>
2 years agoFix instability due to trailing comma logic (#2572)
Nipunn Koorapati [Sat, 29 Jan 2022 02:13:18 +0000 (18:13 -0800)]
Fix instability due to trailing comma logic (#2572)

It was causing stability issues because the first pass
could cause a "magic trailing comma" to appear, meaning
that the second pass might get a different result. It's
not critical.

Some things format differently (with extra parens)

2 years agoFix arithmetic stability issue (#2817)
Shantanu [Sat, 29 Jan 2022 00:57:05 +0000 (16:57 -0800)]
Fix arithmetic stability issue (#2817)

It turns out "simple_stmt" isn't that simple: it can contain multiple
statements separated by semicolons. Invisible parenthesis logic for
arithmetic expressions only looked at the first child of simple_stmt.
This causes instability in the presence of semicolons, since the next
run through the statement following the semicolon will be the first
child of another simple_stmt.

I believe this along with #2572 fix the known stability issues.

2 years agoFormalise style preference description (#2818)
Felix Hildén [Sat, 29 Jan 2022 00:49:43 +0000 (02:49 +0200)]
Formalise style preference description (#2818)

Closes #1256: I reworded our style docs to be more explicit about the style we're aiming for and how it is changed (or isn't).

2 years agotorture test (#2815)
Jelle Zijlstra [Sat, 29 Jan 2022 00:48:38 +0000 (16:48 -0800)]
torture test (#2815)

Fixes #2651. Fixes #2754. Fixes #2518. Fixes #2321.

This adds a test that lists a number of cases of unstable formatting
that we have seen in the issue tracker. Checking it in will ensure
that we don't regress on these cases.

2 years agoTreat blank lines in stubs the same inside top-level `if` statements (#2820)
Shantanu [Sat, 29 Jan 2022 00:29:07 +0000 (16:29 -0800)]
Treat blank lines in stubs the same inside top-level `if` statements (#2820)

2 years agoElaborate on Python support policy (#2819)
Felix Hildén [Fri, 28 Jan 2022 18:58:17 +0000 (20:58 +0200)]
Elaborate on Python support policy (#2819)

2 years agoreorganize release notes for 22.1.0 (#2790)
Jelle Zijlstra [Fri, 28 Jan 2022 14:25:24 +0000 (06:25 -0800)]
reorganize release notes for 22.1.0 (#2790)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoTests for unicode identifiers (#2816)
Shantanu [Fri, 28 Jan 2022 08:16:25 +0000 (00:16 -0800)]
Tests for unicode identifiers (#2816)

2 years agoUse parentheses on method access on float and int literals (#2799)
Shivansh-007 [Fri, 28 Jan 2022 05:31:50 +0000 (11:01 +0530)]
Use parentheses on method access on float and int literals (#2799)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
2 years agomore trailing comma tests (#2810)
Jelle Zijlstra [Thu, 27 Jan 2022 03:44:39 +0000 (19:44 -0800)]
more trailing comma tests (#2810)

2 years agoblack-primer: stop running it (#2809)
Jelle Zijlstra [Thu, 27 Jan 2022 01:18:43 +0000 (17:18 -0800)]
black-primer: stop running it (#2809)

At the moment, it's just a source of spurious CI failures and busywork
updating the configuration file.

Unlike diff-shades, it is run across many different platforms and
Python versions, but that doesn't seem essential. We already run unit
tests across platforms and versions.

I chose to leave the code around for now in case somebody is using it,
but CI will no longer run it.

2 years agoFix crash on some power hugging cases (#2806)
Jelle Zijlstra [Thu, 27 Jan 2022 00:47:36 +0000 (16:47 -0800)]
Fix crash on some power hugging cases (#2806)

Found by the fuzzer. Repro case:

python -m black -c 'importA;()<<0**0#'

2 years agoproperly run ourselves twice (#2807)
Jelle Zijlstra [Tue, 25 Jan 2022 23:58:58 +0000 (15:58 -0800)]
properly run ourselves twice (#2807)

The previous run-twice logic only affected the stability checks but not the output. Now, we actually output the twice-formatted code.

2 years agoHug power operators if its operands are "simple" (#2726)
Richard Si [Tue, 25 Jan 2022 03:13:34 +0000 (22:13 -0500)]
Hug power operators if its operands are "simple" (#2726)

Since power operators almost always have the highest binding power in expressions, it's often more readable to hug it with its operands. The main exception to this is when its operands are non-trivial in which case the power operator will not hug, the rule for this is the following:

> For power ops, an operand is considered "simple" if it's only a NAME, numeric CONSTANT, or attribute access (chained attribute access is allowed), with or without a preceding unary operator.

Fixes GH-538.
Closes GH-2095.

diff-shades results: https://gist.github.com/ichard26/ca6c6ad4bd1de5152d95418c8645354b

Co-authored-by: Diego <dpalma@evernote.com>
Co-authored-by: Felix Hildén <felix.hilden@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoMake SRC or code mandatory and mutually exclusive (#2360) (#2804)
Felix Hildén [Mon, 24 Jan 2022 15:35:56 +0000 (17:35 +0200)]
Make SRC or code mandatory and mutually exclusive (#2360) (#2804)

Closes #2360: I'd like to make passing SRC or `--code` mandatory and the arguments mutually exclusive. This will change our (partially already broken) promises of CLI behavior, but I'll comment below.

2 years agoUse `magic_trailing_comma` and `preview` for `FileMode` in `fuzz` (#2802)
Nikita Sobolev [Sun, 23 Jan 2022 20:34:29 +0000 (23:34 +0300)]
Use `magic_trailing_comma` and `preview` for `FileMode` in `fuzz` (#2802)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoRemove Beta mentions in README + Docs (#2801)
Cooper Lees [Sun, 23 Jan 2022 20:34:01 +0000 (12:34 -0800)]
Remove Beta mentions in README + Docs (#2801)

- State we're now stable and that we'll uphold our formatting changes as per policy
- Link to The Black Style doc.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agoAllow blackd to be run as a package (#2800)
Richard Si [Sun, 23 Jan 2022 16:49:11 +0000 (11:49 -0500)]
Allow blackd to be run as a package (#2800)

2 years agoEnable pattern matching by default (#2758)
Batuhan Taskaya [Sat, 22 Jan 2022 20:05:26 +0000 (23:05 +0300)]
Enable pattern matching by default (#2758)

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoMention "skip news" label in CHANGELOG action (#2797)
Shantanu [Sat, 22 Jan 2022 15:30:18 +0000 (07:30 -0800)]
Mention "skip news" label in CHANGELOG action (#2797)

Co-authored-by: hauntsaninja <>
2 years agoRefactor logic for stub empty lines (#2796)
Shantanu [Sat, 22 Jan 2022 15:29:38 +0000 (07:29 -0800)]
Refactor logic for stub empty lines (#2796)

This PR is intended to have no change to semantics.

This is in preparation for #2784 which will likely introduce more logic
that depends on `current_line.depth`.

Inlining the subtraction gets rid of offsetting and makes it much easier
to see what the result will be.

2 years agoMark Felix and Batuhan as maintainers (#2794)
Richard Si [Sat, 22 Jan 2022 11:08:27 +0000 (06:08 -0500)]
Mark Felix and Batuhan as maintainers (#2794)

Y'all deserve it :)

2 years agoAllow setting custom cache directory on all platforms (#2739)
Perry Vargas [Sat, 22 Jan 2022 06:00:33 +0000 (22:00 -0800)]
Allow setting custom cache directory on all platforms (#2739)

Fixes #2506

``XDG_CACHE_HOME`` does not work on Windows. To allow for users to set a custom cache directory on all systems I added a new environment variable ``BLACK_CACHE_DIR`` to set the cache directory. The default remains the same so users will only notice a change if that environment variable is set.

The specific use case I have for this is I need to run black on in different processes at the same time. There is a race condition with the cache pickle file that made this rather difficult. A custom cache directory will remove the race condition.

I created ``get_cache_dir`` function in order to test the logic. This is only used to set the ``CACHE_DIR`` constant.

2 years agoSwitch to Furo (#2793)
Richard Si [Fri, 21 Jan 2022 23:00:13 +0000 (18:00 -0500)]
Switch to Furo (#2793)

- Add Furo dependency to docs/requirements.txt
- Drop a fair bit of theme configuration
- Fix the toctree declarations in index.rst
- Move stuff around as Furo isn't 100% compatible with Alabaster

Furo was chosen as it provides excellent mobile support, user
controllable light/dark theming, and is overall easier to read

2 years agoadd wind technology software projects using black (#2792)
Rob Hammond [Fri, 21 Jan 2022 18:23:26 +0000 (11:23 -0700)]
add wind technology software projects using black (#2792)

2 years agoSet `click` lower bound to `8.0.0` (#2791)
Shivansh-007 [Fri, 21 Jan 2022 16:54:57 +0000 (22:24 +0530)]
Set `click` lower bound to `8.0.0` (#2791)

Closes #2774

2 years agoAdd support for custom python cell magics (#2744)
Michael Marino [Fri, 21 Jan 2022 00:45:28 +0000 (01:45 +0100)]
Add support for custom python cell magics (#2744)

Fixes #2742.

This PR adds the ability to configure additional python cell magics. This
will allow formatting cells in Jupyter Notebooks that are using custom (python)
magics.

2 years agoHint at likely cause of ast parsing failure in error message (#2786)
emfdavid [Thu, 20 Jan 2022 23:48:49 +0000 (18:48 -0500)]
Hint at likely cause of ast parsing failure in error message (#2786)

Co-authored-by: Batuhan Taskaya <isidentical@gmail.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoDeprecate ESP and move the functionality under --preview (#2789)
Felix Hildén [Thu, 20 Jan 2022 23:42:07 +0000 (01:42 +0200)]
Deprecate ESP and move the functionality under --preview (#2789)

2 years agoFix and speedup diff-shades integration (#2773)
Richard Si [Thu, 20 Jan 2022 03:05:58 +0000 (22:05 -0500)]
Fix and speedup diff-shades integration  (#2773)

2 years agoCreate --preview CLI flag (#2752)
Felix Hildén [Thu, 20 Jan 2022 01:34:52 +0000 (03:34 +0200)]
Create --preview CLI flag (#2752)

2 years agoFix typo in diff_shades.yml workflow (#2778)
Jelle Zijlstra [Mon, 17 Jan 2022 15:52:29 +0000 (07:52 -0800)]
Fix typo in diff_shades.yml workflow (#2778)

2 years agoBump sphinx from 4.3.2 to 4.4.0 in /docs (#2776)
dependabot[bot] [Mon, 17 Jan 2022 14:50:27 +0000 (06:50 -0800)]
Bump sphinx from 4.3.2 to 4.4.0 in /docs (#2776)

Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.3.2 to 4.4.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/4.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v4.3.2...v4.4.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago[trivial] Use proper test cases on `unittest` (#2775)
Batuhan Taskaya [Sat, 15 Jan 2022 22:19:37 +0000 (01:19 +0300)]
[trivial] Use proper test cases on `unittest` (#2775)

2 years agoDont require typing-extensions in 3.10 (GH-2772)
Marco Edward Gorelli [Sat, 15 Jan 2022 04:24:55 +0000 (04:24 +0000)]
Dont require typing-extensions in 3.10 (GH-2772)

3.10 ships with TypeGuard which is the newest feature we need.

Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
2 years agoCI: add diff-shades integration (#2725)
Richard Si [Fri, 14 Jan 2022 02:50:02 +0000 (21:50 -0500)]
CI: add diff-shades integration (#2725)

Hopefully this makes it much easier to gauge the impacts of future
changes!

2 years agoAdded decent coloring (#2712)
VanSHOE [Fri, 14 Jan 2022 02:31:08 +0000 (08:01 +0530)]
Added decent coloring (#2712)

2 years agoDon't make redundant copies of the DFA (#2763)
Batuhan Taskaya [Fri, 14 Jan 2022 02:01:44 +0000 (05:01 +0300)]
Don't make redundant copies of the DFA (#2763)

2 years agoNormalise string prefix order (#2297)
Felix Hildén [Thu, 13 Jan 2022 17:59:43 +0000 (19:59 +0200)]
Normalise string prefix order (#2297)

Closes #2171

2 years agodon't expect changes on poetry (#2769)
Jelle Zijlstra [Thu, 13 Jan 2022 17:33:56 +0000 (09:33 -0800)]
don't expect changes on poetry (#2769)

They just made themselves ESP-compliant in https://github.com/python-poetry/poetry/commit/ecb030e1f0b7c13cc11971f00ee5012e82a892bc

2 years agoChange installation url to comply with git security change (#2765)
Jeffrey Lazar [Tue, 11 Jan 2022 22:37:07 +0000 (17:37 -0500)]
Change installation url to comply with git security change (#2765)

Co-authored-by: Jeffrey Lazar <jlazar@MacBook-Pro-2.local>
2 years agoChange git url for pip installation in README (#2761)
cbows [Tue, 11 Jan 2022 17:31:07 +0000 (18:31 +0100)]
Change git url for pip installation in README (#2761)

* Change git url for pip installation in README

Unauthenticated git protocol was disabled recently by Github and should not be used anymore.

https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git

* Update CHANGES.md

2 years agoFix handling of standalone match/case with newlines/comments (#2760)
Batuhan Taskaya [Mon, 10 Jan 2022 20:22:07 +0000 (23:22 +0300)]
Fix handling of standalone match/case with newlines/comments (#2760)

Resolves #2759

2 years agoSpeed up new backtracking parser (#2728)
Batuhan Taskaya [Mon, 10 Jan 2022 18:22:00 +0000 (21:22 +0300)]
Speed up new backtracking parser (#2728)

2 years agoEnhance `--verbose` (#2526)
Shivansh-007 [Mon, 10 Jan 2022 13:58:35 +0000 (19:28 +0530)]
Enhance `--verbose` (#2526)

Black would now echo the location that it determined as the root path
for the project if `--verbose` is enabled by the user, according to
which it chooses the SRC paths, i.e. the absolute path of the project
is `{root}/{src}`.

Closes #1880

2 years agoRemove Python 2 support (#2740)
Richard Si [Mon, 10 Jan 2022 12:16:30 +0000 (07:16 -0500)]
Remove Python 2 support (#2740)

*blib2to3's support was left untouched because: 1) I don't want to touch
parsing machinery, and 2) it'll allow us to provide a more useful error
message if someone does try to format Python 2 code.

2 years agoFix call patterns that contain as-expression on the kwargs (#2749)
Batuhan Taskaya [Fri, 7 Jan 2022 16:51:36 +0000 (19:51 +0300)]
Fix call patterns that contain as-expression on the kwargs (#2749)