From 05b63c4bccbfb292a92d3ec962ce9b8fa4ebcfd5 Mon Sep 17 00:00:00 2001 From: Maciej Olko Date: Mon, 11 Jul 2022 18:27:51 +0200 Subject: [PATCH] Recommend using BlackConnect in IntelliJ IDEs (#3150) * Recommend using BlackConnect in IntelliJ IDEs * IntelliJ IDEs integration docs: improve formatting * Add changelog for recommending BlackConnect * IntelliJ IDEs integration docs: improve formatting * Apply suggestions from code review Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com> * Fix indentation * Apply italic to Black name Consequently with other places in the document * Move CHANGELOG entry to Unreleased section * IntelliJ IDEs integration docs: bring back a point with formatting a file * IntelliJ IDEs integration docs: fix extra whitespace and linebreak Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com> --- CHANGES.md | 1 + docs/integrations/editors.md | 66 ++++++++++-------------------------- 2 files changed, 19 insertions(+), 48 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 0bfa7ccd62c..a0607edefa5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -29,6 +29,7 @@ - Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by _Black_ (#3155) +- Recommend using BlackConnect in IntelliJ IDEs (#3150) ### Integrations diff --git a/docs/integrations/editors.md b/docs/integrations/editors.md index 02baa29511b..07bf672f4fd 100644 --- a/docs/integrations/editors.md +++ b/docs/integrations/editors.md @@ -10,71 +10,41 @@ Options include the following: ## PyCharm/IntelliJ IDEA -1. Install `black`. +1. Install _Black_ with the `d` extra. ```console - $ pip install black + $ pip install 'black[d]' ``` -1. Locate your `black` installation folder. +1. Install + [BlackConnect IntelliJ IDEs plugin](https://plugins.jetbrains.com/plugin/14321-blackconnect). - On macOS / Linux / BSD: - - ```console - $ which black - /usr/local/bin/black # possible location - ``` - - On Windows: - - ```console - $ where black - %LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe # possible location - ``` - - Note that if you are using a virtual environment detected by PyCharm, this is an - unneeded step. In this case the path to `black` is `$PyInterpreterDirectory$/black`. - -1. Open External tools in PyCharm/IntelliJ IDEA +1. Open plugin configuration in PyCharm/IntelliJ IDEA On macOS: - `PyCharm -> Preferences -> Tools -> External Tools` + `PyCharm -> Preferences -> Tools -> BlackConnect` On Windows / Linux / BSD: - `File -> Settings -> Tools -> External Tools` - -1. Click the + icon to add a new external tool with the following values: + `File -> Settings -> Tools -> BlackConnect` - - Name: Black - - Description: Black is the uncompromising Python code formatter. - - Program: \ - - Arguments: `"$FilePath$"` +1. In `Local Instance (shared between projects)` section: -1. Format the currently opened file by selecting `Tools -> External Tools -> black`. + 1. Check `Start local blackd instance when plugin loads`. + 1. Press the `Detect` button near `Path` input. The plugin should detect the `blackd` + executable. - - Alternatively, you can set a keyboard shortcut by navigating to - `Preferences or Settings -> Keymap -> External Tools -> External Tools - Black`. +1. In `Trigger Settings` section check `Trigger on code reformat` to enable code + reformatting with _Black_. -1. Optionally, run _Black_ on every file save: +1. Format the currently opened file by selecting `Code -> Reformat Code` or using a + shortcut. - 1. Make sure you have the - [File Watchers](https://plugins.jetbrains.com/plugin/7177-file-watchers) plugin - installed. - 1. Go to `Preferences or Settings -> Tools -> File Watchers` and click `+` to add a - new watcher: - - Name: Black - - File type: Python - - Scope: Project Files - - Program: \ - - Arguments: `$FilePath$` - - Output paths to refresh: `$FilePath$` - - Working directory: `$ProjectFileDir$` +1. Optionally, to run _Black_ on every file save: - - In Advanced Options - - Uncheck "Auto-save edited files to trigger the watcher" - - Uncheck "Trigger the watcher on external changes" + - In `Trigger Settings` section of plugin configuration check + `Trigger when saving changed files`. ## Wing IDE