0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>У Python есть отличный автоформаттер -<a>black</a>. Быстрый, простой и, главное, бескомпромиссный и почти не настраиваемый. Похож на gofmt у Go.</p>
1
<p>У Python есть отличный автоформаттер -<a>black</a>. Быстрый, простой и, главное, бескомпромиссный и почти не настраиваемый. Похож на gofmt у Go.</p>
2
<p>Но black предлагает использование двойных кавычек для строк, в то время как большинство питонистов привыкло к одинарным, т.е. "foo" вместо 'foo'. Этого оказалось достаточно для появления клона-близнеца - автоформаттера<a>blue</a>. Он использует black под капотом, поэтому отличия минимальны (см.<a>документацию</a>).</p>
2
<p>Но black предлагает использование двойных кавычек для строк, в то время как большинство питонистов привыкло к одинарным, т.е. "foo" вместо 'foo'. Этого оказалось достаточно для появления клона-близнеца - автоформаттера<a>blue</a>. Он использует black под капотом, поэтому отличия минимальны (см.<a>документацию</a>).</p>
3
<p>Официальный экстеншн Python в VS Code знает про black, но не знает про blue, документация тоже молчит. Но так как совместимость гарантируется, то достаточно в настройках указать blue как путь для форматтера black.</p>
3
<p>Официальный экстеншн Python в VS Code знает про black, но не знает про blue, документация тоже молчит. Но так как совместимость гарантируется, то достаточно в настройках указать blue как путь для форматтера black.</p>
4
<p>Итого:</p>
4
<p>Итого:</p>
5
<ul><li>Устанавливаем blue: poetry add --dev blue. Если до этого уже был установлен black, то, скорее всего, придется его удалить poetry remove --dev black т.к. может быть конфликт версий.</li>
5
<ul><li>Устанавливаем blue: poetry add --dev blue. Если до этого уже был установлен black, то, скорее всего, придется его удалить poetry remove --dev black т.к. может быть конфликт версий.</li>
6
<li>Открываем<strong>Command Palette</strong>(Ctrl+Shift+P), вводим<strong>settings json</strong>, выбираем<strong>Open Workspace Settings (JSON)</strong>и добавляем:</li>
6
<li>Открываем<strong>Command Palette</strong>(Ctrl+Shift+P), вводим<strong>settings json</strong>, выбираем<strong>Open Workspace Settings (JSON)</strong>и добавляем:</li>
7
</ul><p>{ "python.formatting.provider": "black", "python.formatting.blackPath": "blue", }</p>
7
</ul><p>{ "python.formatting.provider": "black", "python.formatting.blackPath": "blue", }</p>
8
<p>Использование:</p>
8
<p>Использование:</p>
9
<ul><li>Стандартный хоткей для автоформатирования Ctrl+Shift+I</li>
9
<ul><li>Стандартный хоткей для автоформатирования Ctrl+Shift+I</li>
10
<li>Или можно включить "editor.formatOnSave": true, но это не всегда удобный вариант</li>
10
<li>Или можно включить "editor.formatOnSave": true, но это не всегда удобный вариант</li>
11
</ul><p>Настройка:</p>
11
</ul><p>Настройка:</p>
12
<ul><li>Добавляем "python.formatting.blackArgs": ["--line-length", "100"], - все там же, в json файле</li>
12
<ul><li>Добавляем "python.formatting.blackArgs": ["--line-length", "100"], - все там же, в json файле</li>
13
<li>Или в pyproject.toml:</li>
13
<li>Или в pyproject.toml:</li>
14
</ul><p>[tool.blue] line-length = 100</p>
14
</ul><p>[tool.blue] line-length = 100</p>